Skip to content

Spring Integration 4.0 to 4.1 Migration Guide

Artem Bilan edited this page Aug 21, 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.

##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