[
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