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
