Re: Felix does not start with bootdelegation="*"
------------------------------------------------

                 Key: FELIX-463
                 URL: https://issues.apache.org/jira/browse/FELIX-463
             Project: Felix
          Issue Type: Bug
          Components: Framework
    Affects Versions: 1.0.0
         Environment: JDK 1.5.0_06 or 1.6 on Solaris 10/x86
            Reporter: Sahoo
            Priority: Critical


I am having trouble starting Felix when I use 
-Dorg.osgi.framework.bootdelegation="*". When I run using the following command:
'/usr/bin/java -Dorg.osgi.framework.bootdelegation="*" -jar bin/felix.jar', it 
fails like this:

WARNING: *** Class 'org.apache.felix.shell.impl.Activator' was not found. 
Bundle 1 does not import package 'org.apache.felix.shell.impl', nor is the 
package exported by any other bundle or available from the system class loader. 
*** (java.lang.ClassNotFoundException: *** Class 
'org.apache.felix.shell.impl.Activator' was not found. Bundle 1 does not import 
package 'org.apache.felix.shell.impl', nor is the package exported by any other 
bundle or available from the system class loader. ***)ERROR: Error starting 
file:bundle/org.apache.felix.shell-1.1.0-SNAPSHOT.jar 
(org.osgi.framework.BundleException: Not found: 
org.apache.felix.shell.impl.Activator)
java.lang.ClassNotFoundException: org.apache.felix.shell.impl.Activator
       at 
org.apache.felix.framework.Felix.createBundleActivator(Felix.java:3438)        
at org.apache.felix.framework.Felix._startBundle(Felix.java:1540)
       at org.apache.felix.framework.Felix.startBundle(Felix.java:1479)
       at 
org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:1074)        
at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:258)       
 at java.lang.Thread.run(Thread.java:595)

Section #3.8.4, Overall Search Order, of OSGi Service Platform Release 4 spec 
does not clearly (or I don't understand it well enough) state what should be 
the behavior. Relevant portions of the spec is given below:

/1 If the class or resource is in a java.* package, the request is delegated to 
the parent class loader; otherwise, the search continues with the next step. If 
the request is delegated to the parent class loader and the class or resource 
is not found, then the search terminates and the request fails.
2 If the class or resource is from a package included in the boot delegation 
list (org.osgi.framework.bootdelegation), then the request is delegated to the 
parent class loader. If the class or resource is found there, the search ends.
/
Unlike point #1 above, point #2 does not mandate the search to terminate. I can 
understand the search terminating for java.* packages, but why for other 
packages? It seems Felix is terminating the search, therefore I am seeing this 
failure. Can anyone please clarify this? I am using "*, " because I want to see 
how I can make packages from some library jars available to bundles without 
having to set org.osgi.framework.system.packages property?

I am hoping that if I add my library jars in system classpath and set 
bootdelegation="*", the library jar's content will be automatically available 
to other bundles even if I don't set org.osgi.framework.system.packages 
property. Is this not going to work?

Thanks,
Sahoo 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to