CAMEL-126 question

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

CAMEL-126 question

Martin Krasser
Hi,

 

has someone had a chance to review the patch of
http://issues.apache.org/activemq/browse/CAMEL-126 ? I'm currently not sure
if this patch fully addresses the description of this issue.

 

What I did in this patch was to change the StreamResequencer to start a
polling thread in the same way as the BatchProcessor does. This polling
thread consumes messages from an endpoint, re-orders messages and sends them
to the next processor. There's no queue any more and no separate thread
reading re-ordered messages from that queue.

 

This change required to remove the Processor interface from the
StreamResequencer. Having a processor interface AND synchronous dispatch of
messages doesn't allow an implementation of a timeout-based resequencing
algorithm (at least, I cannot image how to do that). Therefore, I only see
these two implementation options for the resequencer:

 

1: Push mechanism + async delivery of messages (current
resequencer/processor implementation)

2: Poll mechanism + sync delivery of messages (provided by patch)

 

Using
from("activemq:queue:a").resequencer(header(".")).stream().to(activemq:queue
:b) would result in having two threads "between" queue a and b with option
1. When using option 2 then there would be only a single thread
involved/working between queue a and b.

 

Does option 2 (i.e. the provided patch) address the description from
CAMEL-126 or do I miss something?

 

Cheers,

Martin