felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-2949) PackageAdmin#resolveBundles() should do a global resolution instead of a step by step resolution
Date Fri, 13 May 2011 07:20:47 GMT

    [ 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

Mime
View raw message