You can get the current property values of a controller service from the 
processor by using the ProcessContext object. For example, in GetHTTP [1], in 
the @OnScheduled method, you could do:

context.getControllerServiceLookup().getControllerService("my-controller-service-id”);

context.getProperty("controller-service-property-name");
context.getProperty(SomeControllerService.CONSTANT_PROPERTY_DESCRIPTOR);

I forget if context.getProperty() will give the controller service properties 
as well as the processor properties. If it doesn’t, you can cast the retrieved 
ControllerService into AbstractControllerService or the concrete class and 
access available properties directly from the encapsulated ConfigurationContext.

[1] 
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java#L295

Andy LoPresto
alopre...@apache.org
alopresto.apa...@gmail.com
PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69

> On Aug 9, 2017, at 6:57 PM, 尹文才 <batman...@gmail.com> wrote:
> 
> Thanks Koji, I checked the link you provided and I think getting a
> DataSource is no different than getting the DBCP service(they could just
> get the connection). Actually I was trying to get the configured driver
> class to check the database type.
> 
> Regards,
> Ben
> 
> 2017-08-10 9:29 GMT+08:00 Koji Kawamura <ijokaruma...@gmail.com>:
> 
>> Hi Ben,
>> 
>> I'm not aware of ways to obtain configurations of a controller from a
>> processor. Those should be encapsulated inside a controller service.
>> If you'd like to create DataSource instance instead of just obtaining
>> a connection, this discussion might be helpful:
>> https://github.com/apache/nifi/pull/1417
>> 
>> Although I would not recommend, if you really need to obtain all
>> configurations, you can do so by calling NiFi REST API from your
>> processor.
>> 
>> Thanks,
>> Koji
>> 
>> On Thu, Aug 10, 2017 at 10:09 AM, 尹文才 <batman...@gmail.com> wrote:
>>> Hi guys, I have a customized processor with a DBCP controller service as
>> a
>>> property. I could get the DBCP controller service in my code, but does
>>> anyone know how to obtain all the configurations of the DBCP controller
>>> service in java code(e.g. Database Connection URL, Database Driver
>>> Location, etc) Thanks.
>>> 
>>> Regards,
>>> Ben
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to