Using OSGi and Apache Felix iPOJO with JDK 11











up vote
2
down vote

favorite












I have a project that is built around OSGi and iPOJO and I'm trying to determine if it will still work with JDK 11. It's currently using JDK 8. It's not looking too hopeful since the latest version of iPOJO (1.12.1) was released in 2014. After updating the target and maven compiler version, I'm running into the following:



[ERROR] Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.annotation.model.parser.AnnotationParser.read(AnnotationParser.java:32)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.MetaAnnotationBindingRegistry.createBindings(MetaAnnotationBindingRegistry.java:94)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:45)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.list(Selection.java:129)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.get(Selection.java:98)
at org.apache.felix.ipojo.manipulator.metadata.annotation.MethodMetadataCollector.visitAnnotation(MethodMetadataCollector.java:69)
at org.objectweb.asm.ClassReader.b(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.computeAnnotations(AnnotationMetadataProvider.java:111)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.access$200(AnnotationMetadataProvider.java:44)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider$1.visit(AnnotationMetadataProvider.java:90)
at org.apache.felix.ipojo.manipulator.store.JarFileResourceStore.accept(JarFileResourceStore.java:161)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.getMetadatas(AnnotationMetadataProvider.java:75)
at org.apache.felix.ipojo.manipulator.metadata.CompositeMetadataProvider.getMetadatas(CompositeMetadataProvider.java:53)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:360)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:243)
at org.apache.felix.ipojo.plugin.ManipulatorMojo.execute(ManipulatorMojo.java:265)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 21 more


From a cursory glance, it looks like the asm dependency of the maven-ipojo-plugin is having trouble with JDK 11, which would make sense because iPOJO has a transitive dependency on asm 5.0.4, and JDK 11 support was not added until asm 7.0. I tried to exclude the transitive dependency and added asm 7.0 as a dependency, but I still get the same error.



Thanks for looking, I'd appreciate any other ideas to try or insights.










share|improve this question


















  • 1




    The plugin must use the asm library for JDK 11 (the class file format has changed). Most likely, it will require an update of the plugin, but in some cases it has helped to specify the version of asm directly in the plugin. Inside the 'plugin' element for 'maven-ipojo-plugi' in pom.xml, you can specify 'dependencies'->'dependency' . The dependency has groupId:org.ow2.asm, artifactId:asm, version:7.0
    – gjoranv
    Nov 12 at 19:24










  • Thanks for doing that! Specifying so changed the error to: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed: This feature requires ASM7 which is odd, since I'm trying to require asm 7. Any ideas about that one?
    – AHalbert
    Nov 12 at 20:14






  • 1




    It means that the plugin must be updated. I've seen the same issue for maven-shade-plugin and maven-plugin-plugin. Sorry, but if the plugin is not maintained, you'll have to think of an alternative to the ipojo-plugin in order to migrate to Java 11.
    – gjoranv
    Nov 12 at 22:45












  • That's too bad. That's what I was afraid of. Thanks for taking a look!
    – AHalbert
    Nov 13 at 3:03










  • @gjoranv Could you post your reply as an answer? I will accept it to protect this answer for future googlers.
    – AHalbert
    Nov 14 at 17:18















up vote
2
down vote

favorite












I have a project that is built around OSGi and iPOJO and I'm trying to determine if it will still work with JDK 11. It's currently using JDK 8. It's not looking too hopeful since the latest version of iPOJO (1.12.1) was released in 2014. After updating the target and maven compiler version, I'm running into the following:



[ERROR] Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.annotation.model.parser.AnnotationParser.read(AnnotationParser.java:32)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.MetaAnnotationBindingRegistry.createBindings(MetaAnnotationBindingRegistry.java:94)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:45)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.list(Selection.java:129)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.get(Selection.java:98)
at org.apache.felix.ipojo.manipulator.metadata.annotation.MethodMetadataCollector.visitAnnotation(MethodMetadataCollector.java:69)
at org.objectweb.asm.ClassReader.b(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.computeAnnotations(AnnotationMetadataProvider.java:111)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.access$200(AnnotationMetadataProvider.java:44)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider$1.visit(AnnotationMetadataProvider.java:90)
at org.apache.felix.ipojo.manipulator.store.JarFileResourceStore.accept(JarFileResourceStore.java:161)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.getMetadatas(AnnotationMetadataProvider.java:75)
at org.apache.felix.ipojo.manipulator.metadata.CompositeMetadataProvider.getMetadatas(CompositeMetadataProvider.java:53)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:360)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:243)
at org.apache.felix.ipojo.plugin.ManipulatorMojo.execute(ManipulatorMojo.java:265)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 21 more


