From DPFWiki

Jump to: navigation, search


What the user sees as one eclipse plugin is usually provided by many of them. However, as a usability feature, we usually want the user to be able to install all the needed plugins as one package. To do this we create what is called a feature project.

When the user uses the update center, what they see is not individual plugins, but features. This way, all the plugins used for the DPF Sketcher shows up as only one entry.

The feature project is a project type provided by the eclipse plugin development plugin (PDE). It has a set of configuration files, but they all show up as tabs on the same editor pane when using the PDE plugin. Here you define the set if plugins that should be installed (selected from your current workspace), set a name and a version number for the feature as a whole, and declare any dependencies on other eclipse plugins like EMF. These dependencies should be automatically generated for you when you add plugins to the feature.

Once you've configured the feature, you can build the set of plugins that constitute the functionality of your eclipse extension, and package them as one .jar-file.


PDE Build is a framework created by the Eclipse team for building plugins and features for Eclipse. Its job is to take a set of plugins and a feature project which describes them, and build jar-files for different platforms. As we don't have any native code, our jar-files will work on any platform so we only build the plugin once.

There are two configuration files in this project. The was copied from the PDE source as per instructions on how to use PDE Build, however, we don't actually use it. It just has to exist.

The other file, the build-dpf.xml is an ant build file which actually runs the build. The skeleton of it was copied from the PDE Build source, and modified for our use.

At the top we define various parameters controlling the build such as the feature to build, which JVM version to target etc.

We do the build by checking out all the code from SVN during the build, so we have some libraries in ./svn which facilitates this. The target "checkoutProjects" in ant does the actual checkout. It is run by adding it as a dependency to the runBuild target, which calles it then the main-target which is provided by PDE Build. The end result is a jar-file which contains the feature.

PDE Build also has functionality for deploying built artifacts to an update site. We are not using these as of now, but the plan is to start using it when the DPF Sketcher is ready for international exposure.

Personal tools