[
https://issues.apache.org/jira/browse/CAMEL-4239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Müller resolved CAMEL-4239.
-------------------------------------
Resolution: Fixed
> 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