Advertisement
Guest User

Untitled

a guest
May 26th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. package org.samples.camel;
  2.  
  3. import static org.apache.activemq.camel.component.ActiveMQComponent.activeMQComponent;
  4.  
  5. import java.util.Date;
  6.  
  7. import org.apache.camel.CamelContext;
  8. import org.apache.camel.ConsumerTemplate;
  9. import org.apache.camel.EndpointInject;
  10. import org.apache.camel.Exchange;
  11. import org.apache.camel.Message;
  12. import org.apache.camel.Processor;
  13. import org.apache.camel.Produce;
  14. import org.apache.camel.ProducerTemplate;
  15. import org.apache.camel.builder.RouteBuilder;
  16. import org.apache.camel.component.mock.MockEndpoint;
  17. import org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy;
  18. import org.apache.camel.test.junit4.CamelTestSupport;
  19. import org.junit.Test;
  20.  
  21. public class PollEnrichTest extends CamelTestSupport {
  22.  
  23. @EndpointInject(uri = "mock:result")
  24. protected MockEndpoint resultEndpoint;
  25.  
  26. @Produce(uri = "direct:start")
  27. protected ProducerTemplate template;
  28.  
  29. @Produce(uri = "activemq:queue:test.a")
  30. protected ProducerTemplate jmsTemplate;
  31.  
  32. protected CamelContext createCamelContext() throws Exception {
  33. CamelContext camelContext = super.createCamelContext();
  34.  
  35. camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
  36.  
  37. return camelContext;
  38. }
  39.  
  40. @Test
  41. public void failsToEnrichJmsMessage() throws Exception {
  42.  
  43. context().addRoutes(new RouteBuilder() {
  44.  
  45. @Override
  46. public void configure() throws Exception {
  47. from("activemq:queue:test.a")
  48. .log("from activemq queue: ${body}")
  49. .pollEnrich("file://target/test-classes/inbox?noop=true&fileName=${body}")
  50. .log("enriched: ${body}")
  51. .to("log:org.samples.camel.PollEnrichTest?level=INFO&showAll=true")
  52. .to("mock:result");
  53. }
  54.  
  55. });
  56.  
  57. context().start();
  58. String expectedBody = "hello world";
  59.  
  60. resultEndpoint.expectedBodiesReceived(expectedBody);
  61.  
  62. jmsTemplate.sendBody("enrich.txt");
  63.  
  64. resultEndpoint.assertIsNotSatisfied();
  65. }
  66.  
  67. @Test
  68. public void testEnrichJmsMessage() throws Exception {
  69.  
  70. context().addRoutes(new RouteBuilder() {
  71.  
  72. @Override
  73. public void configure() throws Exception {
  74. from("activemq:queue:test.a")
  75. .log("from activemq queue: ${body}")
  76. .process(new Processor() {
  77.  
  78. @Override
  79. public void process(Exchange exchange) throws Exception {
  80. Message in = exchange.getIn();
  81. String filename = in.getBody(String.class);
  82. log.info("filename: " + filename);
  83. ConsumerTemplate consumer = context.createConsumerTemplate();
  84. Exchange dowbloadExchg = consumer.receive("file://target/test-classes/inbox?noop=true&fileName=" + filename);
  85. exchange.getOut().setBody(dowbloadExchg.getIn().getBody());
  86. }
  87. })
  88. .to("mock:result")
  89. ;
  90.  
  91. }
  92.  
  93. });
  94.  
  95. context().start();
  96. String expectedBody = "hello world";
  97.  
  98. resultEndpoint.expectedBodiesReceived(expectedBody);
  99.  
  100. jmsTemplate.sendBody("enrich.txt");
  101.  
  102. resultEndpoint.assertIsSatisfied();
  103. }
  104.  
  105. @Test
  106. public void failsToEnrichMessage() throws Exception {
  107. context().addRoutes(new RouteBuilder() {
  108.  
  109. @Override
  110. public void configure() throws Exception {
  111. from("direct:start")
  112. .log("${body}")
  113. .pollEnrich("file://target/test-classes/inbox?noop=true&fileName=${body}")
  114. .log("${body}")
  115. .to("log:org.samples.camel.PollEnrichTest?level=INFO&showAll=true")
  116. .to("mock:result");
  117. }
  118.  
  119. });
  120.  
  121. context().start();
  122. String expectedBody = "hello world";
  123.  
  124. resultEndpoint.expectedBodiesReceived(expectedBody);
  125.  
  126. template.sendBodyAndHeader("enrich.txt", "foo", "bar");
  127.  
  128. resultEndpoint.assertIsNotSatisfied();
  129. }
  130.  
  131. @Test
  132. public void testEnrichMessage2() throws Exception {
  133. context().addRoutes(new RouteBuilder() {
  134.  
  135. @Override
  136. public void configure() throws Exception {
  137.  
  138. SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
  139. long startTime = System.currentTimeMillis() + 5L;
  140. policy.setRouteStartDate(new Date(startTime));
  141. policy.setRouteStartRepeatCount(0);
  142. // policy.setRouteStartRepeatInterval(3000);
  143.  
  144. from("file://target/test-classes/inbox?noop=true&include=.*.data")
  145. .routeId("test-route")
  146. .routePolicy(policy)
  147. .log("file: ${headers.CamelFileName}")
  148. .setBody(simple("${headers.CamelFileName}"))
  149. .to("log:org.samples.camel.PollEnrichTest?level=INFO&showAll=true")
  150. .to("mock:result");
  151. }
  152.  
  153. });
  154.  
  155. context().start();
  156.  
  157. resultEndpoint.expectedMessageCount(2);
  158. resultEndpoint.message(0).body().isEqualTo("File001.data");
  159. resultEndpoint.message(1).body().isEqualTo("File002.data");
  160.  
  161. resultEndpoint.assertIsSatisfied();
  162. }
  163.  
  164. // @Test
  165. // public void testEnrichMessage() throws Exception {
  166. // String expectedBody = "hello world";
  167. //
  168. // resultEndpoint.expectedBodiesReceived(expectedBody);
  169. //
  170. // template.sendBodyAndHeader("enrich.txt", "foo", "bar");
  171. //
  172. // resultEndpoint.assertIsSatisfied();
  173. // }
  174. //
  175. // @Override
  176. // protected RouteBuilder createRouteBuilder() {
  177. // return new RouteBuilder() {
  178. // public void configure() {
  179. // from("direct:start")
  180. // .log("${body}")
  181. // .pollEnrich("file://target/test-classes/inbox?noop=true&fileName=${body}")
  182. // .log("${body}")
  183. // .to("log:org.samples.camel?level=DEBUG")
  184. // .to("mock:result");
  185. // }
  186. // };
  187. // }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement