Skip to content

Spring Integration 4.0 to 4.1 Migration Guide

Artem Bilan edited this page Aug 28, 2014 · 19 revisions

##Spring Framework 4.1 base line

Spring Integration 4.1 is based on Spring Framework 4.1 and isn't compatible with previous versions.

Some API has been moved to the Spring Messaging module and deprecated in Spring Integration, considering to be removed in future releases:

  • Payload, Header and Headers annotations from the org.springframework.integration.annotation package to respective annotations in the org.springframework.messaging.handler.annotation package.

##Spring AMQP 1.4

Starting with version 1.4 Spring AMQP Framewrok has been improved to use Spring Messaging abstraction. Some API has been moved frm Spring Integration to Spring AMQP:

  • org.springframework.integration.amqp.AmqpHeaders -> org.springframework.amqp.support.AmqpHeaders. The former is deprecated now and extends the last one for backward compatibility.

##Removal of deprecated API

  • The GatewayProxyFactoryBean no longer provides the #method expression evaluation variable (which contained the Method name) in favor of #gatewayMethod, which provides access to the entire Method object.
  • The spring_reply_correlation and spring_reply_to AMQP header aren't mapped by default any more.

##Inbound Endpoints Lifecycle Phase

The default phase of SourcePollingChannelAdapterFactoryBean, AbstractPollingEndpoint, MessageProducerSupport, JmsMessageDrivenEndpoint has been changed to the Integer.MAX_VALUE / 2 instead of 0 before. The bigger phase value means that component will be started later and stopped earlier, than those who has less value. Previously, the same 0 default value caused an issue when Consumer Endpoint might be stopped on application stop before Inbound Endpoint and the "Dispatcher has no subscribers" exception has been thrown. The similar issue we might have in a case, when Inbound Endpoint has been started before a Consumer Endpoint. Hence we ended up with losing messages issue.

##JMX

  • The <int-jmx:mbean-exporter/> no longer supports a shutdown-executor attribute.
  • The SftpPersistentAcceptOnceFileListFilter use getFilename instead of getLongname.

##HTTP

  • The Content-Disposition header is now mapped as standard one using DefaultHttpHeaderMapper. Previously it was mapped as user-defined with provided prefix, X- by default.
Clone this wiki locally