Skip to content

Stream Applications 3.x to 4.0 Migration Guide

Chris Bono edited this page Oct 3, 2023 · 8 revisions

Migrating to 4.x applications

The following is a high-level list of changes to be aware of when migrating to the 4.x applications.

Library Updates

The biggest change is the move from Spring Boot 2.x to 3.x and Spring Framework 5.x to 6.x. Additionally, Java 17 is now required.

  • Java 17
  • Spring Framework 6.0.12
  • Spring Boot 3.1.4
  • Spring Integration 6.1.3
  • Spring Cloud 2022.0.4
  • Spring Cloud Functions 4.0.4
  • Spring Cloud Stream 4.0.4

New Applications

Apache Kafka Source and Sink

This "kafka" source consumes messages from Apache Kafka. This "kafka" sink publishes messages to Apache Kafka. The Apache Kafka client used by the applications is auto-configured by Spring Boot.

XMPP Source and Sink

The "xmpp" source enables receiving messages from an XMPP Server. The "xmpp" sink enables sending messages to a XMPP server. Since there is no Spring Boot auto-configuration for XMPP channel adapters, see XmppConnectionFactoryProperties for more information.

Header Filter Processor

Adds the ability to removes message headers. Its logic is based on the HeaderFilter from Spring Integration and auto-configures two properties: header.filter.remove (header name patterns) and header.filter.delete-all respectively.

Properties

Metrics Configuration Properties

The naming of the metrics registry-specific properties differ as follows:

  • 2.x: management.metrics.export.<meter-registry>.<property-path>
  • 3.x: management.<meter-registry>.metrics.export.<property-path>

For example:

  • 2.x: management.metrics.export.prometheus.enabled=true
  • 3.x: management.prometheus.metrics.export.enabled=true

Be sure that you use the 3.x format when configuring the latest stream apps.

Replacements

Apps Metadata Plugin

The metadata plugin used to generate the application docs and metadata has moved from it's original location to the Stream Applications repository. The Maven coordinates of the published plugin are unchanged and therefore this is only important if you need access to the source code (extend or use it directly in your own applications).

AWS Support Changes

The AWS S3 source and sink applications, and DynamoDB Metadata store, are now based on the AWS SDK v2, latest Spring Integration for AWS and an auto-configuration for AWS services in the Spring Cloud AWS. The AWS credentials, region provider, and custom endpoint, can now be simply configured via respective Spring Cloud AWS properties.

Debezium Support Changes

The Debezium source application has been upgraded to the latest Debezium engine and it was renamed from cdc-debezium-source to just debezium-source. It also now supports an auto-configuration for DebeziumEngine. See DebeziumProperties for more information.