Greetings,
https://github.com/everwatchsolutions/aces-nifi-processors-bundle
Per the link above, there are some custom processors that I help support.  
Among those are two custom mongo processors called PartialUpdateMongo and 
PutMongoWithDuplicateCheck.  I’m going to list a little background below and 
mention some highlights of changes in the pom that had to be made, so folks 
don’t respond with things we might already have.  To cut to the chase, I am 
unable to select or create a new MongoClientService from the NiFi UI for these 
2 custom processors.  The error you get when you try to create a new Client 
service from this processors is:  “No controller service types found that are 
applicable for this property.”  We are not implementing a new controller 
service here at all, so I cannot imagine the need to place anything special in 
src/main/resources/META-INF.  What makes this additionally interesting is I do 
seem to be able to create an SSLContext service if I want to from these custom 
procesors w/ the current state.  Why I can create one thing and not the other 
is strange.  Would there be any thoughts or tips on what I’m missing that I 
might need to adjust in my classes or poms to get rid of this error preventing 
me from creating a mongo client service for each processor?

Background:
We on average upgrade our own system to use a newer NiFi about once a year and 
upgraded our custom processors and NiFi flow near the end of last month to use 
NiFi 1.9.2 from NiFi 1.6.0.  These two processors do static initialization like 
many other processors do, but due to a change in the AbstractMongoProcessor 
class, the “descriptors” member variable became default package level access, 
so I had to write an AbstractMongoBridgeProcessor class to extend 
AbstractMongoProcessor to be able to access that member variable while allowing 
our existing mongo custom processors to continue to do static initialization 
and pick all the necessary property descriptors up from 
AbstractMongoBridgeProcessor before adding more of our own to each custom 
processor during the static initialization phase.  Thus, these custom 
processors don’t directly extend AbstractMongoProcessor like your PutMongo or 
GetMongo processors do.

Special POM Changes that were recently made:

  1.  Within the NAR project’s pom, I had to add the following upon upgrading 
our custom processor modules to support 1.9.2:
<dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-mongodb-client-service-api</artifactId>
            <scope>runtime</scope>
        </dependency>

  1.  In the Processors project’s pom, I changed the following to be “provided” 
in scope:  nifi-mongodb-processors, mongo-java-driver, nifi-api, 
nifi-processor-utils
  2.  In the Processors project’s pom, I changed the following to be runtime in 
scope:  nifi-standard-services-api-nar
  3.  As a bonus, I’ll mention that within the Processors project’s pom, I left 
nifi-ssl-context-service-api at scope provided.
--
Jeremy H. Taylor
Software Developer
ACES Incorporated, an EverWatch Company
Email: [email protected]<mailto:[email protected]>
Email: [email protected]<mailto:[email protected]>
http://acesinc.net<http://acesinc.net/>
http://everwatchsolutions.com<http://everwatchsolutions.com/>

Reply via email to