Hi, Am Freitag, den 04.01.2008, 10:24 +0100 schrieb Carsten Ziegeler: > Felix Meschberger wrote: > > > (Warning: longish OSGi specific text ahead :-) ) > > Hehe, thanks for the warning - so I stopped reading here... :) > > Very good explanation - what about adding these things to our wiki?
Done in our brand-new FAQ page [1] :-) Regards Felix [1] http://cwiki.apache.org/SLING/faq.html > > Thanks > Carsten > > > > Hmm, this is an interesting question needing some elaboration. First of > > all, OSGi defines two framework properties concerning class loading: > > > > org.osgi.framework.bootdelegation : All classes matching any entry in > > this list > > are always loaded from the parent class loader and not through > > the OSGi > > framework infrastructure. > > > > org.osgi.framework.system.packages : Additional package declarations > > for packages > > to be exported from the system bundle. This property is a > > simple package > > declaration list just like any Export-Package manifest header > > > > Currently, Sling uses the bootdelegation property to list additional > > classes to be used from the environment. This is done in the > > org.apache.sling.launcher.app.Sling.resolve() method. > > > > This raises two questions: > > > > * Why does Sling use bootdelegation ? Maybe because I was initially > > worried by the > > requirement for the system.packages property that "Exposing > > packages from the parent > > class loader in this fashion must also take into account any uses > > directives of the > > underlying packages." (OSGi Core R4.1, Section 3.8.5, Parent > > Class Loader). And I > > couldn't create the uses directives.. > > > > Maybe we might just not provide the "uses" and still use the > > system.packages property ? > > WDYT ? > > > > > > * Why does the Sling console list the packages as imported from the > > API bundle ? I can only > > explain this such, that when Apache Felix Framework resolves the > > package it resolves > > all imports as instructed. So, there are the imports from the API > > bundle. But to load > > the classes actually, the bundle class loader asks the parent > > class loader for the > > "bootdelegation" classes (see step two in the process described > > in OSGi Core R4.1, > > Section 3.8.4, Overall Search Order). Hence it works as expected. > > Remains the question: Should a package contained in the > > "bootdelegation" actually be > > resolved ? This would of course be a question for the Felix Dev > > List ... Will post > > it there. > > > > > > Regards > > Felix > > > > > > > >
