THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||
---|---|---|---|---|
| ||||
package org.apache.camel.tutorial.routes; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.hazelcast.HazelcastConstants; import org.apache.camel.processor.idempotent.hazelcast.*; public class RoutesHazelcast extends RouteBuilder { public void configure() throws Exception { // create an instance with repo 'my-repo' HazelcastIdempotentRepository hazelcastIdempotentRepo = new HazelcastIdempotentRepository("my-repo"); // receiving a message from REST from("restlet:http://localhost:9080/init?restletMethod=post") .routeId("from_rest_to_seda") .toF("hazelcast:%sfoo", HazelcastConstants.SEDA_PREFIX); // receiving a message from Hazelcast SEDA fromF("hazelcast:%sfoo", HazelcastConstants.SEDA_PREFIX) .routeId("from_hazelcastseda_to_filemap") // check for uniqueness .idempotentConsumer(xpath("/Invoice/@id"), hazelcastIdempotentRepo) // sending the message to a distributed map .setHeader(HazelcastConstants.OBJECT_ID, simple("${exchangeId}")) .setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION)) .toF("hazelcast:%sbar", HazelcastConstants.MAP_PREFIX); } } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
package org.apache.camel.tutorial; import java.util.Random; import org.apache.camel.Exchange; import org.apache.camel.Main; import org.apache.camel.Processor; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.hazelcast.HazelcastConstants; import org.apache.camel.processor.idempotent.hazelcast.HazelcastIdempotentRepository; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.IMap; public class HazelcastIdempotenRepositoryRunner { private Main main; public static void main(String[] args) throws Exception { HazelcastIdempotenRepositoryRunner example = new HazelcastIdempotenRepositoryRunner(); example.boot(); } public void boot() throws Exception { // clear repo-Map for seeing effect on re-running this script IMap<String, Object> repo = Hazelcast.getMap("my-repo"); if (!repo.isEmpty()) { repo.clear(); } // create a Main instance main = new Main(); // enable hangup support so you can press ctrl + c to terminate the JVM main.enableHangupSupport(); main.addRouteBuilder(this.createRouteBuilder()); // run until you terminate the JVM System.out.println("Starting Camel. Use ctrl + c to terminate the JVM.\n"); main.run(); } protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { @Override public void configure() throws Exception { from("timer://foo?fixedRate=true&period=500") .process(new Processor() { private Random random = new Random(); @Override public void process(Exchange ex) throws Exception { // create random invoice number between 1 and 20 int n1 = random.nextInt(20) + 1; int n2 = random.nextInt(2) + 1; String body = " <Invoice id=\"" + n1 + "\">" + "<Article name=\"foo\"/>" + "</Invoice>"; // put xml into body ex.getOut().setBody(body); // set header for 'node' decision ex.getOut().setHeader("server", n2); } }) .choice() .when(header("server").isEqualTo(1)) .log("sending message to 'host1' --> ${body}") .toF("restlet:http://host1:9080/init?restletMethod=post") .otherwise() .log("sending message to 'host2' --> ${body}") .toF("restlet:http://host2:9080/init?restletMethod=post"); fromF("hazelcast:%sbar", HazelcastConstants.MAP_PREFIX) .log("--- new message received ---"); } }; } } |
...