Home » Eclipse Projects » Eclipse Platform » Indigo changes in plugin.xml and runtime library?
|Indigo changes in plugin.xml and runtime library? [message #684621]
||Wed, 15 June 2011 23:51
| Nadeem Aboobaker
Registered: July 2009
Over the last 6+ years, we've developed many Eclipse plugins for our product. As a result, the plugins are a mix of old style plugins (i.e., a plugin.xml that defines the ID, runtime libraries, plugin dependencies, etc.) and newer style bundles (where plugin.xml is just for the extensions, and manifest.mf is for defining the ID, bundle-classpath, required-bundles, etc.).|
Most of the plugins have been changed to the newer style bundles, but we have a few plugins that are mainly used as jar libraries, in that they specify many runtime libraries that export all packages, like so:
<library name="../lib/some-library-A_1.1.jar"><export name="*"/></library>
<library name="../../some-library-B_1.2.jar"><export name="*"/></library>
I'm sure the practice of using the plugin.xml to specify runtime libraries is discouraged in favor of using the manifest.mf bundle-classpath. Additionally, I'm sure the practice of exporting * is also discouraged. And lastly, the practice of using relative paths to reach the jars is probably just another discouraged practice. But, this was working for us just fine through Eclipse 3.6.2.
Now, we're using milestone builds of Eclipse Indigo 3.7, and I've found that using relative paths in the plugin.xml no longer works. In the PDE, things work just fine, classes are resolved from the jars specified with the relative paths. However, at runtime, this just results in class not found problems.
In my experimentation, I've found that copying a jar file into the plugin folder and specifying the runtime library as existing in the current directory fixes the problem. However, I can't do this in my final product, as there are literally hundreds of JARs that are referenced in the installed product and they need to stay where they are, and making duplicate copies inside of the plugins is not an option either.
So, my first question is this: Was removing the ability to load runtime libraries using relative paths an intentional decision in Indigo? I tried to search the forums, bug database, and Google to find any notes on this topic, but haven't been able to find anything.
If the answer is that this is an intentional change, I'm assuming that I'll then need to migrate these hundreds of lines from a plugin.xml to a manifest.mf. I need to maintain the ability to reference jars external to the plugin folder and export all packages. I've done a bit of searching on that as well, and I've found that one can use the "external:" keyword on the BundleClasspath, but haven't seen a way of exporting all packages, short of manually enumerating every package. Any help?
Thanks in advance,
Current Time: Wed Feb 21 03:58:09 GMT 2018
Powered by FUDForum
. Page generated in 0.01504 seconds