Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreDear 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!
Now about the changes in the 1.2 RC1
:
errorChannel
We can now specify errorChannel
on the Poller definition. Previously we had to configure entire, separate MessagePublishingErrorHandler
:
e -> e.poller(Pollers.fixedDelay(100)
.errorChannel(filePollingErrorChannel())
Instead of:
@Bean
public ErrorHandler filePollingErrorHandler() {
MessagePublishingErrorHandler errorHandler =
new MessagePublishingErrorHandler();
errorHandler.setDefaultErrorChannel(filePollingErrorChannel());
return errorHandler;
}
...
e -> e.poller(Pollers.fixedDelay(100)
.errorHandler(filePollingErrorHandler())
After introduction late-binding support for the MessagePublishingErrorHandler
in Spring Integration Core, that will be even easier just with the bean name for the MessageChannel
.
Files.splitter()
spec now provides more options to configure underlying FileSplitter
:
.split(Files.splitter()
.markers(false)
.applySequence(true)
.charset("UTF-8"))
The manual flow registration process has undergone some improvements:
an IntegrationFlowRegistrationBuilder
is returned from the IntegrationFlowContext.registration(IntegrationFlow)
for providing more options during registration IntegrationFlow
bean and all dependent components;
an IntegrationFlowRegistration
is a result of IntegrationFlowRegistrationBuilder.register()
call. This object provides some useful IntegrationFlow
properties and lets to control the lifecycle of IntegrationFlow
associated with it;
you can now add additional beans to register, required by the provided IntegrationFlow
. For example DefaultFtpSessionFactory
is required by the Ftp.outboundAdapter()
. They are destroyed and removed from ApplicationContext
together with the IntegrationFlow
they are associated.
this.integrationFlowContext.registration(myFlow) .id("myFlow") .autoStartup(false) .addBean(new Foo()) .addBean("bar", new Bar()) .register();
See Gary Russell's amazing Sample about dynamic TCP Clients for more information.
We decided to drop Apache Kafka 0.8.x
support (Spring Integration for Apache Kafka 1.3.x
) in favor of Apache Kafka 0.9.x
and 0.10.x
. The recently introduced Kafka09
has been deleted and its content has been moved to the Kafka
factory. And now the dependency on the matter is Spring Integration for Apache Kafka 2.1.x
, based on the Spring for Apache Kafka 1.1.x
to provide Apache Kafka 0.10.x
. Meanwhile the same Kafka
DSL factory and dependent components can be used with the previous Spring Integration for Apache Kafka 2.0.x
version on classpath.
Apache Kafka 0.8.x
support can be achieved through the direct Spring Integration for Apache Kafka 1.3.x
adapters usage. Or you can simply copy/paste org.springframework.integration.dsl.kafka
package from Java DSL 1.1
to your project and continue to get a gain from fluent builder API of Kafka
factory!
We expect to have General Availability for version 1.2
in about a week. After that spring-integration-java-dsl
will definitely move to the Spring Integration Core 5.0
and Java 8 code base. The current 1.2
version will be still supported, but just for bug fixes.
Project Page | Documentation | Issues | Help