[ https://issues.apache.org/jira/browse/FELIX-5074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14952467#comment-14952467 ]
Pierre De Rop edited comment on FELIX-5074 at 10/11/15 10:44 PM: ----------------------------------------------------------------- Hi Konrad; The compendium is included because the scr.bnd plugin is intented to be run within bndtools, and when the plugin runs in bndtools, the compendium is not available in the classpath (only bndlib is available if I'm correct). Now, to verify if what I'm saying is making sense, I just created a bndtools project and tried the scr.bnd plugin compiled with your patch (which does not include the compendium) and when I'm building using "gradle jar", I'm indeed getting a CNF on org.osgi.service.component.ComponentContext class (which is needed by the scr.bnd plugin): {code} gradle jar Error : Got unexpected exception while analyzing:org.apache.felix.scrplugin.SCRDescriptorException: Unable to load class. at org.apache.felix.scrplugin.helper.Validator.getMethod(Validator.java:222) at org.apache.felix.scrplugin.helper.Validator.findLifecycleMethod(Validator.java:246) at org.apache.felix.scrplugin.SCRDescriptorGenerator.createComponent(SCRDescriptorGenerator.java:452) at org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:161) at org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin.analyzeJar(SCRDescriptorBndPlugin.java:172) at aQute.bnd.osgi.Analyzer.doPlugins(Analyzer.java:658) at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:213) at aQute.bnd.osgi.Builder.analyze(Builder.java:379) at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:688) at aQute.bnd.osgi.Builder.build(Builder.java:104) at aQute.bnd.osgi.Builder.builds(Builder.java:1283) at aQute.bnd.build.ProjectBuilder.builds(ProjectBuilder.java:540) at aQute.bnd.build.Project.buildLocal(Project.java:1650) at aQute.bnd.build.Project.build(Project.java:1497) at aQute.bnd.build.Project.build(Project.java:1974) at aQute.bnd.build.Project$build$14.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at aQute.bnd.gradle.BndPlugin$_apply_closure1_closure13_closure45.doCall(BndPlugin.groovy:242) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:439) at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:548) at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:529) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51) at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) at org.gradle.launcher.Main.doAction(Main.java:33) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) at org.gradle.launcher.GradleMain.main(GradleMain.java:23) Caused by: java.lang.ClassNotFoundException: org.osgi.service.component.ComponentContext at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.felix.scrplugin.helper.Validator.getMethod(Validator.java:219) ... 81 more {code} So, I think that we have to leave the compendium included in the scr.bnd plugin. However it seems that your initial proposal does resolve the issue: we can just declare in the tools/org.apache.felix.scr.bnd/pom.xml file a dependency on bndlib with scope=provided. Moreover, we can also upgrade to 3.0.0 version (in order to be in line with the one used by the latest maven bundle plugin). Something like this (in the tools/org.apache.felix.scr.bnd/pom.xml file): {code} <dependency> <groupId>biz.aQute.bnd</groupId> <artifactId>biz.aQute.bndlib</artifactId> <version>3.0.0</version> <scope>provided</scope> </dependency> {code} Will this resolve your issue ? Regarding the other modification you did in org.apache.felix.scr.generator/pom.xml, may be Carsten could give his opinion on it ? was (Author: pderop): Hi Konrad; The compendium is included because the scr.bnd plugin is intented to be run within bndtools, and when the plugin runs in bndtools, the compendium is not available in the classpath (only bndlib is available if I'm correct). Now, to verify if what I'm saying is making sense, I just created a bndtools project and tried the scr.bnd plugin compiled with your patch (which does not include the compendium) and when I'm building using "gradle jar", I'm indeed getting a CNF on org.osgi.service.component.ComponentContext class (which is needed by the scr.bnd plugin): {code} gradle jar Error : Got unexpected exception while analyzing:org.apache.felix.scrplugin.SCRDescriptorException: Unable to load class. at org.apache.felix.scrplugin.helper.Validator.getMethod(Validator.java:222) at org.apache.felix.scrplugin.helper.Validator.findLifecycleMethod(Validator.java:246) at org.apache.felix.scrplugin.SCRDescriptorGenerator.createComponent(SCRDescriptorGenerator.java:452) at org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:161) at org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin.analyzeJar(SCRDescriptorBndPlugin.java:172) at aQute.bnd.osgi.Analyzer.doPlugins(Analyzer.java:658) at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:213) at aQute.bnd.osgi.Builder.analyze(Builder.java:379) at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:688) at aQute.bnd.osgi.Builder.build(Builder.java:104) at aQute.bnd.osgi.Builder.builds(Builder.java:1283) at aQute.bnd.build.ProjectBuilder.builds(ProjectBuilder.java:540) at aQute.bnd.build.Project.buildLocal(Project.java:1650) at aQute.bnd.build.Project.build(Project.java:1497) at aQute.bnd.build.Project.build(Project.java:1974) at aQute.bnd.build.Project$build$14.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at aQute.bnd.gradle.BndPlugin$_apply_closure1_closure13_closure45.doCall(BndPlugin.groovy:242) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:439) at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:548) at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:529) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51) at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) at org.gradle.launcher.Main.doAction(Main.java:33) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) at org.gradle.launcher.GradleMain.main(GradleMain.java:23) Caused by: java.lang.ClassNotFoundException: org.osgi.service.component.ComponentContext at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.felix.scrplugin.helper.Validator.getMethod(Validator.java:219) ... 81 more {code} So, I think that we have to leave the compendium included in the scr.bnd plugin. However it seems that your initial proposal does resolve the issue: we can just declare in the tools/org.apache.felix.scr.bnd/pom.xml file a dependency on bndlib with scope=provided. Somethink like this {code} <dependency> <groupId>biz.aQute.bnd</groupId> <artifactId>bndlib</artifactId> <version>2.1.0</version> <scope>provided</scope> </dependency> {code} Regarding the other modification you did in org.apache.felix.scr.generator/pom.xml, may be Carsten could give his opinion on it ? > 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)