groovy - Apache Nifi InvokeScriptedProcessor: Error with overwrite method - Stack Overflow

I'm trying to realise Groovy script for InvokeScriptedProcessor processor:import .apache.nifi.pro

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?

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744081883a4555447.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信