Dmitry,

This sounds very interesting, thank you for sharing!  Do you think the
'CTL' type access to Controller Services would benefit the other
ExecuteScript-supported languages as well? If so, I would be very
interested in seeing your work on the processor, perhaps we could
include some of these improvements "across the board" for all/many of
the supported languages.

Regards,
Matt

On Sun, Mar 12, 2017 at 5:43 PM, Dmitry Lukyanov <[email protected]> wrote:
> Hello Devs,
>
> I'd like to contribute better groovy processor for nifi.
> We are going to use it in production..
> Questions:
> - Do you think Is it interesting?
> - If yes, where i should start? From master or specific branch?
>
> The main features:
> - it's absolutely compatible with existing Execute Script / Groovy
> - if property starts with `CTL.` - it's possible to connect to any controller 
> service
>   by this it's possible to connect several databases, jms, cache, ...  in one 
> processor and mix data
> - if connection pool connected to script then connection taken from pool and 
> provided to script as groovy.sql.Sql
>   http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html
>   all sql connections are committed on script success and rolled back on 
> exception
> - Script now is more groovy:
>   def ff = session.get()
>   if( !ff ) return
>   ff.myAttr = 'The New Attr Value'
>   def row = CTL.mydb.firstRow("select sysdate as DAT from dual")
>   ff.write('UTF-8') { writer-> writer << groovy.json.JsonOutput.toJson(row) }
>   REL_SUCCESS << ff
> - Exception policy: `rollback` or `transfer to failure`
>
>
> --
> Regards,
> Dmitry

Reply via email to