I have a python component that users a controller service. I can't figure
out from the java api docs [1] and python api source code [2] how to
retrieve the record reader.
Any suggestions?
from nifiapi.properties import PropertyDescriptor, PythonPropertyValue
from nifiapi.flowfiletransform import FlowFileTransform,
FlowFileTransformResult
class PythonReaderServiceExample(FlowFileTransform):
class Java:
implements = ['org.apache.nifi.python.processor.FlowFileTransform']
class ProcessorDetails:
dependencies = [] # ['debugpy']
version = '0.0.1-SNAPSHOT'
def __init__(self, **kwargs):
self.RECORD_READER = PropertyDescriptor(
name="Record Reader",
description="Controller Service to use for parsing incoming data into
Records.",
required=True,
controller_service_definition=
"org.apache.nifi.serialization.RecordReaderFactory")
self.descriptors = [self.RECORD_READER]
def getPropertyDescriptors(self):
return self.descriptors
def transform(self, context, flowFile):
controllerService = context.getProperty("Record Reader"
).asControllerService()
##########################################################################
# recordReader = controllerService.??? # How to retrieve the RecordReader?
##########################################################################
return FlowFileTransformResult(relationship = "success")
Thanks!
[1]
https://www.javadoc.io/doc/org.apache.nifi/nifi-record-serialization-service-api/latest/org/apache/nifi/serialization/RecordReaderFactory.html
[2]
https://github.com/apache/nifi/blob/rel/nifi-2.0.0-M4/nifi-extension-bundles/nifi-py4j-bundle/nifi-python-extension-api/src/main/python/src/nifiapi/properties.py