I had looked around a while ago for IRC clients (was thinking of contributing IRC processors as my first contribution to NiFi, but got sidetracked), I agree that Kitteh seems like the best choice (others like Pircbotx, JerkLib, and Martyr don't have friendly licenses). They all seem to have one thing in common: being event-driven. This is not a bad thing and as you pointed out, you could implement it the way some other processors do (by writing the flow files from the event handler, or using a LinkedBlockingQueue or something to pass messages between the event handler and the onTrigger method).
I too am working on a processor that requires an event handler, either approach seems manageable, just a little different than "normal" NiFi processors. I say go for it! Regards, Matt On Thu, Feb 16, 2017 at 9:22 AM, Andre <[email protected]> wrote: > dev, > > I am starting to work on NIFI-329 and plan to soon introduce processors > capable of interacting with IRC servers. > > At this stage I am looking to implement only PublishIRC, however, given the > processor will use a controller service this may be later on expanded to > handle IRC message consumption (i.e. ConsumeIRC) and perhaps bot type > functionality by mimicking the ethos of HandleHttpRequest and > HandleHttpResponse processors. > > Since this is the first time I am trying to write a controller service may > I ask you some feedback about my first reading? > > Currently the "best" ASL2 IRC library seems to be KICL (Kitteh IRC Client > library[1]) which happens to support IRCv3, SSL and a bunch of other stuff. > > KICL Client class seems to fit very well within a controller service > onEnabled, but I have the impression its event driven API is not a natural > fit to NiFi processors and will require some work similar to the one > required to get ListenSMTP working properly. > > Is this reading correct? In you experience, is it manageable or should I > look for another library? > > > Any feedback will be appreciated. > > > [1] - > http://kicl.kitteh.org/en/latest/#kitteh-irc-client-library-documentation
