[jbosstools-issues] [JBoss JIRA] (JBDS-4136) Uses constraint violation - org.slf4j.api vs. slf4j.api
Nick Boldt (JIRA)
issues at jboss.org
Mon Oct 24 20:01:04 EDT 2016
[ https://issues.jboss.org/browse/JBDS-4136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nick Boldt updated JBDS-4136:
-----------------------------
Description:
Latest bit of rpm madness...
This conflict occurred:
{code}
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.m2e.wtp.jpa [931]
Bundle was not resolved because of a uses contraint violation.
org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"] because it is exposed to package 'org.slf4j' from resources org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"] and slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.4"; osgi.identity="slf4j.api"] via two dependency chains.
Chain 1:
org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"]
require: (osgi.wiring.bundle=org.slf4j.api)
|
provide: osgi.wiring.bundle: org.slf4j.api
org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"]
Chain 2:
org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"]
require: (osgi.wiring.bundle=org.slf4j.api)
|
provide: osgi.wiring.bundle; bundle-version:Version="1.7.2.v20121108-1250"; osgi.wiring.bundle="org.slf4j.api"
org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"]
require: (&(osgi.wiring.bundle=ch.qos.logback.classic)(&(bundle-version>=1.0.7)(!(bundle-version>=1.0.8))))
|
provide: osgi.wiring.bundle; bundle-version:Version="1.0.7.v20121108-1250"; osgi.wiring.bundle="ch.qos.logback.classic"
ch.qos.logback.classic [osgi.identity; type="osgi.bundle"; version:Version="1.0.7.v20121108-1250"; osgi.identity="ch.qos.logback.classic"]
import: (&(osgi.wiring.package=org.slf4j)(version>=1.7.0))
|
export: osgi.wiring.package: org.slf4j
slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.4"; osgi.identity="slf4j.api"]
at org.eclipse.osgi.container.Module.start(Module.java:444)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1620)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1599)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1571)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1514)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340){code}
So, since slf4j.api is installed via 5 upstream projects (5 symlinks, actually, to rh-java-common):
{code}
$➔ find . -name "*slf4j.api*jar" -exec ls -l {} \;
lrwxrwxrwx 1 root root 81 Oct 11 13:00 ./share/eclipse/droplets/jgit/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
lrwxrwxrwx 1 root root 81 Oct 12 05:19 ./share/eclipse/droplets/linuxtools-docker/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
lrwxrwxrwx 1 root root 81 Oct 11 14:46 ./share/eclipse/droplets/egit-egit/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
lrwxrwxrwx 1 root root 75 Oct 21 09:58 ./share/eclipse/droplets/mylyn-versions-git/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/api.jar
lrwxrwxrwx 1 root root 81 Oct 11 14:46 ./share/eclipse/droplets/egit-mylyn/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
{code}
... I removed it from the RPM in favour of the other bundle, which was already installed into the fedora/rhel eclipse.
BUT... since this jar exports a different, incompatible bundle name:
{code}Bundle-SymbolicName: slf4j.api{code}
than the one in devstudio's update site
{code}Bundle-SymbolicName: org.slf4j.api{code}
NOW, I'm getting this:
{code}
Unresolved requirement: Require-Bundle: org.slf4j.api; bundle-version="1.6.2"
{code}
(Snjezana got this too, ie:
{code}
So... not sure what to do to solve this. :(
I suppose the best case would be for the m2e and w2e-wtp bundles to depend on the slf4j.api PACKAGES instead of BUNDLES, so that they can run on the fedora/rhel versions instead of those from the devstudio update site / target platform.
was:
Latest bit of rpm madness...
This conflict occurred:
{code}
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.m2e.wtp.jpa [931]
Bundle was not resolved because of a uses contraint violation.
org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"] because it is exposed to package 'org.slf4j' from resources org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"] and slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.4"; osgi.identity="slf4j.api"] via two dependency chains.
Chain 1:
org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"]
require: (osgi.wiring.bundle=org.slf4j.api)
|
provide: osgi.wiring.bundle: org.slf4j.api
org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"]
Chain 2:
org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"]
require: (osgi.wiring.bundle=org.slf4j.api)
|
provide: osgi.wiring.bundle; bundle-version:Version="1.7.2.v20121108-1250"; osgi.wiring.bundle="org.slf4j.api"
org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"]
require: (&(osgi.wiring.bundle=ch.qos.logback.classic)(&(bundle-version>=1.0.7)(!(bundle-version>=1.0.8))))
|
provide: osgi.wiring.bundle; bundle-version:Version="1.0.7.v20121108-1250"; osgi.wiring.bundle="ch.qos.logback.classic"
ch.qos.logback.classic [osgi.identity; type="osgi.bundle"; version:Version="1.0.7.v20121108-1250"; osgi.identity="ch.qos.logback.classic"]
import: (&(osgi.wiring.package=org.slf4j)(version>=1.7.0))
|
export: osgi.wiring.package: org.slf4j
slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.4"; osgi.identity="slf4j.api"]
at org.eclipse.osgi.container.Module.start(Module.java:444)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1620)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1599)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1571)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1514)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340){code}
So, since slf4j.api is installed via 5 upstream projects (5 symlinks, actually, to rh-java-common):
{code}
$➔ find . -name "*slf4j.api*jar" -exec ls -l {} \;
lrwxrwxrwx 1 root root 81 Oct 11 13:00 ./share/eclipse/droplets/jgit/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
lrwxrwxrwx 1 root root 81 Oct 12 05:19 ./share/eclipse/droplets/linuxtools-docker/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
lrwxrwxrwx 1 root root 81 Oct 11 14:46 ./share/eclipse/droplets/egit-egit/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
lrwxrwxrwx 1 root root 75 Oct 21 09:58 ./share/eclipse/droplets/mylyn-versions-git/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/api.jar
lrwxrwxrwx 1 root root 81 Oct 11 14:46 ./share/eclipse/droplets/egit-mylyn/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
{code}
... I removed it from the RPM in favour of the other bundle, which was already installed into the fedora/rhel eclipse.
BUT... since this jar exports a different, incompatible bundle name:
{code}Bundle-SymbolicName: slf4j.api{code}
than the one in devstudio's update site
{code}Bundle-SymbolicName: org.slf4j.api{code}
NOW, I'm getting this:
{code}
Unresolved requirement: Require-Bundle: org.slf4j.api; bundle-version="1.6.2"
{code}
So... not sure what to do to solve this. :(
I suppose the best case would be for the m2e bundles to depend on the slf4j.api PACKAGES instead of BUNDLES, so that they can run on the fedora/rhel versions instead of those from the devstudio update site / target platform.
> Uses constraint violation - org.slf4j.api vs. slf4j.api
> -------------------------------------------------------
>
> Key: JBDS-4136
> URL: https://issues.jboss.org/browse/JBDS-4136
> Project: Red Hat JBoss Developer Studio (devstudio)
> Issue Type: Sub-task
> Components: build, rpm, target-platform
> Affects Versions: 10.2.0.AM2
> Reporter: Nick Boldt
> Fix For: 10.2.0.AM3
>
>
> Latest bit of rpm madness...
> This conflict occurred:
> {code}
> org.osgi.framework.BundleException: Could not resolve module: org.eclipse.m2e.wtp.jpa [931]
> Bundle was not resolved because of a uses contraint violation.
> org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"] because it is exposed to package 'org.slf4j' from resources org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"] and slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.4"; osgi.identity="slf4j.api"] via two dependency chains.
> Chain 1:
> org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"]
> require: (osgi.wiring.bundle=org.slf4j.api)
> |
> provide: osgi.wiring.bundle: org.slf4j.api
> org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"]
> Chain 2:
> org.eclipse.m2e.wtp.jpa [osgi.identity; type="osgi.bundle"; version:Version="1.3.1.20160831-1005"; osgi.identity="org.eclipse.m2e.wtp.jpa"; singleton:="true"]
> require: (osgi.wiring.bundle=org.slf4j.api)
> |
> provide: osgi.wiring.bundle; bundle-version:Version="1.7.2.v20121108-1250"; osgi.wiring.bundle="org.slf4j.api"
> org.slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.2.v20121108-1250"; osgi.identity="org.slf4j.api"]
> require: (&(osgi.wiring.bundle=ch.qos.logback.classic)(&(bundle-version>=1.0.7)(!(bundle-version>=1.0.8))))
> |
> provide: osgi.wiring.bundle; bundle-version:Version="1.0.7.v20121108-1250"; osgi.wiring.bundle="ch.qos.logback.classic"
> ch.qos.logback.classic [osgi.identity; type="osgi.bundle"; version:Version="1.0.7.v20121108-1250"; osgi.identity="ch.qos.logback.classic"]
> import: (&(osgi.wiring.package=org.slf4j)(version>=1.7.0))
> |
> export: osgi.wiring.package: org.slf4j
> slf4j.api [osgi.identity; type="osgi.bundle"; version:Version="1.7.4"; osgi.identity="slf4j.api"]
> at org.eclipse.osgi.container.Module.start(Module.java:444)
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1620)
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1599)
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1571)
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1514)
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
> at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340){code}
> So, since slf4j.api is installed via 5 upstream projects (5 symlinks, actually, to rh-java-common):
> {code}
> $➔ find . -name "*slf4j.api*jar" -exec ls -l {} \;
> lrwxrwxrwx 1 root root 81 Oct 11 13:00 ./share/eclipse/droplets/jgit/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
> lrwxrwxrwx 1 root root 81 Oct 12 05:19 ./share/eclipse/droplets/linuxtools-docker/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
> lrwxrwxrwx 1 root root 81 Oct 11 14:46 ./share/eclipse/droplets/egit-egit/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
> lrwxrwxrwx 1 root root 75 Oct 21 09:58 ./share/eclipse/droplets/mylyn-versions-git/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/api.jar
> lrwxrwxrwx 1 root root 81 Oct 11 14:46 ./share/eclipse/droplets/egit-mylyn/eclipse/plugins/slf4j.api_1.7.4.jar -> ../../../../../../../../../rh-java-common/root/usr/share/java/slf4j/slf4j-api.jar
> {code}
> ... I removed it from the RPM in favour of the other bundle, which was already installed into the fedora/rhel eclipse.
> BUT... since this jar exports a different, incompatible bundle name:
> {code}Bundle-SymbolicName: slf4j.api{code}
> than the one in devstudio's update site
> {code}Bundle-SymbolicName: org.slf4j.api{code}
> NOW, I'm getting this:
> {code}
> Unresolved requirement: Require-Bundle: org.slf4j.api; bundle-version="1.6.2"
> {code}
> (Snjezana got this too, ie:
> {code}
> So... not sure what to do to solve this. :(
> I suppose the best case would be for the m2e and w2e-wtp bundles to depend on the slf4j.api PACKAGES instead of BUNDLES, so that they can run on the fedora/rhel versions instead of those from the devstudio update site / target platform.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jbosstools-issues
mailing list