From 4aefd9129f45f47e6195986b50b59746a171b626 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 8 May 2014 14:15:15 +0300 Subject: [PATCH] DSL: Clean up `README.md` --- spring-integration-java-dsl/README.md | 88 +------------------ .../dsl/test/IntegrationFlowTests.java | 37 +++++++- 2 files changed, 38 insertions(+), 87 deletions(-) diff --git a/spring-integration-java-dsl/README.md b/spring-integration-java-dsl/README.md index 809680f..8897b4d 100644 --- a/spring-integration-java-dsl/README.md +++ b/spring-integration-java-dsl/README.md @@ -1,88 +1,6 @@ Spring Integration Java DSL =============================== -The Spring Integration JavaConfig and DSL extension. Provides a set of convenient Builders and fluent API to configure -Spring Integration message flows from Spring `@Configuration` classes. - -## Example Configurations - -````java - @Configuration - @EnableIntegration - public class MyConfiguration { - - @Bean - public MessageSource integerMessageSource() { - MethodInvokingMessageSource source = new MethodInvokingMessageSource(); - source.setObject(new AtomicInteger()); - source.setMethodName("getAndIncrement"); - return source; - } - - @Bean - public DirectChannel inputChannel() { - return new DirectChannel(); - } - - @Bean - public IntegrationFlow myFlow() { - return IntegrationFlows.from(this.integerMessageSource(), c -> c.poller(Pollers.fixedRate(100))) - .channel(this.inputChannel()) - .filter((Integer p) -> p > 0) - .transform(Object::toString) - .channel(MessageChannels.queue()) - .get(); - } - } -```` - -As the result after `ApplicationContext` start up will be created Spring Integration endpoints and Message Channels as it is after XML parsing. -Such configuration can be used to replace XML configuration or together with that. - -## Maven - -### Repository - - - repository.springframework.maven.snapshot - Spring Framework Maven Snapshot Repository - http://repo.spring.io/libs-snapshot - - -### Artifact - - - org.springframework.integration - spring-integration-dsl - 1.0.0.BUILD-SNAPSHOT - - -## Support - -Check out the [Spring Integration forums][] and the [spring-integration][spring-integration tag] tag -on [Stack Overflow][]. [Commercial support][] is available, too. - -## Related GitHub projects - -* [Spring Integration][] -* [Spring Integration Samples][] -* [Spring Integration Templates][] -* [Spring Integration Dsl Groovy][] -* [Spring Integration Dsl Scala][] -* [Spring Integration Pattern Catalog][] - -For more information, please also don't forget to visit the [Spring Integration][] website. - -[Spring Integration]: https://github.com/spring-projects/spring-integration -[Commercial support]: http://springsource.com/support/springsupport -[Spring Integration forums]: http://forum.spring.io/forum/spring-projects/integration -[spring-integration tag]: http://stackoverflow.com/questions/tagged/spring-integration -[Spring Integration Samples]: https://github.com/spring-projects/spring-integration-samples -[Spring Integration Templates]: https://github.com/spring-projects/spring-integration-templates/tree/master/si-sts-templates -[Spring Integration Dsl Groovy]: https://github.com/spring-projects/spring-integration-dsl-groovy -[Spring Integration Dsl Scala]: https://github.com/spring-projects/spring-integration-dsl-scala -[Spring Integration Pattern Catalog]: https://github.com/spring-projects/spring-integration-pattern-catalog -[Stack Overflow]: http://stackoverflow.com/faq - - - +See the +[Spring Integration Java DSL Reference](https://github.com/spring-projects/spring-integration-extensions/wiki/Spring-Integration-Java-DSL-Reference) +for more info. diff --git a/spring-integration-java-dsl/src/test/java/org/springframework/integration/dsl/test/IntegrationFlowTests.java b/spring-integration-java-dsl/src/test/java/org/springframework/integration/dsl/test/IntegrationFlowTests.java index 2fab98e..5ddbb78 100644 --- a/spring-integration-java-dsl/src/test/java/org/springframework/integration/dsl/test/IntegrationFlowTests.java +++ b/spring-integration-java-dsl/src/test/java/org/springframework/integration/dsl/test/IntegrationFlowTests.java @@ -77,6 +77,7 @@ import org.springframework.integration.channel.QueueChannel; import org.springframework.integration.config.EnableIntegration; import org.springframework.integration.config.GlobalChannelInterceptor; import org.springframework.integration.core.MessageSource; +import org.springframework.integration.dsl.AggregatorSpec; import org.springframework.integration.dsl.IntegrationFlow; import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.integration.dsl.ResequencerSpec; @@ -272,6 +273,10 @@ public class IntegrationFlowTests { @Qualifier("priorityReplyChannel") private PollableChannel priorityReplyChannel; + @Autowired + @Qualifier("lamdasInput") + private MessageChannel lamdasInput; + @BeforeClass public static void setup() throws IOException { mongodExe = MongodStarter.getDefaultInstance() @@ -440,6 +445,26 @@ public class IntegrationFlowTests { assertEquals("Hello, world", receive.getPayload()); } + @Test + public void testLamdas() { + QueueChannel replyChannel = new QueueChannel(); + Message message = MessageBuilder.withPayload("World") + .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel) + .build(); + this.lamdasInput.send(message); + Message receive = replyChannel.receive(5000); + assertNotNull(receive); + assertEquals("Hello World", receive.getPayload()); + + message = MessageBuilder.withPayload("Spring") + .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel) + .build(); + + this.lamdasInput.send(message); + assertNull(replyChannel.receive(10)); + + } + @Test public void testWrongConfigurationWithSpecBean() { ConfigurableApplicationContext context = null; @@ -826,7 +851,7 @@ public class IntegrationFlowTests { .get(); } - @Bean(name = PollerMetadata.DEFAULT_POLLER_METADATA_BEAN_NAME) + @Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata poller() { return Pollers.fixedRate(500).get(); } @@ -895,7 +920,7 @@ public class IntegrationFlowTests { @Bean public IntegrationFlow priorityFlow(PriorityCapableChannelMessageStore mongoDbChannelMessageStore) { return IntegrationFlows.from(MessageChannels.priority("priorityChannel", - mongoDbChannelMessageStore, "priorityGroup")) + mongoDbChannelMessageStore, "priorityGroup").interceptor()) .bridge(s -> s.poller(Pollers.fixedDelay(1000, 2000))) .channel(MessageChannels.queue("priorityReplyChannel")) .get(); @@ -1050,6 +1075,14 @@ public class IntegrationFlowTests { .get(); } + @Bean + public IntegrationFlow lamdasFlow() { + return IntegrationFlows.from("lamdasInput") + .filter("World"::equals) + .transform("Hello "::concat) + .get(); + } + @Bean public IntegrationFlow enricherFlow() { return IntegrationFlows.fromFixedMessageChannel("enricherInput")