Community
Participate
Working Groups
Plug-ins with the same ID in Eclipse over ride down level versions of the same plug-in. Fragments should have the same behaviour, and it is not documented otherwise in Eclipse 3.1. However, if the same fragment ID exists in Eclipse with two different version levels for some reason the lower level Fragment is displayed. This has the implication that NL content can not be updated on locally installed ICs: To view this problem in the base Eclipse package put the files attached in plugins.zip. Then view the help system in IC mode with browser local set to 'fr'. You will notice that all items in the Navigation Tree for the plugins will be prefixed "3.1.1" (used in fragment version 3.1.1) instead of "3.1.2" (used in fragment version 3.1.2). Note: The only work around is to not only update the fragment version, but also the plug-in version and ensure that all fragments have match=perfect defined. This workaround is poor because it requires users to download a plug-in that is exactly the same with the exception that the plug-in version number is different. If match="perfect" is not defined on any of the installed fragments the only work around is to increase the plug-in and fragment version number so it is no longer compatible. This is a severe limitation as it is not possible to update fragments only, which is why there are fragments in the first place.
Created attachment 53536 [details] sample plugin
Created attachment 53537 [details] screenshot
Sounds like a runtime issue.
NL fragments must be singleton bundles. The nl fragments attached here are using the old 2.1 format (only contain a plugin.xml and no bundle manifest META-INF/MANIFEST.MF file). The compatibility plugin converter that converts old-style plugin.xml files to bundle manifests will only make the plugin/fragment a singleton if the plugin.xml file contains an extensions/extension points or uses the singlton attribute. I suggest you convert your old-style plug-ins to use OSGi manifests and specify them as singletons in the bundle manifest. (i.e. Bundle-SymbolicName: com.ibm.help.ic.doc.nl1; singleton:=true)
At runtime the compatibility plugin converter automatically generates the META-INF/MANIFEST.MF files in the configuration\org.eclipse.osgi\manifests directory for plug-ins that do not include the manifest file in the plug-in. The generated plug-in manifest file contains the text: "Bundle-SymbolicName: com.ibm.help.ic.doc; singleton:=true". The converter also automatically generates the META-INF/MANIFEST.MF files for the fragments but the "; signleton:=true" suffix is not included in the file, and I do not see why fragments should be treated differently. Would there ever be a reason not to have a fragment of a plug-in as singleton? The Eclipse 3.1 documentation does not make mention of a singleton attribute to use in plugin.xml or fragment.xml in the <a href="http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/misc/plugin_dtd.html">plugin.dtd</a>