In Apache NiFi, can I evaluate expression language

2019-07-11 21:27发布

问题:

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?

回答1:

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();


标签: apache-nifi