Spring Team
Artem Bilan

Artem Bilan

Spring Integration Team

Philadelphia, PA

Blog Posts by Artem Bilan

Spring Integration Extension for Hazelcast 1.0.0 M2 Available

On behalf of the Spring Integration community I’d like to announce the second Milestone of Spring Integration Extension for Hazelcast and its artifact is spring-integration-hazelcast.1.0.0.M2, which is available in the Milestone Repository.

The project has been around for some time and there has not been so much activity since the previous Milestone 1 and it only recently gained enough community traction to warrant a release. So, first of all, big thanks to you, the community, for your contributions!

Read more...

Spring Integration Extension for SMB 0.5.0 is Available

On behalf of the Spring Integration team I’d like to announce release of one more Spring Integration Extension. This time it is Spring Integration for Server Message Block and its artifact is spring-integration-smb.0.5.0.RELEASE, which is available in the Release Repository and Maven Central.

The project has been around for some time but only recently gained enough community traction to warrant a release. So, first of all, big thanks to you, the community, for your contributions!

The Java CIFS Client Library has been chosen as a Java implementation for the CIFS/SMB networking protocol. Its SmbFile abstraction is simply wrapped to the Spring Integration "Remote File" foundations like SmbSession, SmbRemoteFileTemplate etc.

Read more...

Spring Integration 5.0 Milestone 2 Available

On behalf of the Spring Integration team I’d like to announce the Second Milestone of Spring Integration 5.0, which is available in the Milestone Repository.

Some highlights of this release since the previous Milestone.

Of course, first of all, big thanks to you, the community, for your contributions!

MongoDb Improvements

  • MongoDbOutboundGateway - for performing queries or any arbitrary operation on the collection

  • An initial Java DSL support for MongoDB components

  • The MongoDb component now can use org.springframework.data.mongodb.core.query.Query API in their expressions

@Bean
public IntegrationFlow mongoDbGatewayFlow() {
    return f -> f
        .handle(MongoDb.outboundGateway(this.mongoTemplate)
                            .collectionCallback(MongoCollection::count)
                            .collectionNameFunction(m ->
                                           m.getHeaders().get("collection")));
}
Read more...

Spring AMQP 1.7 RC1 available now

On behalf of the Spring Integration team I’d like to announce the first (and final) Release Candidate of Spring AMQP 1.7, which is available in the Milestone Repository.

This release is mainly an intermediate between version 1.6.x and 2.0 for Spring Boot 1.5 and IO Platform Brussels compatibility.

Anyway there are several improvements and new features to explain here:

  • Upgrade to Amqp Client 4.0 with appropriate RabbitConnectionFactoryBean changes

  • Upgrade to Log4j 2.7 and required braking change fix for the log4j2.AmqpAppender

  • Upgrade to Spring Retry 1.2 with important StatefulRetryOperationsInterceptor.setUseRawKey(true) for backward compatibility

  • a new spring-rabbit-junit artifact is provided with several utilities (like BrokerRunning @Rule) which can be useful for testing Spring AMQP applications

  • The SimpleMessageListenerContainer can now be started without queues to listen to at all. They can be provided later at runtime via addQueues()

  • a ConnectionNameStrategy is provided for the ConnectionFactory to allow to identify application connections in the Broker or other monitoring and tracing tools

Read more...

Java DSL for Spring Integration 1.2 Release is available

Dear Spring Community,

It’s my pleasure to announce that the Java DSL for Spring Integration 1.2 GA is now available.

The artifact org.springframework.integration:spring-integration-java-dsl:1.2.0.RELEASE is available in the Release repo and Maven Central.

Since the previous Release Candidate 1 we have received some feedback and these additional features have been added:

Thread Barrier support

A new .barrier() and its mirror .trigger() EIP-methods have been added to the IntegrationFlow definition:

private static final String BARRIER = "barrier";

@Bean
public IntegrationFlow barrierFlow() {
    return f -> f
        .barrier(10000, b -> b
                .correlationStrategy(
                         new HeaderAttributeCorrelationStrategy(BARRIER))
                 .outputProcessor(g ->
                         g.getMessages()
                                 .stream()
                                 .skip(1)
                                 .findFirst()
                                 .get()))
         .channel(c -> c.queue("barrierResults"));
}

