I've created and fixed FELIX-3917 for the NPE, however if this problem is related to the class being final (as suspected by Felix) please create an issue for this.
Thanks Carsten 2013/2/24 Felix Meschberger <fmesc...@adobe.com>: > Hi, > > (1) The NPE is certainly not good. The plugin should just report the missing > methods if they are not generated. May I ask you to report an issue ? Thanks. > > (2) The first case might be caused by the plugin not generating the methods > because of the class being final. Could you try not declaring the class final > ? If that works, I would assume the plugin should properly complain and fail > the build due to missing methods. > > Regards > Felix > > Am 24.02.2013 um 15:23 schrieb László Hordós: > >> Hi, >> >> I just updated to maven-scr-plugin:1.10.0 and >> org.apache.felix.scr.annotations:1.8.0 and I have this component: >> >> @Component(name = "org.example.component", immediate = true, policy = >> ConfigurationPolicy.IGNORE) >> public final class ContextRegistrator { >> >> @Reference >> HttpService httpService; >> >> } >> >> I didn't have the bind/unbind method but the plugin generated the names and >> put them into the Descriptor. The build was success but then it didn't work >> because SCR didn't find the non existing methods so I added the >> generateAccessors property to the plugin: >> >> <plugin> >> <groupId>org.apache.felix</groupId> >> <artifactId>maven-scr-plugin</artifactId> >> <version>1.10.0</version> >> <configuration> >> <generateAccessors>false</generateAccessors> >> </configuration> >> </plugin> >> >> When I build the project now it fails with this exception. >> >> Execution generate-scr-scrdescriptor of goal >> org.apache.felix:maven-scr-plugin:1.10.0:scr failed. NullPointerException -> >> [Help 1] >> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute >> goal org.apache.felix:maven-scr-plugin:1.10.0:scr >> (generate-scr-scrdescriptor) on project openidm-httpcontext: Execution >> generate-scr-scrdescriptor of goal >> org.apache.felix:maven-scr-plugin:1.10.0:scr failed. >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) >> 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:84) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) >> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) >> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) >> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) >> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) >> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) >> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution >> generate-scr-scrdescriptor of goal >> org.apache.felix:maven-scr-plugin:1.10.0:scr failed. >> at >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) >> ... 19 more >> Caused by: java.lang.NullPointerException >> at >> org.apache.felix.scrplugin.helper.Validator.validateMethod(Validator.java:523) >> at >> org.apache.felix.scrplugin.helper.Validator.validateReference(Validator.java:465) >> at >> org.apache.felix.scrplugin.helper.Validator.validate(Validator.java:189) >> at >> org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:214) >> at >> org.apache.felix.scrplugin.mojo.SCRDescriptorMojo.execute(SCRDescriptorMojo.java:248) >> at >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) >> ... 20 more >> >> >> If I add these methods then it works. >> >> private void bindWebContainer(WebContainer service) { >> httpService = service; >> } >> >> private void unbindWebContainer(WebContainer service) { >> httpService = null; >> } >> >> If I make a typo mistake in the name of one of these two methods I get NPE >> again. If I remove the generateAccessors property and the new methods the >> plugin "works" again and generate broken Descriptor. It checks when It >> shouldn't and It does not check when it should. >> >> I see there is an integration test >> src/it/basic-build-it/src/main/java/org/apache/felix/scr/SimpleDSComponent.java >> but it does not validates the generated Descriptor. >> >> Regards, >> Laszlo >> > > > -- > Felix Meschberger | Principal Scientist | Adobe > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@felix.apache.org > For additional commands, e-mail: users-h...@felix.apache.org > -- Carsten Ziegeler cziege...@apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For additional commands, e-mail: users-h...@felix.apache.org