> In that document, in the section "The Hook
Registry", we find this
> ,----[ hookconfigurators.properties files ]
> | Extension bundles may provide their own hookconfigurators.properties
> | file to specify additional hook configurators. The hook registry
> | discover all hookconfigurator.properties files on its classpath
> | will merge all declared configurator classes into one list.
> Note the phrase "on /its/ classpath". What is /it/ here?
Here /it/ means the classpath of the framework implementation.
> I ask because I created an extension bundle with a
> hookconfigurator.properties file as specified, located at the root
> directory within the extension bundle jar. The extension bundle gets
> loaded just fine, but it doesn't look like the bundle gets searched
> HookRegistry.mergeFileHookConfigurators()¹. My bundle's
> hookconfigurators.properties files is never found, and hence my hook
> doesn't get registered.
> Should I be able to provide a hookconfigurators.properties file in
> extension bundle? If so, what do I have to do make it discoverable?
> ¹ On line 108, where ClassLoader.getResources() is called.
There is a chicken and egg issue here when loading
hook configurators. In order to get your hook configurator loaded your
framework extension bundle must be on the framework's classpath before
the framework is launched. In a typical eclipse environement
this is done by the org.eclipse.equinox.launcher (or startup.jar in <=
3.2.x). The launcher reads the "osgi.framework.extensions"
property and discovers the extensions listed in that property. These
extension jars must be colocated with the org.eclipse.osgi jar. If
you do not do this then the extension jar will get loaded after all the hook
configurators have run. At this point it is too late.
If you are not using the equinox launcher to start
the Framework then you will have to add your extension jars to the classpath
along with the org.eclipse.osgi when you are launching the