Monday, 9 September 2013

Mule 3.3.1. Custom component to read messages from queue

Mule 3.3.1. Custom component to read messages from queue

I am trying to write a Component that reads all available messages from
queue, which I intend to be polled using a Quartz scheduler.
Here is my code.
@Override
public Object onCall(MuleEventContext muleEventContext) throws Exception {
MuleMessage[] messages = null;
MuleMessage result = muleEventContext.getMessage();
do {
if (result == null) {
break;
}
if (result instanceof MuleMessageCollection) {
MuleMessageCollection resultsCollection =
(MuleMessageCollection) result;
System.out.println("Number of messages: " +
resultsCollection.size());
messages = resultsCollection.getMessagesAsArray();
} else {
messages = new MuleMessage[1];
messages[0] = result;
}
result = muleEventContext.getMessage();
} while (result !=null);
return messages;
}
Unfortunately, it loops indefinitely on the first message. Thoughts?

No comments:

Post a Comment