hi,

I have a need for a Chukwa JMS adaptor, so I was planning on writing one and
contributing it. Before open a JIRA and getting started though, I wanted to
run my ideas past the group. Here's what I'm thinking:

- oah.chukwa.datacollection.adaptor.jms
This is the package where the code will live. Creating a new package since
there will be a couple of related classes.

- JMSAdaptor
This is the main class that will connect to a JMS topic, listen for messages
and add chunks to the receiver. It uses a JMSMessageTransformer to transform
the message to a byte array.

- JMSMessageTransformer
An interface that knows how to transform a JMSMessage into a byte array with
the following method:
  public byte[] transform(javax.jms.Message message);

- JMSTextMessageTransformer
This will be the default transformer, which transforms a
javax.jms.TextMessage's payload into a byte array

- JMSMessagePropertyTransformer
This is what I'd personally need so I might add this as well. It takes a
collection of ordered message property names and a delimiter and returns a
byte array made using the corresponding property values.

- Configuration would look something like this:
add JMSAdaptor <brokerURL> -t <topicName> [-s <JMSSelector>] [-x
<transformerName>] [-p <transformerProperties>] <offset>

- New dependancies
Sun's JMS
Sun's J2EE Management
Apache ActiveMQ
Apache Commons Pool

This first pass would only work with a topic but subsequent releases could
work with a queue if the need arises. The selector is to filter on certain
types of messages. TransformerName is to override the default transformer
and transformerProperties is whatever properties it takes.

So that's what I'm thinking. Please let me know if you have comments, about
naming, functionality, structure, configuration, etc.

thanks,
Bill

Reply via email to