Mike,
So, thank you for directing me close to the neighborhood I needed to look at.
I will share how I was able to resolve the issue. I examined the nifi-mongo-db
nar's pom and it looked extremely similar to our nar's pom. I then noticed the
nifi-mongodb-services-nar and looked there also for answers and noticed how
that was referring to "nifi-mongodb-services". That was the ticket and helped
our custom mongo processors play nice w/ creating MongoClientServices within
the nifi UI at runtime. Below is exactly what I added to our nifi nar's pom
and had things work for us:
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mongodb-services</artifactId>
<version>${nifi.version}</version>
<scope>runtime</scope>
</dependency>
Regards,
--
Jeremy H. Taylor
Software Developer
ACES Incorporated, an EverWatch Company
Email: [email protected]
Email: [email protected]
http://acesinc.net <http://acesinc.net/>
http://everwatchsolutions.com <http://everwatchsolutions.com/>
On 5/15/19, 4:52 PM, "Mike Thomsen" <[email protected]> wrote:
I think the problem stems from the fact that your NAR doesn't have a
dependency on the mongo api nar from our bundle. See nifi-mongodb-nar as an
example from our code base.
Thanks,
Mike
On Wed, May 15, 2019 at 4:49 PM Jeremy Taylor <
[email protected]> wrote:
> 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/>
>