Thanks Clause, I did that, and here is what I see for my client 1 mock: [thread 3: seda://resultClient1] TraceInterceptor INFO ID-mick-knutsons-macbook-local-58874-1251032417363-0-22 >>> * from(seda://resultClient1)* --> com.wiredducks.routes.test.ClientRoutes$* clientrouteaudit...@2d2f6d60, Pattern:InOnly, BodyType:String, Body:Someone called us with this number ActiveMQMapMessage {commandId = 5, responseRequired = true, messageId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1, destination = topic://VirtualTopic.Table.1, transactionId = null, expiration = 0, timestamp = 1251032420921, arrival = 0, brokerInTime = 1251032420922, brokerOutTime = 1251032420933, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@5a6ed23a, marshalledProperties = org.apache.activemq.util.byteseque...@21ac0c38, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {tableId=1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQMapMessage{ theTable = {} }
With that, I added an audit processor to ensure I was able to see the message getting to the seda://resultClient1 queue. So in this same run, a bit further down the stack, I see this: [thread 3: seda://resultClient1] TraceInterceptor INFO ID-mick-knutsons-macbook-local-58874-1251032417363-0-22 >>>*from(seda://resultClient1) --> *com.wiredducks.routes.test.clientroutes$clientrouteaudi...@2d2f6d60, Pattern:InOnly, BodyType:String, Body:Someone called us with this number ActiveMQMapMessage {commandId = 5, responseRequired = true, messageId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1, destination = topic://VirtualTopic.Table.1, transactionId = null, expiration = 0, timestamp = 1251032420921, arrival = 0, brokerInTime = 1251032420922, brokerOutTime = 1251032420933, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@5a6ed23a, marshalledProperties = org.apache.activemq.util.byteseque...@21ac0c38, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {tableId=1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQMapMessage{ theTable = {} } *[thread 3: seda://resultClient1] ClientRoutes INFO //--- start ClientRouteAuditor ---//* [thread 3: seda://resultClient1] ClientRoutes INFO tableId null [thread 3: seda://resultClient1] ClientRoutes INFO Someone called us with this number ActiveMQMapMessage {commandId = 5, responseRequired = true, messageId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1, destination = topic://VirtualTopic.Table.1, transactionId = null, expiration = 0, timestamp = 1251032420921, arrival = 0, brokerInTime = 1251032420922, brokerOutTime = 1251032420933, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@5a6ed23a, marshalledProperties = org.apache.activemq.util.byteseque...@21ac0c38, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {tableId=1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQMapMessage{ theTable = {} } [thread 3: seda://resultClient1] ClientRoutes INFO //--- end ClientRouteAuditor ---// [thread 3: seda://resultClient1] TraceInterceptor INFO ID-mick-knutsons-macbook-local-58874-1251032417363-0-22 >>> com.wiredducks.routes.test.clientroutes$clientrouteaudi...@2d2f6d60 --> * mock://resultAllClients,* Pattern:InOnly, BodyType:String, Body:Someone called us with this number ActiveMQMapMessage {commandId = 5, responseRequired = true, messageId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:11:1:1, destination = topic://VirtualTopic.Table.1, transactionId = null, expiration = 0, timestamp = 1251032420921, arrival = 0, brokerInTime = 1251032420922, brokerOutTime = 1251032420933, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@5a6ed23a, marshalledProperties = org.apache.activemq.util.byteseque...@21ac0c38, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {tableId=1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQMapMessage{ theTable = {} } No what puzzles me as I look through this, I do not see mock://resultClient1 anywhere. So I took out the wiretap and sued this route: from("seda://resultClient1") .process(new ClientRouteAuditor()) .to("mock://resultClient1"); Then I see the mock: thread 3: seda://resultClient1] TraceInterceptor INFO ID-mick-knutsons-macbook-local-59515-1251033193324-0-25 >>> com.wiredducks.routes.test.clientroutes$clientrouteaudi...@266883cb -->*mock://resultClient1 *, Pattern:InOnly, BodyType:String, Body:Someone called us with this number ActiveMQMapMessage {commandId = 5, responseRequired = true, messageId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:12:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:mick-knutsons-macbook.local-54963-1251028089270-2:12:1:1, destination = topic://VirtualTopic.Table.1, transactionId = null, expiration = 0, timestamp = 1251033197564, arrival = 0, brokerInTime = 1251033197564, brokerOutTime = 1251033197566, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@385eb0bb, marshalledProperties = org.apache.activemq.util.byteseque...@50a4e1e6, dataStructure = null, redeliveryCounter = 0, size = 0, properties = {tableId=1}, readOnlyProperties = true, readOnlyBody = true, droppable = false} ActiveMQMapMessage{ theTable = {} } But still get: java.lang.AssertionError: *mock://resultClient1* Received message count. Expected: <1> but was: <0> --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://baselogic.com Linked IN: http://linkedin.com/in/mickknutson Vacation Rental: http://tahoe.baselogic.com --- On Sun, Aug 23, 2009 at 5:37 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Sun, Aug 23, 2009 at 2:18 PM, Mick Knutson<mknut...@baselogic.com> > wrote: > > I have tried everything I can at least 20 times. I really appreciate the > > help on this one as there is no pattern for me to follow to solve this. > > Sometimes it works, and sometimes it doesn't. > > > > I also tried this in the route (none successful): > > > > > > > from("activemq:Consumer.1.VirtualTopic.Table.1").wireTap("mock://resultAllClients").to("mock:resultClient1"); > > > > from("seda:resultClient1").to("mock:resultClient1"); > > > > from("seda:resultClient2").to("mock:resultClient2"); > > > > > > Is there any advise anyone can give me to understand a better way to > DEBUG > > through the routes and messages? > > > > Use the tracer > http://camel.apache.org/tracer > > > --- > > Thank You… > > > > Mick Knutson, President > > > > BASE Logic, Inc. > > Enterprise Architecture, Design, Mentoring & Agile Consulting > > p. (866) BLiNC-411: (254-6241-1) > > f. (415) 685-4233 > > > > Website: http://baselogic.com > > Linked IN: http://linkedin.com/in/mickknutson > > Vacation Rental: http://tahoe.baselogic.com > > --- > > > > > > > > On Sun, Aug 23, 2009 at 5:09 AM, Mick Knutson <mknut...@baselogic.com > >wrote: > > > >> Here is the 1 Route file I have: > >> > >> @Override > >> public void configure() throws Exception { > >> log.info("//@@@@@ CLIENT ROUTES > >> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//"); > >> > >> > >> > //from("activemq:Consumer.1.VirtualTopic.Table.1").wireTap("mock://resultAllClients").to("mock:resultClient1"); > >> > >> > >> > from("seda:resultClient1").wireTap("mock://resultAllClients").to("mock:resultClient1"); > >> > >> > from("seda:resultClient2").wireTap("mock://resultAllClients").to("mock:resultClient2"); > >> > >> > from("seda:resultClient3").wireTap("mock://resultAllClients").to("mock:resultClient3"); > >> > >> > from("seda:resultClient4").wireTap("mock://resultAllClients").to("mock:resultClient4"); > >> > >> > from("seda:resultClient5").wireTap("mock://resultAllClients").to("mock:resultClient5"); > >> > >> > from("seda:resultClient6").wireTap("mock://resultAllClients").to("mock:resultClient6"); > >> > >> > from("seda:resultClient7").wireTap("mock://resultAllClients").to("mock:resultClient7"); > >> > >> > from("seda:resultClient8").wireTap("mock://resultAllClients").to("mock:resultClient8"); > >> > >> > from("seda:resultClient9").wireTap("mock://resultAllClients").to("mock:resultClient9"); > >> > >> > from("seda:resultClient10").wireTap("mock://resultAllClients").to("mock:resultClient10"); > >> > >> > from("seda:resultClient11").wireTap("mock://resultAllClients").to("mock:resultClient11"); > >> > >> } // end configure > >> > >> > >> --- > >> Thank You… > >> > >> Mick Knutson, President > >> > >> BASE Logic, Inc. > >> Enterprise Architecture, Design, Mentoring & Agile Consulting > >> p. (866) BLiNC-411: (254-6241-1) > >> f. (415) 685-4233 > >> > >> Website: http://baselogic.com > >> Linked IN: http://linkedin.com/in/mickknutson > >> Vacation Rental: http://tahoe.baselogic.com > >> --- > >> > >> > >> > >> On Sun, Aug 23, 2009 at 3:14 AM, Willem Jiang <willem.ji...@gmail.com > >wrote: > >> > >>> Hi Mick, > >>> > >>> Can you show me the route rule ? > >>> It will help us to trace the issue :) > >>> > >>> Willem > >>> > >>> > >>> Mick Knutson wrote: > >>> > >>>> I have a unit test that has a wiretap that routes the message to a > mock > >>>> endpoint. > >>>> Here is what works: > >>>> > >>>> @EndpointInject(uri = "mock:resultAllClients") > >>>> protected MockEndpoint resultAllClients; > >>>> > >>>> @EndpointInject(uri = "mock:resultClient1") > >>>> protected MockEndpoint resultClient1; > >>>> @EndpointInject(uri = "mock:resultClient2") > >>>> protected MockEndpoint resultClient2; > >>>> @EndpointInject(uri = "mock:resultClient3") > >>>> protected MockEndpoint resultClient3; > >>>> @EndpointInject(uri = "mock:resultClient4") > >>>> protected MockEndpoint resultClient4; > >>>> > >>>> @Test > >>>> public void testSendBetMessage() throws Exception { > >>>> log.info("Send a test message to Table Service"); > >>>> > >>>> //resultAllClients.expectedMinimumMessageCount(3); > >>>> resultClient1.expectedMessageCount(1); > >>>> resultClient2.expectedMessageCount(1); > >>>> //resultClient3.expectedMessageCount(1); > >>>> //resultClient4.expectedMessageCount(1); > >>>> > >>>> > >>>> // Send the test message to make Server Service create our > Status > >>>> Message > >>>> producerTemplate.sendBody("jms:queue:bets", > >>>> ExchangePattern.InOnly, 22); > >>>> > >>>> // now lets assert that the mock endpoint received messages > >>>> resultClient1.assertIsSatisfied(); > >>>> resultClient2.assertIsSatisfied(); > >>>> //resultClient3.assertIsSatisfied(); > >>>> //resultClient4.assertIsSatisfied(); > >>>> > >>>> //resultAllClients.assertIsSatisfied(); > >>>> log.info("XXXXXXXXXX DONE > >>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); > >>>> > >>>> } > >>>> > >>>> /*...@after > >>>> public void finalizeTests() { > >>>> // resultAllClients.reset(); > >>>> resultClient1.reset(); > >>>> resultClient2.reset(); > >>>> resultClient3.reset(); > >>>> // resultClient4.reset(); > >>>> }*/ > >>>> > >>>> > >>>> > >>>> This is in 1 unit test class and the way it is above has all > assertions > >>>> pass. > >>>> If any of the following things change, I get: > >>>> > >>>> java.lang.AssertionError: mock://resultClient1 Received message count. > >>>> Expected: <1> but was: <0> > >>>> > >>>> > >>>> 1. If I uncomment the finalizeTests() method, the error starts. > >>>> > >>>> 2. If I uncomment resultClient3, resultClient4 it might start working, > >>>> then > >>>> randomly it will show up again and I have to comment them out in order > >>>> for > >>>> the test to pass again. > >>>> > >>>> > >>>> Is there some bug/defect in the Mock that I have not googled? > >>>> > >>>> > >>>> > >>>> --- > >>>> Thank You… > >>>> > >>>> Mick Knutson, President > >>>> > >>>> BASE Logic, Inc. > >>>> Enterprise Architecture, Design, Mentoring & Agile Consulting > >>>> p. (866) BLiNC-411: (254-6241-1) > >>>> f. (415) 685-4233 > >>>> > >>>> Website: http://baselogic.com > >>>> Linked IN: http://linkedin.com/in/mickknutson > >>>> Vacation Rental: http://tahoe.baselogic.com > >>>> --- > >>>> > >>>> > >>> > >> > > > > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus >