You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Matt Burgess (Jira)" <ji...@apache.org> on 2021/10/19 15:49:00 UTC
[jira] [Created] (NIFI-9311) Cannot remove scripted properties in
InvokeScriptedProcessor
Matt Burgess created NIFI-9311:
----------------------------------
Summary: Cannot remove scripted properties in InvokeScriptedProcessor
Key: NIFI-9311
URL: https://issues.apache.org/jira/browse/NIFI-9311
Project: Apache NiFi
Issue Type: Bug
Components: Extensions
Reporter: Matt Burgess
If scripted properties are removed from a script in InvokeScriptedProcessor, they do not become unsupported properties when the script is reloaded. For example, load the following script:
{{class GroovyProcessor implements Processor {
def ComponentLog log
def REL_SUCCESS = new Relationship.Builder().name("success")
.description("FlowFiles that were successfully processed").build()
@Override
Set<Relationship> getRelationships() {
return [REL_SUCCESS] as Set
}
def PASS = new PropertyDescriptor.Builder().name('Password')
.required(true).sensitive(true).addValidator(Validator.VALID).build()
def NS_USER = new PropertyDescriptor.Builder().name('NS Username')
.required(true).sensitive(false).addValidator(Validator.VALID).build()
@Override
List<PropertyDescriptor> getPropertyDescriptors() {
return [NS_USER, PASS] as List
}
@Override
PropertyDescriptor getPropertyDescriptor(String name) {
switch(name){
case 'Password': return PASS
case 'NS Username': return NS_USER
default: return null
}
}
@Override
void onTrigger(ProcessContext context, ProcessSessionFactory sessionFactory) throws ProcessException {
try {
def session = sessionFactory.createSession()
def flowFile = session.get()
if(!flowFile) return
def pass = context.getProperty(PASS).getValue()
// do something with pass
session.transfer(flowFile,REL_SUCCESS)
session.commit()
}
catch (e) {
throw new ProcessException(e)
}
}
@Override
void initialize(ProcessorInitializationContext context) {
log = context.getLogger()
}
@Override
Collection<ValidationResult> validate(ValidationContext context) { return null }
@Override
void onPropertyModified(PropertyDescriptor descriptor, String oldValue, String newValue) { }
@Override
String getIdentifier() { return null }
}
processor = new GroovyProcessor()}}
Then go back into the configuration dialog and remove one of the properties, then click Apply. The removed property should now be an unsupported property or at the least a dynamic property (not required).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)