[
https://issues.apache.org/jira/browse/FELIX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stuart McCulloch reopened FELIX-463:
------------------------------------
Re-opening, because I think we need to at least clarify the spec: it appears to
suggest we should continue the search if non java.* bootdelegation packages are
not found in the parent classloader - note this is also how the reference
implementation behaves (this is just an FYI, as the RI could be wrong)
> 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.