Konrad Windszus created FELIX-5327:
--------------------------------------

             Summary: SCR Plugin: FileNotFoundException in multi-module Maven 
reactor build in 2nd module
                 Key: FELIX-5327
                 URL: https://issues.apache.org/jira/browse/FELIX-5327
             Project: Felix
          Issue Type: Bug
          Components: SCR Tooling
    Affects Versions: scr bnd plugin 1.5.0
            Reporter: Konrad Windszus


In a multi-module Maven build the scr bnd plugin tries to write the bind 
methods into the wrong file. Instead of {{<current maven module 
directory>/target/classes/...}} it tries to use {{<root maven module 
directory>/target/classes/...}}.
The funny thing is that this only happens with the 2nd Maven module containing 
components, for the first Maven module it works correctly.
So it seems that the scr bnd plugin is not always using the correct base path.

The exception when this occurs looks like this
{code}
[ERROR] Bundle <some bundle>:<some version> : Got unexpected exception while 
analyzing:org.apache.felix.scrplugin.SCRDescriptorException: Unable to add 
methods to <Fully qualified class name of SCR Component>
        at 
org.apache.felix.scrplugin.helper.ClassModifier.addMethods(ClassModifier.java:114)
        at 
org.apache.felix.scrplugin.SCRDescriptorGenerator.generateMethods(SCRDescriptorGenerator.java:274)
        at 
org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:201)
        at 
org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin.analyzeJar(SCRDescriptorBndPlugin.java:178)
        at aQute.bnd.osgi.Analyzer.doPlugins(Analyzer.java:656)
        at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:209)
        at aQute.bnd.osgi.Builder.analyze(Builder.java:385)
        at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:687)
        at aQute.bnd.osgi.Builder.build(Builder.java:105)
        at 
org.apache.felix.bundleplugin.BundlePlugin.buildOSGiBundle(BundlePlugin.java:972)
        at 
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:470)
        at 
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:387)
        at 
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:378)
        at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at 
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.io.FileNotFoundException: <directory of root 
pom.xml>/target/classes/<some class containing a SCR component> (No such file 
or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.io.FileInputStream.<init>(FileInputStream.java:93)
        at 
org.apache.felix.scrplugin.helper.ClassModifier.addMethods(ClassModifier.java:65)
        ... 34 more
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to