In Apache NiFi, can I evaluate expression language

2019-07-11 21:13发布

For instance, in a custom processor I may wish to evaluate simply the expression in the String "${UUID()}" (just as an example).

I don't want to expose an attribute to the user, I just want to evaluate the expression. Can I do that?

标签: apache-nifi
1条回答
2楼-- · 2019-07-11 21:44

in a custom processor (or script processor)

import org.apache.nifi.components.PropertyValue;
...
String expression = "${UUID()}";
PropertyValue myValue = context.newPropertyValue( expression );

in this case it's enough to call this to evaluate expression because no dependency on other attributes in expression itself:

String result = myValue.evaluateAttributeExpressions().getValue();

but if you use attributes in expression:

Map<String, String> attributes = ...;
String result = myValue.evaluateAttributeExpressions(attributes).getValue();

or if all required attributes in a flowfile:

String result = myValue.evaluateAttributeExpressions(flowFile).getValue();
查看更多
登录 后发表回答