Tom De Wolf created ARIES-1590:
----------------------------------

             Summary: Subsystem install fails due to unexpected resolve conflict
                 Key: ARIES-1590
                 URL: https://issues.apache.org/jira/browse/ARIES-1590
             Project: Aries
          Issue Type: Bug
          Components: Subsystem
            Reporter: Tom De Wolf
            Priority: Blocker
             Fix For: subsystem-2.1.0


When we use the 2.0.9-SNAPSHOT version currently in development we get an 
unexpected resolve conflict:

{panel}
DEBUG: Candidate permutation failed due to a conflict between imports; will try 
another if possible. (org.osgi.service.resolver.ResolutionException: Uses 
constraint violation. Unable to resolve resource com.reproduce.reproduce-bundle 
[/var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8165788265469364064.zip/reproduce-bundle-4.1.2-SNAPSHOT.jar]
 because it is exposed to package 'org.springframework.beans' from resources 
com.reproduce.reproduce-base-subsystem 
[org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0, 
constituents=70, id=1, 
location=file:///Users/tom/Documents/code/aca-common/osgi-subsystem-support/reproduce-base-subsystem/target/reproduce-base-subsystem-4.1.2-SNAPSHOT.esa,
 parents=1, state=INSTALLED, 
symbolicName=com.reproduce.reproduce-base-subsystem, 
type=osgi.subsystem.feature, version=4.1.2.SNAPSHOT] and 
org.apache.servicemix.bundles.spring-beans [73.0] via two dependency chains.

Chain 1:
  com.reproduce.reproduce-bundle 
[/var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8165788265469364064.zip/reproduce-bundle-4.1.2-SNAPSHOT.jar]
    import: (&(osgi.wiring.package=org.springframework.beans)(version>=0.0.0))
     |
    export: osgi.wiring.package: org.springframework.beans
  com.reproduce.reproduce-base-subsystem 
[org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0, 
constituents=70, id=1, 
location=file:///Users/tom/Documents/code/aca-common/osgi-subsystem-support/reproduce-base-subsystem/target/reproduce-base-subsystem-4.1.2-SNAPSHOT.esa,
 parents=1, state=INSTALLED, 
symbolicName=com.reproduce.reproduce-base-subsystem, 
type=osgi.subsystem.feature, version=4.1.2.SNAPSHOT]

Chain 2:
  com.reproduce.reproduce-bundle 
[/var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8165788265469364064.zip/reproduce-bundle-4.1.2-SNAPSHOT.jar]
    import: 
(&(osgi.wiring.package=org.springframework.beans.factory.annotation)(version>=0.0.0))
     |
    export: osgi.wiring.package: org.springframework.beans.factory.annotation; 
uses:=org.springframework.beans
    export: osgi.wiring.package=org.springframework.beans
  org.apache.servicemix.bundles.spring-beans [73.0])
{panel}

It is unexpected because 1 of the 2 chains points to the actual bundle that 
exports the package and the other of the 2 chains points to the base subsystem 
already installed in the runtime. In fact the bundle is part of that subsystem 
so it should consider both as exactly the same and not consider it as 2 chains 
he cannot resolve.

Not sure if it is related to ARIES-1588 and the commit mentioned there but that 
commit does affect how already installed subsystems are taken into account in 
the resolve process.

Note: we are using the felix resolver 1.4.0



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to