Artem Bilan

Artem Bilan

Recent Blog posts by Artem Bilan

Spring Integration 5.4 M2 Available

Releases | August 12, 2020 | ...

Dear Spring community,

On behalf of the team and everyone who contributed, it is my pleasure to announce the second milestone for Spring Integration 5.4 generation.

It can be downloaded from our milestone repository:

compile 'org.springframework.integration:spring-integration-core:5.4.0-M2'

This version continues a story since milestone 1 for aggressive dependencies upgrades and deprecation removals, including legacy metrics.

Some key highlights in this milestone alongside with the number of bugfixes and refactorings:

  • The fix for CVE-2020-5413;

  • An Inbound Channel Adapter for R2DBC;

  • A Reactive Message Producer implementation for Redis Stream;

  • A ZeroMqChannel is implemented, too;

  • The RMI module is deprecated now.

Spring Integration 4.3.23, 5.1.12, 5.2.8 & 5.3.2 available; CVE-2020-5413

Releases | July 22, 2020 | ...

Dear Spring community,

On behalf of the team and everyone who contributed, it is my pleasure to announce a number of maintenance releases for Spring Integration. Mostly these versions contain bug fixes and dependency upgrades.

CVE-2020-5413

The Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when the incoming data contains malicious code for execution during deserialization.

In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration calls kryo.setRegistrationRequired(true); (trust no one) by default and pre-configures out-of-the-box Message<?> implementations as trusted classes. All other types have to be registered with Kryo using any available KryoRegistrar strategy injected into a PojoCodec

Spring Integration 5.4 M1 Available

Releases | June 29, 2020 | ...

Dear Spring community,

On behalf of the team and everyone who contributed, it is my pleasure to announce the first milestone for Spring Integration 5.4 generation.

It can be downloaded from our milestone repository:

compile 'org.springframework.integration:spring-integration-core:5.4.0-M1'

The Spring Integration 5.4 generation is full based on recently released Spring Framework 5.3 M1 including all the deprecation resolutions, removal some obsolete API and aggressive upgrade the latest versions for dependencies.

Long-waiting community request has been fulfilled and now Spring Integration…

Spring Integration 5.3 RC1, 5.2.6 & 5.1.10 Available

Releases | April 30, 2020 | ...

I’m pleased to announce the first (and the last) release candidate 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 RC1.

It can be downloaded from our milestone repository:

compile 'org.springframework.integration:spring-integration-core:5.3.0.RC1'

The most important new features are:

  • The MongoDbChangeStreamMessageProducer - a reactive MessageProducerSupport implementation for the Spring Data ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class) API. This component produces a Flux of messages with a body of ChangeStreamEvent as the payload by default and some change stream related headers (see MongoHeaders).

  • The ReactiveMessageSourceProducer - a reactive implementation of the MessageProducerSupport to wrap a provided MessageSource into a Flux for on demand receive() calls.

  • The ReceiveMessageAdvice - a former AbstractMessageSourceAdvice is graduated now to more common advice approach which can be used also for the PollableChannel.receive() proxying.

Spring Integration 5.3 Milestone 3 Available

Releases | March 11, 2020 | ...

I’m pleased to announce the third 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 M3 in the near future.

It can be downloaded from our milestone repository:

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

The most important new features are:

  • Reactive transactions support. The ReactiveTransactionManager can now be configured for endpoints which produces reactive type for replies or just implement ReactiveMessageHandler.

  • ReactiveRequestHandlerAdvice - a MethodInterceptor for message handlers producing a Mono as a payload for reply. The BiFunction<Message<?>, Mono<?>, Publisher<?>> customized is applied for the returned Mono via Mono.transform(Function) operator to add some aspects into a produced result. Typically it is used for timeout, retry, tag options applied for the remote reactive requests, e.g. Webflux or RSocket.

  • Kotlin DSL. As we promised before, we have merged spring-integration-kotlin-dsl project into core one for general availability and for further possible improvements which are possible only with direct access to core Spring Integration classes. See org.springframework.integration.dsl.IntegrationFlowDsl.kt for more information.

Spring Integration 5.3 Milestone 2 Available

Releases | 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…

Spring Integration 5.3 Milestone 1 Available

Releases | January 23, 2020 | ...

Dear Spring Community,

On behalf of the Spring Integration team I’m excited to announce that with the New Year we have some news to share with you. First of all, it is an honor to have taken over the lead role for the Spring Integration project. Gary Russell is still in the team and he leads Spring AMQP and Spring for Apache Kafka projects. Secondly we have just released the first milestone for Spring Integration of version 5.3.

It can be downloaded from our milestone repository:

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

This version is going to be a foundation for the upcoming Spring Boot 2.3

Spring Integration AWS 2.3.1 & Spring Cloud Stream Kinesis Binder 2.0.1 Available

Releases | January 10, 2020 | ...

Dear Spring Community,

Today it’s my pleasure to announce patch releases of Spring Integration for Amazon Web Services extension version 2.3.1 and Spring Cloud Stream Binder for AWS Kinesis version 2.0.1.

These releases can be downloaded from Maven Central, JCenter, and our release repository:

compile "org.springframework.integration:spring-integration-aws:2.3.1.RELEASE"

If you don’t use Kinesis Binder. Or via Binder dependency:

compile "org.springframework.cloud:spring-cloud-stream-binder-kinesis:2.0.1.RELEASE"

Mostly these versions have bug fixes and some community feedback refinements…

Spring Integration AWS 2.3 GA and Spring Cloud Stream Kinesis Binder 2.0 GA Available

Releases | November 27, 2019 | ...

Dear Spring Community,

Today it’s my pleasure to announce General Availability of Spring Integration for Amazon Web Services extension version 2.3.0 and Spring Cloud Stream Binder for AWS Kinesis version 2.0.0.

These releases can be downloaded from Maven Central, JCenter, and our release repository:

compile "org.springframework.integration:spring-integration-aws:2.3.0.RELEASE"

If you don’t use Kinesis Binder. Or via Binder dependency:

compile "org.springframework.cloud:spring-cloud-stream-binder-kinesis:2.0.0.RELEASE"

Release Highlights

  • The main theme of both these releases is about an integration testing using a Local Stack framework which helped us to spot several bugs and race conditions in both libraries.

  • The spring-integration-aws provides a PutRecordsRequest (batch) support for KplMessageHandler collecting async results for UserRecords in that batch using Project Reactor Mono.fromFuture() functionality.

  • A KinesisShardEndedEvent is now emitted from the KinesisMessageDrivenChannelAdapter when the next shard request returns null with the meaning that shard is closed and no records can be added to that any more.

  • The spring-cloud-stream-binder-kinesis is based on the recently released Spring Cloud Stream version 3.0 and provides a new KinesisBinderHealthIndicator to check that all the streams involved in binding configurations are available.

Spring Integration Extensions Releases

Releases | November 06, 2019 | ...

Dear Spring Community,

Following several requests from community members, it is my pleasure to announce that some Spring Integration Extensions have made it to their new generations and up-to-date dependencies. Of course, first of all, thank you everybody contributed, even if that was just a GitHub issue or StackOverflow question!

Below are highlights for those projects. All of them are available on Maven Central, JCenter and Spring Release repositories. Since all these projects are not a part of Spring Integration BOM (and they cannot be because of different release cycles) you have to…

Get ahead

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

Learn more

Get support

Tanzu Spring 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