Alex, This same thing happened to me a day or two ago. I'm not sure if it's a bug or works as intended, but the problem stems from trying to generate doc for an interface that extends ControllerService rather than a class implementation of ControllerService. I believe it has something to do with being able to instantiate a class that implements ControllerService in order to generate documentation. Regardless, since your controller service implementation extends AbstractControllerService, it transitively implements ControllerService so you can remove the "extends ControllerService" from your interface definition and it should work fine.
Regards, Matt On Wed, Dec 11, 2019 at 5:31 PM Alexander Denissov <adenis...@pivotal.io> wrote: > > I am trying to develop a custom NAR bundle with a custom processor and a > custom service. The project setup is similar to > https://github.com/pcgrenier/nifi-examples/tree/sample-processor > so let's consider that project for debugging. Will appreciate any pointers > to how that sample project needs to be changed to perform successful > artifact resolution during NAR document generation. > > The project builds, however the documentation is not created for the NAR > files. When I change the version of NAR maven plugin to 1.3.1 and force doc > gen I get an error: > > <plugin> > <groupId>org.apache.nifi</groupId> > <artifactId>nifi-nar-maven-plugin</artifactId> > <version>1.3.1</version> > <extensions>true</extensions> > <configuration> > <enforceDocGeneration>true</enforceDocGeneration> > </configuration> > </plugin> > > [INFO] --- nifi-nar-maven-plugin:1.3.1:nar (default-nar) @ > sample-controller-service-api-nar --- > [INFO] Copying sample-controller-service-api-1.0-SNAPSHOT.jar to > /Users/adenissov/workspace/nifi-examples/sample-controller-service-api-nar/target/classes/META-INF/bundled-dependencies/sample-controller-service-api-1.0-SNAPSHOT.jar > [INFO] Generating documentation for NiFi extensions in the NAR... > [INFO] Found a dependency on version 1.0-SNAPSHOT of NiFi API > [ERROR] Could not generate extensions' documentation > org.apache.maven.plugin.MojoExecutionException: Failed to create Extension > Documentation > at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:528) > at org.apache.nifi.NarMojo.execute (NarMojo.java:499) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:134) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:208) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:154) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:146) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:117) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:81) > 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:309) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) > 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: org.apache.maven.plugin.MojoExecutionException: Could not > resolve local dependency org.apache.nifi:nifi-api:jar:1.0-SNAPSHOT > at > org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.getProvidedArtifact > (ExtensionClassLoaderFactory.java:212) > at > org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createProvidedEntitiesClassLoader > (ExtensionClassLoaderFactory.java:245) > at > org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createClassLoader > (ExtensionClassLoaderFactory.java:103) > at > org.apache.nifi.extension.definition.extraction.ExtensionClassLoaderFactory.createExtensionClassLoader > (ExtensionClassLoaderFactory.java:88) > at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:525) > at org.apache.nifi.NarMojo.execute (NarMojo.java:499) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:134) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:208) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:154) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:146) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:117) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:81) > 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:309) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) > 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) > [INFO] > ------------------------------------------------------------------------ > [INFO] Reactor Summary: > [INFO] > [INFO] examples ........................................... SUCCESS [ > 0.145 s] > [INFO] sample-controller-service-api ...................... SUCCESS [ > 0.840 s] > [INFO] sample-controller-service-api-nar .................. FAILURE [ > 0.303 s] > [INFO] sample-controller-service .......................... SKIPPED > [INFO] sample-processor ................................... SKIPPED > [INFO] sample-reporting-task .............................. SKIPPED > [INFO] sample-reporting-task-nar .......................... SKIPPED > [INFO] sample-bundle-nar .................................. SKIPPED > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD FAILURE > > Adding org.apache.nifi:nifi-api explicitly as "provided" dependency to the > sample-controller-service-api-nar/pom.xml as well as slf4j-api one seems to > satisfy the NAR plugin for that package: > <dependency> > <groupId>org.apache.nifi</groupId> > <artifactId>nifi-api</artifactId> > </dependency> > <dependency> > <groupId>org.slf4j</groupId> > <artifactId>slf4j-api</artifactId> > <scope>provided</scope> > </dependency> > > However the build then fails with NPE when generating bundle NAR: > > [INFO] Generating documentation for NiFi extensions in the NAR... > [INFO] Found a dependency on version 1.10.0 of NiFi API > [ERROR] Could not generate extensions' documentation > org.apache.maven.plugin.MojoExecutionException: Failed to create Extension > Documentation > at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:596) > at org.apache.nifi.NarMojo.execute (NarMojo.java:499) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:134) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:208) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:154) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:146) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:117) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:81) > 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:309) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) > 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.NullPointerException > at org.apache.nifi.NarMojo.getRequiredServiceDefinitions > (NarMojo.java:708) > at org.apache.nifi.NarMojo.writeDocumentation (NarMojo.java:634) > at org.apache.nifi.NarMojo.writeDocumentation (NarMojo.java:605) > at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:577) > at org.apache.nifi.NarMojo.execute (NarMojo.java:499) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:134) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:208) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:154) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:146) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:117) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:81) > 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:309) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) > 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) > [INFO] > ------------------------------------------------------------------------ > [INFO] Reactor Summary: > [INFO] > [INFO] examples ........................................... SUCCESS [ > 0.181 s] > [INFO] sample-controller-service-api ...................... SUCCESS [ > 0.821 s] > [INFO] sample-controller-service-api-nar .................. SUCCESS [ > 0.466 s] > [INFO] sample-controller-service .......................... SUCCESS [ > 0.350 s] > [INFO] sample-processor ................................... SUCCESS [ > 0.999 s] > [INFO] sample-reporting-task .............................. SUCCESS [ > 0.190 s] > [INFO] sample-reporting-task-nar .......................... SUCCESS [ > 0.617 s] > [INFO] sample-bundle-nar .................................. FAILURE [ > 0.107 s] > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD FAILURE > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 4.669 s > [INFO] Finished at: 2019-12-11T14:27:15-08:00 > [INFO] Final Memory: 30M/393M > [INFO] > ------------------------------------------------------------------------ > [ERROR] Failed to execute goal > org.apache.nifi:nifi-nar-maven-plugin:1.3.1:nar (default-nar) on project > sample-bundle-nar: Failed to create Extension Documentation: > NullPointerException -> [Help 1] > [ERROR] > > -------- > Thanks, > Alex.