Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
https://camel.apache.org/staging/
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.
VM ComponentThe vm: component provides asynchronous SEDA behavior, exchanging messages on a BlockingQueue and invoking consumers in a separate thread pool. This component differs from the Seda component in that VM supports communication across CamelContext instances - so you can use this mechanism to communicate across web applications (provided that VM is an extension to the Seda component. URI formatvm:queueName[?options] Where You can append query options to the URI in the following format: Before Camel 2.3 - Same URI must be used for both producer and consumer An exactly identical VM endpoint URI must be used for both the producer and the consumer endpoint. Otherwise, Camel will create a second VM endpoint despite that the from("direct:foo").to("vm:bar?concurrentConsumers=5"); from("vm:bar?concurrentConsumers=5").to("file://output"); Notice that we have to use the full URI, including options in both the producer and consumer. In Camel 2.4 this has been fixed so that only the queue name must match. Using the queue name from("direct:foo").to("vm:bar"); from("vm:bar?concurrentConsumers=5").to("file://output"); OptionsSee the Seda component for options and other important usage details as the same rules apply to the Vm component. SamplesIn the route below we send exchanges across CamelContext instances to a VM queue named from("direct:in").bean(MyOrderBean.class).to("vm:order.email"); And then we receive exchanges in some other Camel context (such as deployed in another from("vm:order.email").bean(MyOrderEmailSender.class); |