...
To leverage a ControllerService processor projects will need a provided dependency on the given API artifact in order to compile against the API, and the NAR will need a NAR dependency on the given API NAR in order for the API to be available at runtime.
appropriate API artifact would be required (the NAR and implementation would be provided at runtime by NiFi). As an example, to leverage the SSLContextService the following dependency would be added to the pom of the processors jar project:
<dependency><groupId>org <groupId>org.apache.nifi</groupId><artifactId>nifi <artifactId>nifi-ssl-context-service-api</artifactId><version>0.2.0-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Then the following NAR dependency would be added to pom of the processors NAR project:
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>0.2.0-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
A processor can then define the SSLContextService with a property as follows:
...
The nifi-standard-services module contains the shared APIs that can be leveraged. Browsing this module can provide the groupId, artifactId, and version of the various APIs.
Deployment
The NAR produced from building the processor Any bundle can be deployed to NiFi by copying the NAR to the NiFi lib directory and restarting NiFi. If you increment the version of your bundle/ NAR, be sure to remove the older version from the NiFi lib directory to avoid running two versions of the same artifact.