nifi如何从自定义处理器读取控制器服务值

时间:2019-08-29 22:19:37

标签: apache-nifi

如何从自定义处理器读取控制器服务值

如何从自定义处理器获取DBCPConnectionPool连接信息(URL字符串,凭据,这些信息已经在DBCPConnectionPool控制器服务中进行了配置)。

这是我到目前为止所拥有的:

1)在我的自定义处理器的nar pom中,我具有以下依赖性:

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-standard-services-api-nar</artifactId>
    <version>1.9.2</version>
    <type>nar</type>
</dependency>

2)在自定义处理器主POM中,我具有以下依赖性:

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-dbcp-service</artifactId>
    <version>1.9.2</version>
</dependency>
<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-api</artifactId>
    <version>1.9.2</version>
</dependency>
<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-utils</artifactId>
    <version>1.9.2</version>
</dependency>
<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-dbcp-service-api</artifactId>
    <version>1.9.2</version>
</dependency>

3)在自定义处理器的OnTrigger方法中,我具有以下内容:

public static final PropertyDescriptor DBCPConnectionPoolLookup_SERVICE = new PropertyDescriptor.Builder()
        .name("DBCPConnectionPoolLookup Service")
        .description("The Controller Service to use in order to LOOKUP DBCP Connection Object by connection name")
        .required(true)
        .dynamic(true)
        .identifiesControllerService(DBCPService.class)
        .build();

最终地图属性=新的HashMap <>(); attribute.put(DBCPConnectionPoolLookup.DATABASE_NAME_ATTRIBUTE,“ some_value”);

最终DBCPService dbcpConnectionPoolLookup = context.getProperty(DBCPConnectionPoolLookup_SERVICE).asControllerService(DBCPService.class); 连接连接= dbcpConnectionPoolLookup.getConnection(attributes);

以上内容并未提供DBCPConnectionPool控制器服务中以下字段的值:

i。数据库连接URL

ii。数据库用户名

iii。密码

任何提示将不胜感激!

0 个答案:

没有答案