jgralab4eclipse
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:Eclipse project to deploy JGraLab as Eclipse plugin
# JGraLab4Eclipse

This is an Eclipse project to deploy JGraLab as an Eclipse plugin.

## Setup

1. Create a symlink `src` pointing to jgralab's `src` folder.

2. Create a symlink `lib` pointing to jgralab's `lib` folder.

3. Create a symlink `META-INF` pointing to jgralab's `META-INF` folder.

4. Import this project into Eclipse.

5. Make sure that the original jgralab project is not in your workspace.
   It can be, but must be closed! Otherwise, you will end up with the
   `META-INF` folder being detected twice and the plugin appears redundantly
   in the run configuration. The result may be further issues, such as
   `Activator` class not being found.

Note, that if you change any java files, those are actually changed inside your
jgralab working copy, so you have to commit them there.

To use the JGraLab plugin, you simply define a plugin dependency in your
project.


## Using JGraLab Compiled Schemas as Eclipse Plugin

When you try to use **compiled TGraph schemas** (i.e. schemas where the JGraLab
code generator has produced Java files) as an Eclipse plugin, you may experience
class loading exceptions. JGraLab throws exceptions 
`java.lang.ClassNotFoundException` when trying to load your schema classes.

The reason is that JGraLab accesses schema classes at runtime by Java
reflection mechanisms. However, Eclipse installs a separate class loader per
plugin. By default, this plugin class loader can not access classes of other
plugins.

To handle situations like this, Eclipse has the so-called buddy class loading
mechanism. To enable this mechanism, JGraLab's `MANIFEST.MF` contains a buddy
policy:

> Eclipse-BuddyPolicy: registered

This means that the class loader of the JGraLab plugin can ask registered
buddies for assistance to load a class that it can not find itself.

### Registering your plugin as a buddy

To register as a JGraLab buddy, you have to put

> Eclipse-RegisterBuddy: de.uni_koblenz.jgralab
    
into the `MANIFEST.MF` of *your plugin* (i.e. the one that contains the generated
schema classes). The bundle name used in the buddy registration is the ID of
the JGraLab plugin.

This way, JGraLab can find the schema class files, and the class loading
exceptions are gone :-)


## License

Copyright (C) 2006-2014 The JGraLab Team 

Distributed under the General Public License (Version 3), with the following
additional grant:

    Additional permission under GNU GPL version 3 section 7

    If you modify this Program, or any covered work, by linking or combining it
    with Eclipse (or a modified version of that program or an Eclipse plugin),
    containing parts covered by the terms of the Eclipse Public License (EPL),
    the licensors of this Program grant you additional permission to convey the
    resulting work.  Corresponding Source for a non-source form of such a
    combination shall include the source code for the parts of JGraLab used as
    well as that of the covered work.







本源码包内暂不包含可直接显示的源代码文件,请下载源码包。