[ 
https://issues.apache.org/jira/browse/FELIX-2949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13032858#comment-13032858
 ] 

Guillaume Nodet commented on FELIX-2949:
----------------------------------------

Here is the resolution exception:
{{code}}
org.osgi.framework.BundleException: Unable to resolve module 
org.apache.activemq.activemq-core 
[org.apache.felix.framework.resolver.WrappedModule@6b371a57] because it is 
exposed to package 'javax.annotation' from 
org.apache.geronimo.specs.geronimo-annotation_1.0_spec [57.0] and 
org.apache.felix.framework [0] via two dependency chains.

Chain 1:
  org.apache.activemq.activemq-core 
[org.apache.felix.framework.resolver.WrappedModule@6b371a57]
    import: (&(package=javax.annotation)(version>=1.0.0)(!(version>=2.0.0)))
     |
    export: package=javax.annotation
  org.apache.geronimo.specs.geronimo-annotation_1.0_spec [57.0]

Chain 2:
  org.apache.activemq.activemq-core 
[org.apache.felix.framework.resolver.WrappedModule@6b371a57]
    import: 
(&(package=org.apache.xbean.blueprint.context.impl)(version>=3.7.0)(!(version>=4.0.0)))
     |
    export: package=org.apache.xbean.blueprint.context.impl; 
uses:=javax.annotation
  org.apache.xbean.blueprint [58.0]
    import: (package=javax.annotation)
     |
    export: package=javax.annotation
  org.apache.felix.framework [0]
        at 
org.apache.felix.framework.Felix.resolveBundle(Felix.java:3442)[org.apache.felix.framework-3.0.9-fuse-00-10.jar:]
        at 
org.apache.felix.framework.Felix.startBundle(Felix.java:1728)[org.apache.felix.framework-3.0.9-fuse-00-10.jar:]
        at 
org.apache.felix.framework.BundleImpl.start(BundleImpl.java:921)[org.apache.felix.framework-3.0.9-fuse-00-10.jar:]
        at 
org.apache.felix.framework.BundleImpl.start(BundleImpl.java:908)[org.apache.felix.framework-3.0.9-fuse-00-10.jar:]
        at 
org.fusesource.fabric.agent.DeploymentAgent.updateDeployment(DeploymentAgent.java:437)[45:org.fusesource.fabric.fabric-agent:1.0.0.SNAPSHOT]
        at 
org.fusesource.fabric.agent.DeploymentAgent.doUpdate(DeploymentAgent.java:227)[45:org.fusesource.fabric.fabric-agent:1.0.0.SNAPSHOT]
        at 
org.fusesource.fabric.agent.DeploymentAgent$1.run(DeploymentAgent.java:150)[45:org.fusesource.fabric.fabric-agent:1.0.0.SNAPSHOT]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_24]
        at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_24]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_24]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_24]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_24]
        at java.lang.Thread.run(Thread.java:680)[:1.6.0_24]
{{code}}

The idea is that if the org.apache.activemq.activemq-core bundle is resolved 
before the org.apache.xbean.blueprint one, the resolution succeeds, but because 
the bundles are resolved in order, the process always fail because the 
org.apache.xbean.blueprint bundle is always wired against the incompatible 
package.

I'll try with 3.2.x version in a bit.

> PackageAdmin#resolveBundles() should do a global resolution instead of a step 
> by step resolution
> ------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-2949
>                 URL: https://issues.apache.org/jira/browse/FELIX-2949
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-3.0.9, framework-3.2.1
>            Reporter: Guillaume Nodet
>
> The code currently iterates through the list of bundles and try to resolve 
> them one by one.
> This unfortunately does not always give a good solution and have a global 
> resolution would allow some use cases to be solved without manual 
> intervention.
> My use case involve a package which is provided in 2 different versions and 
> which causes use constraints to not be solved when the bundles are resolved 
> one by one.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to