Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

HDF support for multiple languages.

avatar
Rising Star

As of HDF 1.0, we can write custom processor for HDF using Java, is there plan to support other programming languages.

1 ACCEPTED SOLUTION

avatar
Master Guru

I see at least two use cases:

  1. I know <non-Java language here> but I want to write a processor for NiFi.
  2. There is no (current) processor or workflow that takes care of my needs, so I’d like to write code to fill in the blanks( basically the body of an onTrigger() call )

Hot-reload is common to both. Adding new languages on-the-fly is not (IMHO). For "Invocable" script engines (like Jython) that allow you to compile an implementor of Processor, would be nice to call into those scripts and treat them like first-class Processors. For other scripts / script engines, it would be cool to treat the script body as the onTrigger() API call -- to be executed when scheduled and when a FlowFile is available.

View solution in original post

4 REPLIES 4

avatar
Master Mentor

avatar

Yes, work is underway to support multiple scripting languages through a standard JVM scripting APIs. Hot-reloading is in scope as well. Currently the jiras are being organized, as multiple approaches and ideas got filed, stay tuned.

avatar
Master Guru

I see at least two use cases:

  1. I know <non-Java language here> but I want to write a processor for NiFi.
  2. There is no (current) processor or workflow that takes care of my needs, so I’d like to write code to fill in the blanks( basically the body of an onTrigger() call )

Hot-reload is common to both. Adding new languages on-the-fly is not (IMHO). For "Invocable" script engines (like Jython) that allow you to compile an implementor of Processor, would be nice to call into those scripts and treat them like first-class Processors. For other scripts / script engines, it would be cool to treat the script body as the onTrigger() API call -- to be executed when scheduled and when a FlowFile is available.

avatar
Master Guru

Also of note, some community members have been able to write processors in Scala as well:

https://github.com/jahhulbert-ccri/geomesa-nifi/blob/master/nifi-geomesa-nifi-processors/src/main/sc...