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