@Bean
public IntegrationFlow releaseBarrierFlow(
                          MessageTriggerAction barrierTriggerAction) {
    return IntegrationFlows.from((Channels c) -> c.queue("releaseChannel"))
        .trigger(barrierTriggerAction,
            e -> e.poller(p -> p.fixedDelay(100)))
        .get();
}
Read more...

Java DSL for Spring Integration 1.2 Release Candidate 1 is available

Dear Spring Community,

I’m pleased to announce that the Java DSL for Spring Integration 1.2 RC1 is available now.

Since the previous Milestone 2 we had a good deep feedback for our new features and some API has been broken to reflect real requirements.

As usual, big thanks to everyone who created issues, raised Pull Requests, provided feedback or just asked questions on StackOverflow.

The artifact org.springframework.integration:spring-integration-java-dsl:1.2.0.RC1 is available in the Milestone repo. So, give it a shot for last chance to raise a GH issue for any feedback!

Read more...

Spring for Apache Kafka 1.1 GA and Spring Integration Kafka 2.1 GA are Available

I am pleased to announce that the Spring for Apache Kafka 1.1.0.RELEASE is now available in the spring release repo and Maven Central.

Due to some community requirements, we decided to bypass the Release Candidate (RC) phase and released General Availability (GA) immediately.

There are not many changes since the previous Milestone 2, but here is a summary of all Spring Kafka 1.1 changes:

  • Apache Kafka 0.10 upgrade;

  • The batch of messages support via BatchMessageListener as well as via @KafkaListener annotation configuration;

  • The null payload concept support via KafkaNull placeholder object;

  • You can now perform seek operations from the listener - this allows setting an initial offset when partitions are assigned by Kafka when using group management. You can also perform arbitrary seek operations after initialization;

  • Allow setting the initial offset to be relative to the current offset;

  • The KafkaTemplate now provides access to the metrics and partitionsFor methods on the Producer.

Read more...

Spring Integration 4.3.2 is Available

I’m pleased to announce that Spring Integration maintenance version 4.3.2 has been released. It is available in the spring release repo and Maven Central. It’s strongly recommended for everyone to upgrade because of the bug fixes and improvements contained in the release.

While you can find all the changes for 4.3.2 in its Release Notes, here are some highlights:

  • It is a foundation for upcoming Spring Boot 1.4.1;

  • The RmiOutboundGateway now can be supplied with RmiProxyFactoryBeanConfigurer to get access to underlying RmiProxyFactoryBean for customization, e.g. ContextPropagatingRemoteInvocationFactory;

  • Added TcpConnectionFailedEvent - An event emitted when a connection could not be established for some reason;

  • The spring.integration.readOnly.headers global integration property to let to exclude some headers from replying, e.g. undesired or incompatible contentType, populated by some transformers by default.

Read more...

Java DSL for Spring Integration 1.2 Milestone 2 is available

I’m pleased to announce that the Java DSL for Spring Integration 1.2 M2 is available now!

First of all I’d like to thank everyone who created issues, raised Pull Requests, provided feedback or just asked questions on StackOverflow. Especial thanks for early adopters since the previous Milestone 1. With their help we have improved and fixed some issues with runtime flow registration.

The artifact org.springframework.integration:spring-integration-java-dsl:1.2.0.M2 is available in the Milestone repo. So, give it a shot and don’t hesitate to raise a GH issue for any feedback!

Read more...

Spring for Apache Kafka 1.0.3 available now

It is my pleasure to announce that the Spring for Apache Kafka 1.0.3 maintenance release is available now.

As usual, thanks to the community for any feedback and contribution as always!

This release contains several important bug fixes, including a memory leak when using manual acknowledgments; therefore an upgrade is highly recommended.

The addressed issues can be found here.

The project now properly handles kafka messages with null payloads, which is a common use case used to "delete" a key when using Kafka Log Compaction. @KafkaListener methods will now receive a null argument for such messages.

Read more...