admin管理员组

文章数量:1359224

I'm trying to realise Groovy script for InvokeScriptedProcessor processor:

import .apache.nifi.processor.Relationship
import .apache.nifi.processor.Processor
import .apache.nifi.processor.ProcessContext
import .apache.nifi.processor.ProcessSession
import .apache.nifi.processor.exception.ProcessException
import .apache.nifi.processor.io.InputStreamCallback
import .apache.nifiponents.PropertyDescriptor
import .apache.nifi.expression.ExpressionLanguageScope
import .apache.nifi.processor.util.StandardValidators
import .apache.nifi.logging.ComponentLog
import .apache.nifi.processor.ProcessorInitializationContext
import .apache.nifiponents.ValidationContext
import .apache.nifiponents.ValidationResult

class SftpImageProcessor implements Processor {

      private ComponentLog log


      @Override
      void initialize(ProcessorInitializationContext context) { }

      @Override
      void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException {
           def flowFile = session.get()
           if (!flowFile) {
               log.info("No FlowFile to process")
               return
            }

    try {

        log.info("Processing FlowFile ${flowFile.id}")
        

        session.transfer(flowFile, REL_SUCCESS)
         } catch (Exception e) {
            log.error("Failed to process FlowFile ${flowFile.id}", e)
            session.transfer(flowFile, REL_FAILURE)
         }
      }

      @Override
      Set<Relationship> getRelationships() {
         return []
      }

      @Override
      List<PropertyDescriptor> getSupportedPropertyDescriptors() {
          return []
      }

      @Override
      PropertyDescriptor getPropertyDescriptor(String name) {
          return null
      }

      @Override
      void onPropertyModified(PropertyDescriptor descriptor, String oldValue, String newValue) {

     }

     @Override
     Collection<ValidationResult> validate(ValidationContext context) {
         return []
     }

     @Override
     String getIdentifier() {
         return this.class.name
     }
}

processor = new SftpImageProcessor()

And I receive the error for this initialize code:

"Can't have an abstract method in a non-abstract class. The class SftpImageProcessor must be declared abstract or the method java.util.List getPropertyDescriptors must be implemented"

But getSupportedPropertyDescriptors is implemented. What am I doing wrong?

本文标签: groovyApache Nifi InvokeScriptedProcessor Error with overwrite methodStack Overflow