我正在尝试在 Apache NiFi 中创建一个自定义处理器,它可以将属性/字符串添加到流文件内容中的 JSON 对象。目前,当我只使用字符串时它可以工作,但是当我使用 NiFi 的表达式语言时它不起作用,尽管我的代码支持它。
表达式语言是 100% 正确的,因为它在另一个处理器中工作,我还尝试了不同的属性以确保它不是属性。
物业:
public static final PropertyDescriptor ADD_ATTRIBUTE = new PropertyDescriptor
.Builder().name("Add Attribute")
.description("Example Property")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.expressionLanguageSupported(true)
.build();
稍后在我的代码中,当我想获取值并放入我使用的 JSON 对象时:
jsonObject.put("hostname", context.getProperty(ADD_ATTRIBUTE).evaluateAttributeExpressions().getValue());
我还进行了单元测试,当我为 testrunner.setProperty 分配一个文本值时它可以工作。但是我不知道如何将属性分配给 testrunner 或如何在测试中使用表达式语言。
提前感谢您的任何建议或解决方案!