Engineering
Releases
News and Events

Spring Integration, AMQP and Kafka Release Candidates Available

On behalf of Spring Integration team I’m pleased to announce Release Candidates for the Spring Messaging projects. Each is based on the recently released Spring Framework 5.1 GA, has upgraded dependencies and will be part of the upcoming Spring Boot 2.1 M4 - just in time for Spring One Platform!

The artifacts for these projects are available in the Spring Milestone repository.

Please, refer to the What’s New chapter in each Reference Manual for more information about new features and notable changers for each project mentioned below.

Spring AMQP

2.1.0.RC1 release notes.

Spring for Apache Kafka

2.2.0.RC1 Release notes.

Spring Integration

5.1.0.RC1 release notes.

There are several features I would like to mention here since they are not documented yet (we are going to do that during GA release):

  • Java DSL fluxTransform() operator

To hand off the message processing to Reactive Streams, the Java DSL for Spring Integration introduced an intermediate fluxTransform(), e.g.

IntegrationFlow integrationFlow = f -> f
    .split()
    .<String, String>fluxTransform(flux -> flux
                                .map(Message::getPayload
                                .map(String::toUpperCase))
    .aggregate();

This operator accepts an argument in form of Function<? super Flux<Message<I>>, ? extends Publisher<O>>. The Framework injects FluxMessageChannel s before and after calling this function. The it builds a Flux to store a request message to the subscriber context, calls Flux.transform() with the provided function and copies headers from the request message if the result from the function is not a Message<?> already.

  • Reactive Polling

Another new feature is a Reactive polling for the SourcePollingChannelAdapter. If the output channel is an instance of FluxMessageChannel, the Framework transform all the polling options to the Flux.generate() based on the result of the trigger.nextExecutionTime(triggerContext) and a combination with the Mono.delay(duration) to achieve a polling feature reactive manner.

  • Other Java DSL changes

Also we added several other convenient operators to Java DSL, like nullChannel() and logAndReply().

And finally the Java DSL has been improved for an improved Kotlin experience without breaking changes for regular Java configuration.

Spring Integration extension for Spring for Apache Kafka

3.1.0.RC1 Release notes.

Based on the above mentioned Spring for Apache Kafka 2.2.0.RC1 and Spring Integration 5.1.0.RC1, provides some compatibility fixes (especially with Kotlin) and some minor features, like an onPartitionsAssignedSeekCallback for the KafkaInboundGateway and KafkaMessageDrivenChannelAdapter.

See Spring for Apache Kafka Reference Manual for more information about this extension.

Feedback Welcome!

Please, try all these new bits and come back to us with any feedback via any available channel. We will appreciate the help before we are going to GAs in mid October just in time for Spring Boot 2.1 GA!

Thank you everyone who contributed to all these project any possible way!

SpringOne Platform 2018

Right now we are heading to start an epic event in Spring and Pivotal world - Spring One Platform! Gary Russell is going to talk about Spring for Apache Kafka together with Viktor Gamov from Confluent and I will talk about Spring Cloud Stream Binder for Google Cloud Pub/Sub together with Kir Titievsky from Google Cloud Platform. Please, join us if you are here or watch video later!

comments powered by Disqus