Improve the VM component tests
------------------------------
Key: CAMEL-4239
URL: https://issues.apache.org/jira/browse/CAMEL-4239
Project: Camel
Issue Type: Improvement
Components: camel-core
Reporter: Christian Müller
Assignee: Christian Müller
Fix For: 2.9.0
The [VM component|http://camel.apache.org/vm.html] is designed to support
communication across CamelContext instances.
Only one of the test classes use different Camel contexts. I think all tests
should use at least two Camel contexts.
I came to this, because of the following issue (please have a look into the
following test):
{code:java}
public class VmDifferentOptionsOnConsumerAndProducerTest extends
ContextTestSupport {
private CamelContext context2;
private ProducerTemplate template2;
@Override
@Before
protected void setUp() throws Exception {
super.setUp();
context2 = new DefaultCamelContext(new
JndiRegistry(JndiTest.createInitialContext()));
context2.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start")
.to("vm:foo");
}
});
template2 = context2.createProducerTemplate();
ServiceHelper.startServices(template2, context2);
}
@Override
@After
protected void tearDown() throws Exception {
ServiceHelper.stopServices(context2, template2);
super.tearDown();
}
@Test
public void testSendToVm() throws Exception {
getMockEndpoint("mock:result").expectedBodiesReceived("Hello World");
template2.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("vm:foo?concurrentConsumers=5")
.to("mock:result");
}
};
}
}
{code}
As documented in the [SEDA component|http://camel.apache.org/seda.html] which
is extended by the VM component, this should work with Camel 2.x (look for
"Same URI must be used for both producer and consumer"). I try this with Camel
2.0, 2.1, 2.2 and 2.3 (the version we are using) and it fails. It's fixed in
Camel 2.4 (I will update the wiki page).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira