A lot of people are using JMS still, be it ActiveMQ, TIBCO, Weblogic, WebsphereMQ etc. In order to plug into their pub/sub event system and start sending data to an output via Logstash, it would be great to have a generic JMS input adapter that someone could just plugin.
I was just to file the same request here to describe exactly the same need.
I have been trying to integrate Logstash with Oracle Advanced Queuing (now called Oracle Streams) for 2 weeks.
I have already identified the more reliable ruby gem to do that : https://github.com/reidmorrison/jruby-jms
I have made some standalone test, and it seems quite simple to integrate in an input plugin.
The basic core code is there : https://github.com/reidmorrison/jruby-jms/blob/master/examples/producer-consumer/consumer_async.rb
The gem implements ByteMessage, TextMessage and MapMessage (eg Key/Value pairs) JMS classes.
I think that TextMessage can easyly be decoded with a codec, whereas MapMessage KV will have to be assigned to the logstah Event hashmap.
One specificity is that we have to configure the directory where to find the vendor specific libs (eg the jars from IBM, Oracle...) in a Yaml config file, and the connection options can be a JNDI context.
Does some of the logstash experimented contributors can gave us some guidelines for such a plugin ?
Can you give us some advice on the closest (in term of design pattern) existing input plugin, so that I could take it for example ?
Sorry for my bad english.