Hey Stefan,
I used the plugin in the maven-bundle-plugin, but it seems that some of my
bundles give following exception, any idea what might be causing this?
[ERROR] Manifest mygroupId:myartifactId:bundle:30.0-SNAPSHOT : Got unexpected
exception while analyzing:org.apache.felix.scrplugin.SCRDescriptorException:
Unable to load compiled class:
org.apache.commons.collections.DoubleOrderedMap$1$1
at
org.apache.felix.scrplugin.helper.ClassScanner.scanSources(ClassScanner.java:156)
at
org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:146)
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:389)
at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:687)
at aQute.bnd.osgi.Builder.build(Builder.java:105)
at
org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer(ManifestPlugin.java:291)
at
org.apache.felix.bundleplugin.ManifestPlugin.execute(ManifestPlugin.java:98)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:384)
at
org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:375)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
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:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
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:498)
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)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
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:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.IllegalAccessError: class
org.apache.commons.collections.DoubleOrderedMap$1$1 cannot access its
superclass
org.apache.commons.collections.DoubleOrderedMap$DoubleOrderedMapIterator
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at
org.apache.felix.scrplugin.helper.ClassScanner.scanSources(ClassScanner.java:144)
... 39 more
Thanks!
Roy
> On 16 Mar 2017, at 17:49, Stefan Seifert <[email protected]> wrote:
>
>
>> I think the bnd support is for the proprietary bnd annotations, not the
>> proprietary felix annotations. AFAIR bnd never supported the proprietary
>> felix scr annotations.
>
> no, org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin really hooks in the
> support for the proprietary felix SCR annotations.
>
>
>> I also think that bnd (and thus the maven-bundle-plugin) runs and
>> generates the xml after the unit tests run, so that you will never be able
>> to get the xml’s in time for unit tests. I don’t know if integration
>> tests (failsafe plugin) run before or after the bundle is assembled, but I
>> think after, so perhaps that would be worth looking into.
>
> it works if you additionally configure a "manifest" goal in your pom. and if
> "supportIncrementalBuild" is added as well it even works within eclipse
> incremental builds. see [1] for an example.
>
> stefan
>
> [1]
> https://github.com/wcm-io/wcm-io-tooling/blob/develop/maven/aem-global-parent/pom.xml
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]