[ 
https://issues.apache.org/jira/browse/NIFI-9311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Burgess reassigned NIFI-9311:
----------------------------------

    Assignee: Mark Payne

> 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
>            Assignee: Mark Payne
>            Priority: Major
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> 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 
> (not a dynamic property).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to