You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Benjamin Rogge <fe...@benjamin-rogge.de> on 2014/07/25 12:00:49 UTC
Providing additional Java system packages for bundles
Hello,
we are using apache felix 4.2.1 as an embedded OSGi container and use
OSGi bundles as a plugin mechanism in our application. Our understanding
is, that bundles can use java.* packages, but not other packages, such
as org.w3c.dom or javax.xml.parsers.
My question is, is there a way to expose all of the packages included in
the Java runtime to all OSGi bundles?
We tried to add the packages mentioned above to the
"org.osgi.framework.system.packages.extra" property, but without the
desired effect. The classes were not found in the bundle.
We tried two things, that made the classes available, but we are not
100% satisfied with these solutions:
1. We added the packages to the "org.osgi.framework.bootdelegation"
property and the classes will be available to the bundle, but we prefer
another solution, because we feel, we broke modularity of the bundles
with this property.
2. We added the packages to the <import-package> in the bundle manifest
and the classes will be available to the bundle, but we would prefer a
solution where we won't have to add these packages to every bundle (the
bundle will be developed by users of the application and not by us).
Thanks for you help,
Benjamin Rogge
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
Re: Providing additional Java system packages for bundles
Posted by Neil Bartlett <nj...@gmail.com>.
The correct solution is to import these packages with Import-Package, just like every other package you depend on. The only “special” packages are java.* and this is because of a security restriction in the JVM.
If you don’t want people to declare dependencies on the packages they use then you should use a tool like bnd (or the maven bundle plugin, which is based on bnd), which will automatically discover and declare the imports for you.
Regards,
Neil
On 25 July 2014 at 11:01:20, Benjamin Rogge (felix-osgi@benjamin-rogge.de) wrote:
Hello,
we are using apache felix 4.2.1 as an embedded OSGi container and use
OSGi bundles as a plugin mechanism in our application. Our understanding
is, that bundles can use java.* packages, but not other packages, such
as org.w3c.dom or javax.xml.parsers.
My question is, is there a way to expose all of the packages included in
the Java runtime to all OSGi bundles?
We tried to add the packages mentioned above to the
"org.osgi.framework.system.packages.extra" property, but without the
desired effect. The classes were not found in the bundle.
We tried two things, that made the classes available, but we are not
100% satisfied with these solutions:
1. We added the packages to the "org.osgi.framework.bootdelegation"
property and the classes will be available to the bundle, but we prefer
another solution, because we feel, we broke modularity of the bundles
with this property.
2. We added the packages to the <import-package> in the bundle manifest
and the classes will be available to the bundle, but we would prefer a
solution where we won't have to add these packages to every bundle (the
bundle will be developed by users of the application and not by us).
Thanks for you help,
Benjamin Rogge
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org