Skip to content

Spring Integration 4.3 to 5.0 Migration Guide

Artem Bilan edited this page Nov 17, 2016 · 36 revisions

IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE value typo

The closableResource typo in the IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE constant value has been fixed to the proper closeableResource. If application doesn't use IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE to access to an appropriate header, it is recommended to review any closableResource typo usage.

JMS Default Connection Factory Bean Name

JMS components can be configured using XML with no connection factory property; the framework uses a default bean name. Prior to version 5.0, this default bean name was connectionFactory. In order to align with Spring Boot's auto configuration, which configures a bean called jmsConnectionFacrory, Spring Integration now uses that bean name as the default. If your application relied on the previous behavior, you will need to rename your bean to jmsConnectionFactory or change the component definitions to explicitly reference your bean.

Reactor 3.0 support

The Reactor 2.0 isn't supported any more. The Messaging Gateway Promise return type from Reactor 2.0 has been replaced with the Mono type from Reactor 3.0. For all the Reactive Streams changes for new Mono type, please, refer to the Reactor Project Site.

Java DSL

The Spring Integration Java DSL has been merged to the Core project with Java 8 code base. The old project remains for the previous Spring Integration versions and isn't compatible with version 5.0. Although the project has been generally merged, some changes have happened:

The following classes have been moved :

  • All the classes from org.springframework.integration.dsl.core to org.springframework.integration.dsl.

  • From org.springframework.integration.dsl.support:

  • the Java 8 functions (Consumer, Function etc.) have been removed in favor of java.util.function package classes
  • Transformers to the org.springframework.integration.dsl;
  • BeanNameMessageProcessor to the org.springframework.integration.handler;
  • FunctionExpression to the org.springframework.integration.expression;
  • GenericHandler to the org.springframework.integration.handler;
  • MapBuilder, StringStringMapBuilder and PropertiesBuilder to the org.springframework.integration.support;
  • MessageProcessorMessageSource to the org.springframework.integration.endpoint;
  • org.springframework.integration.dsl.support.tuple classes have been replaced for usage for similar from the package reactor.util.function, which is now mandatory dependency Reactor 3.0.

  • Classes DslIntegrationConfigurationInitializer and IntegrationFlowBeanPostProcessor from the package org.springframework.integration.dsl.config have been moved to the org.springframework.integration.config.dsl.

  • Classes TransactionHandleMessageAdvice and TransactionInterceptorBuilder from the package org.springframework.integration.dsl.transaction have been moved to the org.springframework.integration.transaction.

Clone this wiki locally