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