[ https://issues.apache.org/jira/browse/FELIX-5074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14952705#comment-14952705 ]
Konrad Windszus commented on FELIX-5074: ---------------------------------------- Hi Pierre, thanks for your feedback on my patch. Ok, so it seems we need to rethink the patch. But only setting bndlib to "provided" will only resolve one part of the issue. The other issue that we should not include the same class within the classpath of bndlib twice remains. Let me quickly summarize what is part of bndlib 3.0 and bndlib 2.1 bndlib 3.0 # org.osgi.resource # org.osgi.service.component.annotations # org.osgi.service.metatype.annotations # org.osgi.service.repository bndlib 2.1 # org.osgi.resource # org.osgi.service.component.annotations # org.osgi.service.repository Those packages should not be contained in {{felix.scr.bnd}}, otherwise you run into problems. But the issue is that those packages are part of osgi.compendium as well. Therefore I think we must depend on something less generic than osgi.compendium. What is needed at runtime by {{felix.scr.bnd}} really should be only: # org.osgi.service.component.ComponentContext # org.osgi.framework.BundleContext All the other references really seem to be constants (which are in any case being inlined by the compiler). So maybe depending on http://search.maven.org/#artifactdetails|org.osgi|org.osgi.service.component|1.3.0|jar seems better as that includes only the relevant package (but is only available for DS 1.3, though). > Using org.apache.felix.scr.bnd together with maven-bundle-plugin leads to > using the wrong bnd version > ----------------------------------------------------------------------------------------------------- > > Key: FELIX-5074 > URL: https://issues.apache.org/jira/browse/FELIX-5074 > Project: Felix > Issue Type: Bug > Components: SCR Tooling > Affects Versions: scr bnd plugin 1.4.0 > Reporter: Konrad Windszus > Attachments: pom.xml > > > If I have a POM with a plugin configuration like this > {code} > <plugin> > <groupId>org.apache.felix</groupId> > <artifactId>maven-bundle-plugin</artifactId> > <version>3.0.0</version> > <extensions>true</extensions> > <configuration> > <instructions> > <!-- support parsing of felix annotations through the felix.scr.bnd > plugin --> > > <_plugin>org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin;destdir=target/classes</_plugin> > </instructions> > </configuration> > <dependencies> > <!-- > https://github.com/apache/felix/tree/trunk/tools/org.apache.felix.scr.bnd --> > <dependency> > <groupId>org.apache.felix</groupId> > <artifactId>org.apache.felix.scr.bnd</artifactId> > <version>1.4.0</version> > </dependency> > </dependencies> > </plugin> > {code} > Unfortunately {{org.apache.felix.scr.bnd}} depends on > {{biz.aQute.bnd:bndlib:jar:2.1.0}}. Therefore the classpath of > maven-bundle-plugin looks like this: > {code} > [DEBUG] Populating class realm > plugin>org.apache.felix:maven-bundle-plugin:3.0.0 > [DEBUG] Included: org.apache.felix:maven-bundle-plugin:jar:3.0.0 > [DEBUG] Included: org.apache.felix:org.apache.felix.scr.bnd:jar:1.4.0 > [DEBUG] Included: biz.aQute.bnd:bndlib:jar:2.1.0 > [DEBUG] Included: org.osgi:org.osgi.core:jar:4.3.1 > [DEBUG] Included: biz.aQute.bnd:biz.aQute.bndlib:jar:3.0.0 > [DEBUG] Included: > org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.6 > [DEBUG] Included: org.easymock:easymock:jar:2.5.2 > [DEBUG] Included: org.apache.felix:org.apache.felix.utils:jar:1.6.0 > [DEBUG] Included: org.osgi:org.osgi.compendium:jar:4.2.0 > [DEBUG] Included: org.slf4j:slf4j-jdk14:jar:1.5.6 > [DEBUG] Included: org.slf4j:slf4j-api:jar:1.5.6 > [DEBUG] Included: org.slf4j:jcl-over-slf4j:jar:1.5.6 > [DEBUG] Included: org.apache.maven.reporting:maven-reporting-api:jar:2.2.0 > [DEBUG] Included: org.apache.maven.doxia:doxia-logging-api:jar:1.1 > [DEBUG] Included: junit:junit:jar:4.11 > [DEBUG] Included: org.hamcrest:hamcrest-core:jar:1.3 > [DEBUG] Included: commons-cli:commons-cli:jar:1.2 > [DEBUG] Included: > org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 > [DEBUG] Included: backport-util-concurrent:backport-util-concurrent:jar:3.1 > [DEBUG] Included: org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3 > [DEBUG] Included: org.sonatype.plexus:plexus-cipher:jar:1.4 > [DEBUG] Included: org.apache.maven:maven-archiver:jar:2.5 > [DEBUG] Included: org.codehaus.plexus:plexus-archiver:jar:2.1 > [DEBUG] Included: org.codehaus.plexus:plexus-io:jar:2.0.2 > [DEBUG] Included: org.codehaus.plexus:plexus-interpolation:jar:1.15 > [DEBUG] Included: org.apache.maven.shared:maven-dependency-tree:jar:2.1 > [DEBUG] Included: org.codehaus.plexus:plexus-component-annotations:jar:1.5.5 > [DEBUG] Included: org.eclipse.aether:aether-util:jar:0.9.0.M2 > [DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:3.0.10 > [DEBUG] Included: org.sonatype.plexus:plexus-build-api:jar:0.0.7 > [DEBUG] Included: org.apache.maven.doxia:doxia-sink-api:jar:1.0 > [DEBUG] Included: org.apache.maven.doxia:doxia-site-renderer:jar:1.0 > [DEBUG] Included: org.apache.maven.doxia:doxia-core:jar:1.0 > [DEBUG] Included: org.codehaus.plexus:plexus-i18n:jar:1.0-beta-7 > [DEBUG] Included: org.codehaus.plexus:plexus-velocity:jar:1.1.7 > [DEBUG] Included: org.apache.velocity:velocity:jar:1.5 > [DEBUG] Included: commons-lang:commons-lang:jar:2.1 > [DEBUG] Included: oro:oro:jar:2.0.8 > [DEBUG] Included: org.apache.maven.doxia:doxia-decoration-model:jar:1.0 > [DEBUG] Included: commons-collections:commons-collections:jar:3.2 > [DEBUG] Included: org.apache.maven.doxia:doxia-module-apt:jar:1.0 > [DEBUG] Included: org.apache.maven.doxia:doxia-module-fml:jar:1.0 > [DEBUG] Included: org.apache.maven.doxia:doxia-module-xdoc:jar:1.0 > [DEBUG] Included: org.apache.maven.doxia:doxia-module-xhtml:jar:1.0 > [DEBUG] Excluded: org.apache.maven:maven-core:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-settings:jar:2.2.0 > [DEBUG] Excluded: > org.apache.maven:maven-plugin-parameter-documenter:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-profile:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-model:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-artifact:jar:2.2.0 > [DEBUG] Excluded: > org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 > [DEBUG] Excluded: org.apache.maven:maven-repository-metadata:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-error-diagnostics:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-project:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-plugin-registry:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-plugin-api:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-plugin-descriptor:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-artifact-manager:jar:2.2.0 > [DEBUG] Excluded: org.apache.maven:maven-monitor:jar:2.2.0 > [DEBUG] Excluded: classworlds:classworlds:jar:1.1 > {code} > So the classpath contains both bnd 2.1 and bnd 3.0. > IMHO the {{felix.scr.bnd}} should not transitively influence the classpath. I > guess marking the dependency to bnd as provided in its pom.xml should do the > trick here! -- This message was sent by Atlassian JIRA (v6.3.4#6332)