Skip to content

Spring Integration 5.0 to 5.1 Migration Guide

Gary Russell edited this page Jun 1, 2018 · 16 revisions

Classes and Packages Tangles

  • move StaticMessageHeaderAccessor to root integration package
  • move acknowledgment related classes to a new acks package
  • move MMIH to handler.support, alongside argument resolvers, also HandlerMethodArgumentResolversHolder
  • move ErrorMessagePublisher to core
  • move PatternMatchUtils to support.utils
  • move MessageSourceManagement to support.management
  • remove direct reference to MicrometerMetricsCapter from IntegrationManagementSupport
  • add new class MetricsCaptorLoader
  • move OperationsCallback to inner interface in RemoteFileOperations
  • move HttpContextUtils to config
  • move IntegrationManagementConfigurer from management to config
  • make graph a top-level package
  • move classes from config.dsl package to dsl one
  • rename core event package to events

IntegrationFlowContext

The IntegrationFlowContext is now an interface and IntegrationFlowRegistration is an inner interface of the IntegrationFlowContext.

Dispatcher Exceptions

Exceptions caught and re-thrown by AbstractDispatcher are now more consistent:

  • A MessagingException of any kind, with a failedMessage property, is re-thrown unchanged
  • All other exceptions are wrapped in a MessageDeliveryException with the failedMessage property set

Previously:

  • A MessagingException of any kind, with a failedMessage property, was re-thrown unchanged
  • A MessagingException, with no failedMessage property, was wrapped in a MessagingException with the failedMessage property set
  • Other RuntimeException s were re-thrown unchanged
  • Checked exceptions were wrapped in a MessageDeliveryException with the failedMessage property set

Integration Evaluation Context Bean

An integrationSimpleEvaluationContext bean for the SimpleEvaluationContext is register now alongside with the integrationEvaluationContext bean for the StandardEvaluationContext. Therefore an injection for the EvaluationContext should be reconsidered for the appropriate bean to use.

Gemfire Module

Right now this module is based on the Open Source Spring Data for Apache Geode project as transitive dependency. To switch to the commercial Pivotal GemFire based Spring Data for Pivotal GemFire, exclude spring-data-geode from dependencies and add spring-data-gemfire:

<dependency>
    <groupId>org.springframework.integration</groupId>
    <artifactId>spring-integration-gemfire</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-geode</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-gemfire</artifactId>
</dependency>

AMQP contentType Header Mapping

The contentType header is no longer incorrectly mapped to the MessageProperties.headers map; it is only mapped to the MessageProperties.contentType property (which is represented as content_type in RabbitMQ. Previously the header was mapped in both places.

Clone this wiki locally