How do you set the routing rule?
Using the spring or Java DSL ?
Please make sure the mock url is right.
Willem
Mick Knutson wrote:
Here is the unit test:
*...@produce(uri = "seda:foo")
protected ProducerTemplate producer;
@EndpointInject(uri = "mock:result")
protected MockEndpoint mock;
*...@test
public void testReceiveGameStateUpdateMessage() throws Exception {
log.info("testReceiveGameStateUpdateMessage");
// we expect Hello World received in our mock endpoint
mock.expectedBodiesReceived("Hello World");
// we use the producer template to send a message to the seda:start
endpoint
producer.sendBody("seda:start", "Hello World");
producer.sendBodyAndHeader("<table/>", "foo", "bar");
// we consume the body from seda:start
//String body = consumer.receiveBody("seda:start", String.class);
String body = consumer.receiveBody("seda:start", String.class);
assertEquals("Hello World", body);
log.info("**************************");
log.info("... the result is: " + body);
// and then we send the body again to seda:foo so it will be routed
to the mock
// endpoint so our unit test can complete
producer.sendBody("seda:foo", body);
// assert mock received the body
mock.assertIsSatisfied();
}*
The assertEquals passes, but mock.assert fails.
I use
*...@endpointinject(name = "result")
private MockEndpoint mock;*
but got this error:
*java.lang.IllegalArgumentException: registry entry called result of type
org.apache.camel.Endpoint must be specified
*
Not sure why. I was trying to follow the example. But this seems to work
from the consumer standpoint, just not the Mock part.
---
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 2, 2009 at 8:57 PM, Willem Jiang <willem.ji...@gmail.com> wrote:
Can you show me the unit test code?
It should be easy to find a way to resolve this issue
Willem
Mick Knutson wrote:
That appeared to work for creating the consumerTemplate and allowing me to
Autowire it.
But I am not able to get the mock to validate then. Maybe something simple
now:
*Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.122
sec
<<< FAILURE!
testReceiveGameStateUpdateMessage(com.wiredducks.service.test.TableServiceTest)
Time elapsed: 20.019 sec <<< FAILURE!
java.lang.AssertionError: mock://result Received message count. Expected:
<1> but was: <0>
*
This is my Mock:
@EndpointInject(uri = "mock:result")
protected MockEndpoint mock;
This is all I see from the logs:
*5371 [main] INFO org.apache.camel.component.mock.MockEndpoint -
Asserting: Endpoint[mock://result] is satisfied
*
But this is good progress I think.
---
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 2, 2009 at 8:09 PM, Willem Jiang <willem.ji...@gmail.com>
wrote:
Hi,
I just found this is a bug of Camel. I'm working on the quick fix
now[1].
Here is a way that you can walk around this issue, by putting the
consumerTemplate definition inside the camel context.
<camel:camelContext id="camel">
<camel:consumerTemplate id="consumer"/>
</camel:camelContext>
<camel:template id="producer"/>
[1] https://issues.apache.org/activemq/browse/CAMEL-1870
Willem
Mick Knutson wrote:
I am using 2.0-M3
Should be trying the trunk instead?
---
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 2, 2009 at 7:43 PM, Willem Jiang <willem.ji...@gmail.com>
wrote:
Which version of Camel are you using ?
I just checked current Camel 2.0 trunk code, the <camel:consumer> tag
should work. Can you try to use the recent released Camel 2.0 M3 ?
Willem
Mick Knutson wrote:
I am trying to follow:
http://camel.apache.org/polling-consumer.html
Now in my camel-client.xml I defined:
*<beans xmlns="http://www.springframework.org/schema/beans"*
* xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"*
* xmlns:camel="http://camel.apache.org/schema/spring"*
* xsi:schemaLocation="*
* http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd*
* http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">*
* <!-- START SNIPPET: e2 -->*
* <camel:camelContext id="camel"/>*
* <camel:template id="producer"/>*
* <camel:consumerTemplate id="consumer"/> *
But I keep getting:
*The matching wildcard is strict, but no declaration can be found for
element 'camel:consumerTemplate'.*
Then I changed it to:
*<camel:consumer id="consumer"/> *
**
**
But still get*
*
*Caused by:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Cannot locate BeanDefinitionParser for element
[consumer]*
*Offending resource: class path resource [camel-client.xml]*
---
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
---