From a cursory glance, it looks like the asm dependency of the maven-ipojo-plugin is having trouble with JDK 11, which would make sense because iPOJO has a transitive dependency on asm 5.0.4, and JDK 11 support was not added until asm 7.0. I tried to exclude the transitive dependency and added asm 7.0 as a dependency, but I still get the same error.



Thanks for looking, I'd appreciate any other ideas to try or insights.










share|improve this question


















  • 1




    The plugin must use the asm library for JDK 11 (the class file format has changed). Most likely, it will require an update of the plugin, but in some cases it has helped to specify the version of asm directly in the plugin. Inside the 'plugin' element for 'maven-ipojo-plugi' in pom.xml, you can specify 'dependencies'->'dependency' . The dependency has groupId:org.ow2.asm, artifactId:asm, version:7.0
    – gjoranv
    Nov 12 at 19:24










  • Thanks for doing that! Specifying so changed the error to: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed: This feature requires ASM7 which is odd, since I'm trying to require asm 7. Any ideas about that one?
    – AHalbert
    Nov 12 at 20:14






  • 1




    It means that the plugin must be updated. I've seen the same issue for maven-shade-plugin and maven-plugin-plugin. Sorry, but if the plugin is not maintained, you'll have to think of an alternative to the ipojo-plugin in order to migrate to Java 11.
    – gjoranv
    Nov 12 at 22:45












  • That's too bad. That's what I was afraid of. Thanks for taking a look!
    – AHalbert
    Nov 13 at 3:03










  • @gjoranv Could you post your reply as an answer? I will accept it to protect this answer for future googlers.
    – AHalbert
    Nov 14 at 17:18













up vote
2
down vote

favorite









up vote
2
down vote

favorite











I have a project that is built around OSGi and iPOJO and I'm trying to determine if it will still work with JDK 11. It's currently using JDK 8. It's not looking too hopeful since the latest version of iPOJO (1.12.1) was released in 2014. After updating the target and maven compiler version, I'm running into the following:



[ERROR] Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.annotation.model.parser.AnnotationParser.read(AnnotationParser.java:32)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.MetaAnnotationBindingRegistry.createBindings(MetaAnnotationBindingRegistry.java:94)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:45)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.list(Selection.java:129)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.get(Selection.java:98)
at org.apache.felix.ipojo.manipulator.metadata.annotation.MethodMetadataCollector.visitAnnotation(MethodMetadataCollector.java:69)
at org.objectweb.asm.ClassReader.b(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.computeAnnotations(AnnotationMetadataProvider.java:111)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.access$200(AnnotationMetadataProvider.java:44)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider$1.visit(AnnotationMetadataProvider.java:90)
at org.apache.felix.ipojo.manipulator.store.JarFileResourceStore.accept(JarFileResourceStore.java:161)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.getMetadatas(AnnotationMetadataProvider.java:75)
at org.apache.felix.ipojo.manipulator.metadata.CompositeMetadataProvider.getMetadatas(CompositeMetadataProvider.java:53)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:360)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:243)
at org.apache.felix.ipojo.plugin.ManipulatorMojo.execute(ManipulatorMojo.java:265)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 21 more


From a cursory glance, it looks like the asm dependency of the maven-ipojo-plugin is having trouble with JDK 11, which would make sense because iPOJO has a transitive dependency on asm 5.0.4, and JDK 11 support was not added until asm 7.0. I tried to exclude the transitive dependency and added asm 7.0 as a dependency, but I still get the same error.



Thanks for looking, I'd appreciate any other ideas to try or insights.










share|improve this question













I have a project that is built around OSGi and iPOJO and I'm trying to determine if it will still work with JDK 11. It's currently using JDK 8. It's not looking too hopeful since the latest version of iPOJO (1.12.1) was released in 2014. After updating the target and maven compiler version, I'm running into the following:



[ERROR] Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle (default) on project redacted: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.annotation.model.parser.AnnotationParser.read(AnnotationParser.java:32)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.MetaAnnotationBindingRegistry.createBindings(MetaAnnotationBindingRegistry.java:94)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:45)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.CompletableBindingRegistry.getBindings(CompletableBindingRegistry.java:43)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.list(Selection.java:129)
at org.apache.felix.ipojo.manipulator.metadata.annotation.registry.Selection.get(Selection.java:98)
at org.apache.felix.ipojo.manipulator.metadata.annotation.MethodMetadataCollector.visitAnnotation(MethodMetadataCollector.java:69)
at org.objectweb.asm.ClassReader.b(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.computeAnnotations(AnnotationMetadataProvider.java:111)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.access$200(AnnotationMetadataProvider.java:44)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider$1.visit(AnnotationMetadataProvider.java:90)
at org.apache.felix.ipojo.manipulator.store.JarFileResourceStore.accept(JarFileResourceStore.java:161)
at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.getMetadatas(AnnotationMetadataProvider.java:75)
at org.apache.felix.ipojo.manipulator.metadata.CompositeMetadataProvider.getMetadatas(CompositeMetadataProvider.java:53)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:360)
at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:243)
at org.apache.felix.ipojo.plugin.ManipulatorMojo.execute(ManipulatorMojo.java:265)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 21 more


From a cursory glance, it looks like the asm dependency of the maven-ipojo-plugin is having trouble with JDK 11, which would make sense because iPOJO has a transitive dependency on asm 5.0.4, and JDK 11 support was not added until asm 7.0. I tried to exclude the transitive dependency and added asm 7.0 as a dependency, but I still get the same error.



Thanks for looking, I'd appreciate any other ideas to try or insights.







java maven osgi apache-felix ipojo






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 12 at 17:54









AHalbert

105114




105114








  • 1




    The plugin must use the asm library for JDK 11 (the class file format has changed). Most likely, it will require an update of the plugin, but in some cases it has helped to specify the version of asm directly in the plugin. Inside the 'plugin' element for 'maven-ipojo-plugi' in pom.xml, you can specify 'dependencies'->'dependency' . The dependency has groupId:org.ow2.asm, artifactId:asm, version:7.0
    – gjoranv
    Nov 12 at 19:24










  • Thanks for doing that! Specifying so changed the error to: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed: This feature requires ASM7 which is odd, since I'm trying to require asm 7. Any ideas about that one?
    – AHalbert
    Nov 12 at 20:14






  • 1




    It means that the plugin must be updated. I've seen the same issue for maven-shade-plugin and maven-plugin-plugin. Sorry, but if the plugin is not maintained, you'll have to think of an alternative to the ipojo-plugin in order to migrate to Java 11.
    – gjoranv
    Nov 12 at 22:45












  • That's too bad. That's what I was afraid of. Thanks for taking a look!
    – AHalbert
    Nov 13 at 3:03










  • @gjoranv Could you post your reply as an answer? I will accept it to protect this answer for future googlers.
    – AHalbert
    Nov 14 at 17:18














  • 1




    The plugin must use the asm library for JDK 11 (the class file format has changed). Most likely, it will require an update of the plugin, but in some cases it has helped to specify the version of asm directly in the plugin. Inside the 'plugin' element for 'maven-ipojo-plugi' in pom.xml, you can specify 'dependencies'->'dependency' . The dependency has groupId:org.ow2.asm, artifactId:asm, version:7.0
    – gjoranv
    Nov 12 at 19:24










  • Thanks for doing that! Specifying so changed the error to: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed: This feature requires ASM7 which is odd, since I'm trying to require asm 7. Any ideas about that one?
    – AHalbert
    Nov 12 at 20:14






  • 1




    It means that the plugin must be updated. I've seen the same issue for maven-shade-plugin and maven-plugin-plugin. Sorry, but if the plugin is not maintained, you'll have to think of an alternative to the ipojo-plugin in order to migrate to Java 11.
    – gjoranv
    Nov 12 at 22:45












  • That's too bad. That's what I was afraid of. Thanks for taking a look!
    – AHalbert
    Nov 13 at 3:03










  • @gjoranv Could you post your reply as an answer? I will accept it to protect this answer for future googlers.
    – AHalbert
    Nov 14 at 17:18








1




1




