You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Stefan Seifert (JIRA)" <ji...@apache.org> on 2016/12/17 00:18:58 UTC

[jira] [Commented] (FELIX-5452) SCR bnd plugin fails when embedding jars with optional/excluded dependencies

    [ https://issues.apache.org/jira/browse/FELIX-5452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15755883#comment-15755883 ] 

Stefan Seifert commented on FELIX-5452:
---------------------------------------

example - with this project using maven-scr-plugin it works:
https://github.com/stefanseifert/FELIX-5452-testproject/tree/master/maven-scr-plugin

with the project using scr bnd plugin it fails:
https://github.com/stefanseifert/FELIX-5452-testproject/tree/master/bnd-scr-plugin

with this error:
{noformat}
[ERROR] Bundle sample:sample.handlebars:bundle:1.0.0-SNAPSHOT : Got unexpected exception while analyzing:org.apache.felix.scrplugin.SCRDescriptorException: Unable to load compiled class: com.github.jknack.handlebars.internal.js.RhinoHandlebars
        at org.apache.felix.scrplugin.helper.ClassScanner.scanSources(ClassScanner.java:152)
        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: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: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)
Caused by: java.lang.NoClassDefFoundError: org/mozilla/javascript/NativeObject
        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 java.lang.Class.getDeclaredClasses0(Native Method)
        at java.lang.Class.getDeclaredClasses(Class.java:1867)
        at org.apache.felix.scrplugin.helper.ClassScanner.process(ClassScanner.java:186)
        at org.apache.felix.scrplugin.helper.ClassScanner.scanSources(ClassScanner.java:146)
        ... 33 more
Caused by: java.lang.ClassNotFoundException: org.mozilla.javascript.NativeObject
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 48 more
{noformat}

> SCR bnd plugin fails when embedding jars with optional/excluded dependencies
> ----------------------------------------------------------------------------
>
>                 Key: FELIX-5452
>                 URL: https://issues.apache.org/jira/browse/FELIX-5452
>             Project: Felix
>          Issue Type: Bug
>          Components: SCR Tooling
>    Affects Versions: scr generator 1.15.0, scr bnd plugin 1.6.0
>            Reporter: Stefan Seifert
>             Fix For: scr generator 1.16.0, scr bnd plugin 1.7.0
>
>
> when the maven-bundle-plugin is used to embedded JAR dependencies, and those dependencies contain optional or excluded further dependencies which classes are somewhere references in the dependency itself SCR generation via maven-bundle-plugin and the SCR bnd plugin fails.
> it does *not* fail when using the maven-scr-plugin.
> the reason for the difference is that the maven-scr-plugin analyzes only the classes compiled in the target folder, not the classes of embedded dependencies. the bnd plugin cannot differentiate if the classes in the bundle jar where embedded or compiled and always scans all of them.



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