views:

689

answers:

3

I have a plugin for an RCP app that uses BIRT. I have a target for building my app which contains only the plugins/features that are required. I recently updated the BIRT plugin versions in my IDE, which created an incompatibility in the design files with previous versions of BIRT. I have the old version of BIRT in my target and need to update to the newer plugins.

In the past I have manually updated plugin jars in the target, but BIRT is a complicated platform with dependencies out the wazoo. Is there any utility or way of organizing my target differently that will make this easier to control in the future?

A: 

Im not sure if i understand you right, so please let me know if not.

When i use third party libraries, i create a plugin for every single one.

Example:

xstream library:

  • Import the jars (also the source code)
  • Add the jars to the MANIFEST Bundle-ClassPath
  • Add all xtream packages to the MANIFEST Export-Package

When a plugin needs the code of the xstream library it has to depend on the xtream plugin. Because the packages are public, every plugin can use the source code of it.

When a new version of xtream is comming, you only have to update the jars and not the dependend plugins. Sometimes you have to update the export packages of the third party plugin.

All depended plugins you dont have to change.

Markus Lausberg
A: 

Markus, I was referring to pre-packaged plugins that come from the eclipse sites. It wouldn't make sense to tamper with them. The issue is that the filenames change slightly with each release, so to update my target directory I have to use a merge program to bring in the new and get rid of the old. This tends to be a bit prone to error. But your answer is a nice succinct procedure for using 3rd party libraries :)

Perhaps this is my chance to contribute a plugin to the community that will make this less manual.

Revah
+1  A: 

I would recommend to keep all components separately and not copy them into a single folder. You can use Target Definition editor (see File / New / Other... / Target Definition). So, after downloading all the pieces, you can unpack them locally and assemble your Target Platform using Target Definition editor.

You can also do the same using Window / Preferences / Plugin Development / Target Platform preference page. There you can select previously created target definition or specify base Eclipse install and then use "Add..." button to add additional components from local folders or remote sites.

Also, as far as I know the PDE team is currently working on expanding Target platform support in Eclipse 3.5. I think they are planning to allow to select Target Definition per-launch configuration and per-project.

I hadn't thought of doing it that way. I will give this a try and see if there are any scenarios that still give trouble. Thanks.
Revah