The plugin must use the asm library for JDK 11 (the class file format has changed). Most likely, it will require an update of the plugin, but in some cases it has helped to specify the version of asm directly in the plugin. Inside the 'plugin' element for 'maven-ipojo-plugi' in pom.xml, you can specify 'dependencies'->'dependency' . The dependency has groupId:org.ow2.asm, artifactId:asm, version:7.0
– gjoranv
Nov 12 at 19:24




The plugin must use the asm library for JDK 11 (the class file format has changed). Most likely, it will require an update of the plugin, but in some cases it has helped to specify the version of asm directly in the plugin. Inside the 'plugin' element for 'maven-ipojo-plugi' in pom.xml, you can specify 'dependencies'->'dependency' . The dependency has groupId:org.ow2.asm, artifactId:asm, version:7.0
– gjoranv
Nov 12 at 19:24












Thanks for doing that! Specifying so changed the error to: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed: This feature requires ASM7 which is odd, since I'm trying to require asm 7. Any ideas about that one?
– AHalbert
Nov 12 at 20:14




Thanks for doing that! Specifying so changed the error to: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.12.1:ipojo-bundle failed: This feature requires ASM7 which is odd, since I'm trying to require asm 7. Any ideas about that one?
– AHalbert
Nov 12 at 20:14




1




1




It means that the plugin must be updated. I've seen the same issue for maven-shade-plugin and maven-plugin-plugin. Sorry, but if the plugin is not maintained, you'll have to think of an alternative to the ipojo-plugin in order to migrate to Java 11.
– gjoranv
Nov 12 at 22:45






It means that the plugin must be updated. I've seen the same issue for maven-shade-plugin and maven-plugin-plugin. Sorry, but if the plugin is not maintained, you'll have to think of an alternative to the ipojo-plugin in order to migrate to Java 11.
– gjoranv
Nov 12 at 22:45














That's too bad. That's what I was afraid of. Thanks for taking a look!
– AHalbert
Nov 13 at 3:03




That's too bad. That's what I was afraid of. Thanks for taking a look!
– AHalbert
Nov 13 at 3:03












@gjoranv Could you post your reply as an answer? I will accept it to protect this answer for future googlers.
– AHalbert
Nov 14 at 17:18




@gjoranv Could you post your reply as an answer? I will accept it to protect this answer for future googlers.
– AHalbert
Nov 14 at 17:18












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










An IllegalArgumentException from ASM during a maven build indicates that a plugin is using a version of the ASM library that is too old for the current Java bytecode. Java 11 bytecode requires ASM 7 (as you mention), which was only released in a stable version a few weeks ago.



When migrating from JDK 9 to 10, it was possible to work around this by explicitly declaring ASM 6.2 as a dependency to e.g. maven-shade-plugin:



     <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<!-- TODO: Remove for shade-plugin 3.1.2 - https://issues.apache.org/jira/browse/MSHADE-289 -->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>6.2</version>
</dependency>
</dependencies>
</plugin>


This trick has not worked for JDK 11, which has required updates in the plugins themselves, e.g. maven-shade-plugin and maven-plugin-plugin. As shown by your efforts, the same goes for maven-ipojo-plugin. If the plugin is not maintained, you should probably think of an alternative to the ipojo-plugin in order to migrate to Java 11.



