kaHaleMaKai commented on a change in pull request #3543: NIFI-6388 Add dynamic
relationships to the ExecuteScript processor.
URL: https://github.com/apache/nifi/pull/3543#discussion_r298682586
##########
File path:
nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
##########
@@ -133,13 +167,57 @@
*/
@Override
protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final
String propertyDescriptorName) {
- return new PropertyDescriptor.Builder()
+ final boolean isRelationship = propertyDescriptorName != null &&
propertyDescriptorName.startsWith(DYNAMIC_RELATIONSHIP_PREFIX);
+ if (isRelationship) {
+ if
(!DYNAMIC_RELATIONSHIP_PATTERN.matcher(propertyDescriptorName).matches()) {
+ log.warn("dyn. property for relationship is invalid: '{}'.
accepted patterns: '{}'", new Object[]{propertyDescriptorName,
DYNAMIC_RELATIONSHIP_PATTERN_AS_STRING});
+ return new PropertyDescriptor.Builder()
+ .addValidator(new RelationshipInvalidator())
+ .dynamic(true)
+ .required(false)
+ .name(propertyDescriptorName)
Review comment:
I tried that, but it didn't work out. We need to keep the full property name
(including the `REL_` prefix, previously `rel.`), so that the
`ExecuteScript#onPropertyModified()` method can detect the new property
indicating a relationship. If we prematurely remove the prefix, the respective
method cannot tell if it's just a regular dynamic property, or if the user
wants to add a new dynamic relationship.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services