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