You could try to set the target version to 1.8 for the maven-compiler-plugin, which should have the effect that the class files will be compatible with the ipojo-plugin. But then you probably have to set the source version to 1.8 as well, and won't be able to use any Java 9+ language features.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267586%2fusing-osgi-and-apache-felix-ipojo-with-jdk-11%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    An IllegalArgumentException from ASM during a maven build indicates that a plugin is using a version of the ASM library that is too old for the current Java bytecode. Java 11 bytecode requires ASM 7 (as you mention), which was only released in a stable version a few weeks ago.



    When migrating from JDK 9 to 10, it was possible to work around this by explicitly declaring ASM 6.2 as a dependency to e.g. maven-shade-plugin:



         <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.1.1</version>
    <dependencies>
    <!-- TODO: Remove for shade-plugin 3.1.2 - https://issues.apache.org/jira/browse/MSHADE-289 -->
    <dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm</artifactId>
    <version>6.2</version>
    </dependency>
    </dependencies>
    </plugin>


    This trick has not worked for JDK 11, which has required updates in the plugins themselves, e.g. maven-shade-plugin and maven-plugin-plugin. As shown by your efforts, the same goes for maven-ipojo-plugin. If the plugin is not maintained, you should probably think of an alternative to the ipojo-plugin in order to migrate to Java 11.



    You could try to set the target version to 1.8 for the maven-compiler-plugin, which should have the effect that the class files will be compatible with the ipojo-plugin. But then you probably have to set the source version to 1.8 as well, and won't be able to use any Java 9+ language features.






    share|improve this answer

























      up vote
      1
      down vote



      accepted










      An IllegalArgumentException from ASM during a maven build indicates that a plugin is using a version of the ASM library that is too old for the current Java bytecode. Java 11 bytecode requires ASM 7 (as you mention), which was only released in a stable version a few weeks ago.



      When migrating from JDK 9 to 10, it was possible to work around this by explicitly declaring ASM 6.2 as a dependency to e.g. maven-shade-plugin:



           <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.1.1</version>
      <dependencies>
      <!-- TODO: Remove for shade-plugin 3.1.2 - https://issues.apache.org/jira/browse/MSHADE-289 -->
      <dependency>
      <groupId>org.ow2.asm</groupId>
      <artifactId>asm</artifactId>
      <version>6.2</version>
      </dependency>
      </dependencies>
      </plugin>


      This trick has not worked for JDK 11, which has required updates in the plugins themselves, e.g. maven-shade-plugin and maven-plugin-plugin. As shown by your efforts, the same goes for maven-ipojo-plugin. If the plugin is not maintained, you should probably think of an alternative to the ipojo-plugin in order to migrate to Java 11.



      You could try to set the target version to 1.8 for the maven-compiler-plugin, which should have the effect that the class files will be compatible with the ipojo-plugin. But then you probably have to set the source version to 1.8 as well, and won't be able to use any Java 9+ language features.






      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        An IllegalArgumentException from ASM during a maven build indicates that a plugin is using a version of the ASM library that is too old for the current Java bytecode. Java 11 bytecode requires ASM 7 (as you mention), which was only released in a stable version a few weeks ago.



        When migrating from JDK 9 to 10, it was possible to work around this by explicitly declaring ASM 6.2 as a dependency to e.g. maven-shade-plugin:



             <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.1</version>
        <dependencies>
        <!-- TODO: Remove for shade-plugin 3.1.2 - https://issues.apache.org/jira/browse/MSHADE-289 -->
        <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>6.2</version>
        </dependency>
        </dependencies>
        </plugin>


        This trick has not worked for JDK 11, which has required updates in the plugins themselves, e.g. maven-shade-plugin and maven-plugin-plugin. As shown by your efforts, the same goes for maven-ipojo-plugin. If the plugin is not maintained, you should probably think of an alternative to the ipojo-plugin in order to migrate to Java 11.



        You could try to set the target version to 1.8 for the maven-compiler-plugin, which should have the effect that the class files will be compatible with the ipojo-plugin. But then you probably have to set the source version to 1.8 as well, and won't be able to use any Java 9+ language features.






        share|improve this answer












        An IllegalArgumentException from ASM during a maven build indicates that a plugin is using a version of the ASM library that is too old for the current Java bytecode. Java 11 bytecode requires ASM 7 (as you mention), which was only released in a stable version a few weeks ago.



        When migrating from JDK 9 to 10, it was possible to work around this by explicitly declaring ASM 6.2 as a dependency to e.g. maven-shade-plugin:



             <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.1</version>
        <dependencies>
        <!-- TODO: Remove for shade-plugin 3.1.2 - https://issues.apache.org/jira/browse/MSHADE-289 -->
        <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>6.2</version>
        </dependency>
        </dependencies>
        </plugin>


        This trick has not worked for JDK 11, which has required updates in the plugins themselves, e.g. maven-shade-plugin and maven-plugin-plugin. As shown by your efforts, the same goes for maven-ipojo-plugin. If the plugin is not maintained, you should probably think of an alternative to the ipojo-plugin in order to migrate to Java 11.



        You could try to set the target version to 1.8 for the maven-compiler-plugin, which should have the effect that the class files will be compatible with the ipojo-plugin. But then you probably have to set the source version to 1.8 as well, and won't be able to use any Java 9+ language features.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 14 at 20:12









        gjoranv

        1,3191518




        1,3191518






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267586%2fusing-osgi-and-apache-felix-ipojo-with-jdk-11%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to send String Array data to Server using php in android

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Is anime1.com a legal site for watching anime?