Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn behalf of the Spring Integration team I am pleased to announce that the Milestone 6 for the Spring Integration 5.0 version (5.0.0.M6
) is now available.
It is available for download from the Milestone Repository:
repositories {
maven { url 'http://repo.spring.io/libs-milestone' }
}
compile "org.springframework.integration:spring-integration-core:5.0.0.M6"
19 JIRAs (and some GitHub issues) made into this release, including bug fixes and a number of new features. Some highlights of features in the M6
, since the previously announced Milestone 5:
@Bean public IntegrationFlow sseFlow() { return IntegrationFlows .from(Http.inboundReactiveGateway("/sse") .requestMapping(m -> m.produces(MediaType.TEXT_EVENT_STREAM_VALUE))) .handle((p, h) -> Flux.just("foo", "bar", "baz")) .get(); }
This sample demonstrate how we can configure Server Side Events with the Spring Integration Channel Adapter which is fully based on the WebFlux
foundation and performs integration flow execution on demand, back-pressure manner.
IntegrationFlow
can now start from any interface, even without @MessagingGateway
annotation. That annotation is synthesized on background with default properties by the AnnotationGatewayProxyFactoryBean
. This trick opens for us possibility to start IntegrationFlow
from the java.util.function
interfaces - Function
, Consumer
and Supplier
. And that, in turn, gives us an interesting approach where we can expose an IntegrationFlow
as a Function using new Spring Cloud Function project:@Bean public IntegrationFlow uppercase(MongoOperations mongoOperations) { return IntegrationFlows.from(Function.class) .handle(MongoDb.outboundGateway(mongoOperations) .queryFunction(msg -> Query.query(Criteria.where("name") .is(msg.getPayload()))) .collectionNameExpression("headers.collection") .expectSingleResult(true) .entityClass(Person.class)) .get(); }
a new JdbcMetadataStore
is available now. This implementation is truly transaction-based and if subsequent flow after (S)FTP polling causes some error, no entries is stored in the DB because of transaction rollback.
The preserveTimestamp
algorithm for (S)FTP Inbound Channel Adapters has been fixed to throw an exception when local temporary copy cannot be renamed to the original file because the last one is busy in another process.
Special thanks to several community members for their ongoing active contributions to the framework; scan the commits and give them some kudos!
For a complete list of changes in 5.0
, also see the What’s New chapter in the reference manual.
There are still several features (Reactive and Testing) we would like to include into the current version, so stay tuned for next Milestones! We expect RC and subsequent GA somewhere in the end of October, beginning of November, - just before Spring Boot 2.0 GA
!
Any feedback, feature ideas, critics, bug reports and questions are welcome via appropriate communication channels:
Project Page | JIRA | Contributing | Help | Chat