'DynamicImport-Package: *' is a trick used by bundles to allow importing client packages which are not known during bundle build time, in addition to its own dependencies, to prevent ClassNotFoundException issues. [i.e. If there are classes which have Class.forName (or other dynamic look up)] This turns OSGi Framework into a very expensive class path for the packages involved and breaks the concept of versions in OSGi. Use of this attribute is said to be a sign of a non-modular design and it might be a good time to revisit the architecture.
To learn more:
- DynamicImport-Package - OSGi Community Wiki http://wiki.osgi.org/wiki/DynamicImport-Package
- What is the difference between bootdelegation and DynamicImport-Package in osgi http://stackoverflow.com/questions/14729568/what-is-the-difference-between-bootdelegation-and-dynamicimport-package-in-osgi
- If code uses Class.forName (e.g. hibernate) consider DynamicImport-Package https://github.com/bndtools/bnd/issues/80
Useful info. Thank you
ReplyDelete