Files
spring-integration-extensions/spring-integration-java-dsl

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

    @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>
    <id>repository.springframework.maven.snapshot</id>
    <name>Spring Framework Maven Snapshot Repository</name>
    <url>http://repo.spring.io/libs-snapshot</url>
</repository>

Artifact

<dependency>
    <groupId>org.springframework.integration</groupId>
    <artifactId>spring-integration-dsl</artifactId>
    <version>1.0.0.BUILD-SNAPSHOT</version>
</dependency>

Support

Check out the Spring Integration forums and the spring-integration tag on Stack Overflow. Commercial support is available, too.

For more information, please also don't forget to visit the Spring Integration website.