Spring Integration 5.3 Milestone 2 Available

Releases | Artem Bilan | February 12, 2020 | ...

On behalf of the Spring Integration team, I’m pleased to announce the second milestone for Spring Integration 5.3.

This release ships several bug fixes, a bunch of new features and improvements and will be picked up by Spring Boot 2.3 M2 in the near future.

It can be downloaded from our milestone repository:

compile "org.springframework.integration:spring-integration-core:5.3.0.M2"

The most important new features are:

  • With the IntegrationFlowExtension implementation we now can right our own Java DSL for Spring Integration. It allows to introduce custom or composed EIP-operators. The existing IntegrationComponentSpec implementations can now be extended for additional (missed?) options. So, now any custom and reusable solutions in Java DSL can be implemented in the target project:

    public class CustomIntegrationFlowDefinition extends IntegrationFlowExtension {

    public CustomIntegrationFlowDefinition upperCaseAfterSplit() {
        return split()
                .transform("payload.toUpperCase()");
    }
    
    public CustomIntegrationFlowDefinition customAggregate(
                    Consumer<CustomAggregatorSpec> aggregator) {
        return register(new CustomAggregatorSpec(), aggregator);
    }
    

    }

    public class CustomAggregatorSpec extends AggregatorSpec {

    CustomAggregatorSpec() {
        outputProcessor(group ->
                group.getMessages()
                        .stream()
                        .map(Message::getPayload)
                        .map(String.class::cast)
                        .collect(Collectors.joining(", ")));
    }
    

    }

    @Bean public IntegrationFlow customFlowDefinition() { return new CustomIntegrationFlowDefinition() .log() .upperCaseAfterSplit() .channel("innerChannel") .customAggregate(customAggregatorSpec -> customAggregatorSpec.expireGroupsUponCompletion(true)) .logAndReply(); }

  • HTTP and WebFlux outbound channel adapters now support an UriBuilderFactory.EncodingMode option instead of previous`encodeUri` boolean flag.

  • The AMQP outbound channel adapter has a new property multiSend allowing multiple messages to be sent within the scope of one RabbitTemplate invocation.

  • The AMQP inbound channel adapter now supports a listener container with the consumerBatchEnabled property set to true.

See What’s New? in the Reference Manual for more information.

The next and last M3 milestone is scheduled for March before entering the RC phase in April. Expect an upgrade to the latest milestone releases: Spring Data Neumann, Spring Security 5.3 etc.

We’re looking forward to your feedback!

Project Page | GitHub Issues | Contributing | Help | Chat

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all