[ 
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)

Reply via email to