[
https://issues.apache.org/jira/browse/ARIES-1590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tom De Wolf updated ARIES-1590:
-------------------------------
Description:
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
org.apache.servicemix.bundles.spring-core [116.0] because it is exposed to
package 'org.aspectj.bridge' from resources
com.reproduce.reproduce-base-subsystem
[org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0,
constituents=60, id=3,
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.aspectj [111.0] via two dependency chains.
Chain 1:
org.apache.servicemix.bundles.spring-core [116.0]
import:
(&(osgi.wiring.package=org.aspectj.bridge)(version>=1.7.1)(!(version>=2.0.0)))
|
export: osgi.wiring.package: org.aspectj.bridge
com.reproduce.reproduce-base-subsystem
[org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0,
constituents=60, id=3,
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:
org.apache.servicemix.bundles.spring-core [116.0]
import:
(&(osgi.wiring.package=org.aspectj.weaver)(version>=1.7.1)(!(version>=2.0.0)))
|
export: osgi.wiring.package=org.aspectj.weaver;
uses:=org.aspectj.weaver.patterns
com.reproduce.reproduce-base-subsystem
[org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0,
constituents=60, id=3,
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]
import:
(&(osgi.wiring.package=org.aspectj.weaver.patterns)(&(version>=1.7.1)(!(version>=2.0.0))))
|
export: osgi.wiring.package: org.aspectj.weaver.patterns;
uses:=org.aspectj.bridge
export: osgi.wiring.package=org.aspectj.bridge
org.apache.servicemix.bundles.aspectj [111.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
Steps to reproduce:
1. start clean felix
2. install the attached reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, do not
start it
3. install the attached reproduce-subsystem-4.1.2-SNAPSHOT.esa
Step 3 will start failing in DEBUG logging with chain errors like above. It
will try a number of permutations but it will not get out of it.
Note: which bundles and packages are shown in the example log above are less
important as we have multiple such kind of errors for which only the package
and bundles differ.
was:
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
Steps to reproduce:
1. start clean felix
2. install the attached reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, do not
start it
3. install the attached reproduce-subsystem-4.1.2-SNAPSHOT.esa
Step 3 will start failing in DEBUG logging with chain errors like above. It
will try a number of permutations but it will not get out of it.
> 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
>
> Attachments: reproduce-subsystem-4.1.2-SNAPSHOT.esa
>
>
> 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
> org.apache.servicemix.bundles.spring-core [116.0] because it is exposed to
> package 'org.aspectj.bridge' from resources
> com.reproduce.reproduce-base-subsystem
> [org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0,
> constituents=60, id=3,
> 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.aspectj [111.0] via two dependency chains.
> Chain 1:
> org.apache.servicemix.bundles.spring-core [116.0]
> import:
> (&(osgi.wiring.package=org.aspectj.bridge)(version>=1.7.1)(!(version>=2.0.0)))
> |
> export: osgi.wiring.package: org.aspectj.bridge
> com.reproduce.reproduce-base-subsystem
> [org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0,
> constituents=60, id=3,
> 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:
> org.apache.servicemix.bundles.spring-core [116.0]
> import:
> (&(osgi.wiring.package=org.aspectj.weaver)(version>=1.7.1)(!(version>=2.0.0)))
> |
> export: osgi.wiring.package=org.aspectj.weaver;
> uses:=org.aspectj.weaver.patterns
> com.reproduce.reproduce-base-subsystem
> [org.apache.aries.subsystem.core.internal.BasicSubsystem: children=0,
> constituents=60, id=3,
> 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]
> import:
> (&(osgi.wiring.package=org.aspectj.weaver.patterns)(&(version>=1.7.1)(!(version>=2.0.0))))
> |
> export: osgi.wiring.package: org.aspectj.weaver.patterns;
> uses:=org.aspectj.bridge
> export: osgi.wiring.package=org.aspectj.bridge
> org.apache.servicemix.bundles.aspectj [111.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
> Steps to reproduce:
> 1. start clean felix
> 2. install the attached reproduce-base-subsystem-4.1.2-SNAPSHOT.esa, do not
> start it
> 3. install the attached reproduce-subsystem-4.1.2-SNAPSHOT.esa
> Step 3 will start failing in DEBUG logging with chain errors like above. It
> will try a number of permutations but it will not get out of it.
> Note: which bundles and packages are shown in the example log above are less
> important as we have multiple such kind of errors for which only the package
> and bundles differ.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)