Hello, i'm testing an application that sends messages through some routes
defined in the camel-context as it follow:
<camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
<endpoint id="message-inTo-filter"
uri="lobby-jms:queue:lobby-filtered.queue" />
<endpoint id="message-outTo-worker"
uri="lobby-jms:queue:lobby-event-worker.queue?concurrentConsumers=5" />
<route>
<from uri="message-inTo-filter" />
<filter>
<simple>${header.headerEvent} == 'MTT'</simple>
*<to uri="mock:result" />*
</filter>
</route>
and here is the class that sends the messages:
@Test
public void testRoutes() throws Exception {
msgHeader = new MessageHeader ("headerEvent", "MTT");
msgHeader2 = new MessageHeader("headerEvent", "CASH");
msgBody = new MessageBody ("body");
mBM = MessageBrokerManagerImpl.getInstance(prop);
mBM.startRoutingEngine();
for(int i = 0; i<50;i++){
if(i < 25){
mBM.sendHeaderAndBodyToEndPoint("message-inTo-filter",msgBody ,
msgHeader);
}else{
mBM.sendHeaderAndBodyToEndPoint("message-inTo-filter",msgBody ,
msgHeader2);
}
}
the problem is that when i set the MOCK component as endpoint i assert that
it should receive 25 msg but it just receive half(13). no track of the
others.
it's strange because if i change the IF like this --->
for(int i = 0; i<50;i++){
if(i%2 ==0 ){
mBM.sendHeaderAndBodyToEndPoint("message-inTo-filter",msgBody ,
msgHeader);
}............
the mock receive all the messages.
The last thing i noticed is that if i set as endpoint an ActiveMQ queue it
works anyway.(no matter the IF).
Sorry if it's not clear..but i would really appreciate any of your suggest.
Thank you.
Fabrizio.
--
View this message in context:
http://camel.465427.n5.nabble.com/MOCK-Problem-it-gets-half-of-the-messages-it-suppose-to-receive-tp5119702p5119702.html
Sent from the Camel Development mailing list archive at Nabble.com.