The system bundle exports in Felix are defined by the defaults.properties file 
found inside the JAR, so it’s not necessary to use the Export-Package header 
from the manifest. Actually Equinox works in almost exactly the same way; it 
uses a bunch of J2SE-*.profile files.

You can always write your own launcher that overrides the default behaviour. 
For example the bnd launcher does look for and use the Export-Package headers 
from all JARs that are added to the system classpath using -runpath.

Neil

On 1 September 2014 at 15:29:33, Balázs Zsoldos ([email protected]) 
wrote:

Hi,  

this question might have been raised before. If you could drop a link to  
the thread, that would be cool.  

In case Equinox is started with an empty  
*org.osgi.framework.system.packages* value, the packages of OSGi core are  
available in the container. This is good in my opinion as the bundle of  
Equinox exports these packages.  

If I do the same with Felix, the packages that are specified in the  
Export-Package MANIFEST header of felix JAR, are not available. Why is  
that? These packages are exported by a bundle, the system bundle.  

I normally override the system.packages to use only those packages from the  
JDK that are necessary. I use everything I can from bundles, even the JDBC  
API. It is very annoying that I have to list all OSGi core packages in the  
system.packages with versions. What if I upgrade felix? I have to check the  
package of every version again. I cannot make a felix version independent  
configuration.  

Thanks and regards,  
*Balázs **Zsoldos*  

Reply via email to