-
Notifications
You must be signed in to change notification settings - Fork 2
Description
We want to be able to specify folders in the KNIME settings which can be used to discover Command
s on KNIME startup (or just a single, pre-defined folder in the plugins
folder of KNIME, e.g. commands-dropin
).
We could simply add these folders to the KNIME URLClassLoader
in a special implementation of the ResourceAwareClassLoader
. However, we have to make sure that all dependencies are resolved gracefully. Therefore, I suggest the following:
- Check the
pom.xml
in the.jar
(if any, if not just loadCommand
and hope that all dependencies are available). - Check all dependencies and find out if we have
OSGi
bundles for them available. - Create OSGi
Fragment
frompom.xml
but replace all.jar
s which are available as OSGi bundles withEclipse-Dependencies
on theseBundles
. - The resulting
Fragment
should only contain project specific.jar
s.
The very same mechanism can then later be used to create KNIME update-sites from ImageJ2
update-sites. Parts of the code is available in the current ImageJ2
integration (see https://github.com/knime-ip/knip-imagej2/blob/master/org.knime.knip.imagej2.core/src/org/knime/knip/imagej2/core/FragmentWrapperUtil.java).