- This release is compatible with Spring Boot 2.5.0-2.5.11, 2.6.0-2.6.5. (Note: 2.5.x (x>11) and 2.6.y (y>5) should be supported, but they aren't tested with this release.)
- This release is compatible with Spring Cloud 2020.0.3-2020.0.5, 2021.0.0-2021.0.1. (Note: 2020.0.x (x>5) and 2021.0.y (y>1) should be supported, but they aren't tested with this release.)
- Upgrade dependency according to spring-boot-dependencies:2.6.3 and spring-cloud-dependencies:2021.0.0.
- Add
Automatic-Module-Name
for all Spring Cloud Azure modules and change the root pacakge names to match the module names #27350, #27420.
- Delete the direct reference of following Azure SDKs #27850:
- azure-core
- azure-core-management
- azure-core-amqp
- azure-cosmos
- azure-data-appconfiguration
- azure-identity
- azure-messaging-eventhubs
- azure-messaging-eventhubs-checkpointstore-blob
- azure-messaging-servicebus
- azure-security-keyvault-certificates
- azure-security-keyvault-secrets
- azure-storage-blob
- azure-storage-file-share
- azure-storage-queue
- azure-core-serializer-json-jackson
- Import
azure-sdk-bom:1.2.0
#27850. - Use
azure-cosmos:4.28.0
instead of the version4.27.0
inazure-sdk-bom
#27850. - Upgrade
azure-resourcemanager
to 2.13.0. - Upgrade
azure-spring-data-cosmos
to 3.19.0.
This section includes changes in spring-cloud-azure-starter-active-directory
module.
- Delete the AAD conditional access filter. #27727
- Rename classes and methods #27273, #27579:
- Rename classes from
AAD/AADB2C
toAad/AadB2c
. - Rename method in
UserPrincipal
fromgetKid
togetKeyId
. - Rename methods in
AADAuthenticationProperties
fromallowedGroupIdsConfigured/allowedGroupNamesConfigured
toisAllowedGroupIdsConfigured/isAllowedGroupNamesConfigured
. - Rename methods in
AADAuthorizationServerEndpoints
fromauthorizationEndpoint/endSessionEndpoint/jwkSetEndpoint/tokenEndpoint
togetAuthorizationEndpoint/getEndSessionEndpoint/getJwkSetEndpoint/getTokenEndpoint
. - Rename method in
UserGroupProperties
fromgetUseTransitiveMembers
toisUseTransitiveMembers
.
- Rename classes from
- Improve
AadJwt*Validator
andAadTokenClaim
#27365:- Delete
AadJwtClaimValidator
and useJwtClaimValidator
instead. - Delete
AadJwtAudienceValidator
and useJwtClaimValidator
instead. - Rename
AadTokenClaim
toAadJwtClaimNames
.
- Delete
- Support constructing
AadOAuth2AuthorizationRequestResolver
withauthorizationRequestBaseUri
#26494. - Make
AadWebSecurityConfigurerAdapter
more configurable #27802.
- Delete the dependencies
org.springframework.boot:spring-boot-starter-webflux
,com.fasterxml.jackson.core:jackson-databind
,io.projectreactor.netty:reactor-netty
#27727.
This section includes changes in spring-cloud-azure-autoconfigure
module.
- Refactor retry options #27332, #27586.
- Delete properties
spring.cloud.azure.retry.timeout
andspring.cloud.azure.<azure-service>.retry.timeout
. - Add properties
spring.cloud.azure.retry.amqp.try-timeout
andspring.cloud.azure.<azure-amqp-service>.retry.try-timeout
instead. (<azure-amqp-service>
means this option only applies to AMQP-based service clients). - Delete properties
spring.cloud.azure.retry.back-off.max-attempts
,spring.cloud.azure.retry.back-off.delay
,spring.cloud.azure.retry.back-off.max-delay
, andspring.cloud.azure.retry.backoff.multiplier
. - Delete properties
spring.cloud.azure.<azure-service>.retry.back-off.max-attempts
,spring.cloud.azure.<azure-service>.retry.back-off.delay
,spring.cloud.azure.<azure-service>.retry.back-off..max-delay
, andspring.cloud.azure.<azure-service>.retry.backoff.multiplier
. - Add properties
spring.cloud.azure.retry.mode
,spring.cloud.azure.<azure-service>.retry.mode
,spring.cloud.azure.retry.exponential.*
,spring.cloud.azure.<azure-service>.retry.exponential.*
,spring.cloud.azure.retry.fixed*
, andspring.cloud.azure.<azure-service>.retry.fixed.*
instead:spring.cloud.azure.retry.exponential.base-delay
.spring.cloud.azure.retry.exponential.max-delay
.spring.cloud.azure.retry.exponential.max-retries
.spring.cloud.azure.retry.fixed.delay
.spring.cloud.azure.retry.fixed.max-retries
.
- Delete properties
- Refactor proxy options #27402:
- Change
spring.cloud.azure.<azure-service>.proxy.authentication-type
tospring.cloud.azure.<azure-amqp-service>.proxy.authentication-type
. (<azure-amqp-service>
means this property only applies to AMQP-based service clients). - Delete
spring.cloud.azure.proxy.authentication-type
and addspring.cloud.azure.proxy.amqp.authentication-type
instead.
- Change
- Refactor client options #27402:
- Change
spring.cloud.azure.<azure-service>.client.headers
tospring.cloud.azure.<azure-http-service>.client.headers
. (<azure-http-service>
means this property only applies to HTTP-based service clients). - Delete
spring.cloud.azure.client.headers
and addspring.cloud.azure.client.http.headers
instead.
- Change
- Rename properties
spring.cloud.azure.profile.cloud
andspring.cloud.azure.<azure-service>.cloud
tospring.cloud.azure.profile.cloud-type
andspring.cloud.azure.<azure-service>.cloud-type
#27258. - Delete properties
spring.cloud.azure.credential.managed-identity-client-id
andspring.cloud.azure.<azure-service>.credential.managed-identity-client-id
. Addspring.cloud.azure.credential.managed-identity-enabled
andspring.cloud.azure.<azure-service>.credential.managed-identity-enabled
instead #27118, #27258. - Change type of JWK/JWT time duration properties from
int/long
toDuration
#27579:spring.cloud.azure.active-directory.jwt-connect-timeout
andspring.cloud.azure.active-directory.b2c.jwt-connect-timeout
.spring.cloud.azure.active-directory.jwt-read-timeout
andspring.cloud.azure.active-directory.b2c.jwt-read-timeout
.spring.cloud.azure.active-directory.jwk-set-cache-lifespan
.spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
.
- Delete deprecated properties for AAD #26598:
spring.cloud.azure.active-directory.allow-telemetry
.spring.cloud.azure.active-directory.active-directory-groups
.spring.cloud.azure.active-directory.authorization-clients.graph.on-demand
spring.cloud.azure.active-directory.user-group.allowed-groups
.spring.cloud.azure.active-directory.user-group.enable-full-list
.
- Delete deprecated properties for AAD B2C #26598:
spring.cloud.azure.active-directory.b2c.allow-telemetry
.spring.cloud.azure.active-directory.b2c.tenant
.
- Delete properties
spring.cloud.azure.cosmos.permissions
. Please use the builder customizer instead. #27236. - Delete properties
spring.cloud.azure.cosmos.gateway-connection.proxy
. Please usespring.cloud.azure.cosmos.proxy
instead #27241. - Rename property
spring.cloud.azure.eventhubs.processor.partition-ownership-expiration-interval
tospring.cloud.azure.eventhubs.processor.load-balancing.partition-ownership-expiration-interval
#27331. - Change
KeyVaultPropertySource
's configuration properties 27651:- Property
spring.cloud.azure.keyvault.secret.enabled
only used to disable autoconfigureSecretClient
bean, it can't be used to disable insertingKeyVaultPropertySource
. Usespring.cloud.azure.keyvault.secret.property-source-enabled
to disable insertingKeyVaultPropertySource
. - Property
spring.cloud.azure.keyvault.secret.endpoint
only used to autoconfigureSecretClient
bean, it can't be used to configureKeyVaultPropertySource
. Usespring.cloud.azure.keyvault.secret.property-sources[].endpoint
to configureKeyVaultPropertySource
. - For properties like
credential
,profile
,client
,proxy
,retry
, ifspring.cloud.azure.keyvault.secret.property-sources[].xxx
is not configured, it will only take value fromspring.cloud.azure.xxx
, not take value fromspring.cloud.azure.keyvault.secret.xxx
anymore. - Conclusion:
- Here are all
SecretClient
bean related properties:spring.cloud.azure.keyvault.secret.enabled
,spring.cloud.azure.keyvault.secret.xxx
,spring.cloud.azure.xxx
. - Here are all
KeyVaultPropertySource
related properties:spring.cloud.azure.keyvault.secret.property-source-enabled
,spring.cloud.azure.keyvault.secret.property-sources[].xxx
,spring.cloud.azure.xxx
.
- Here are all
- Property
- Enhance autoconfiguration for a Storage File Share client #26645:
- Add auto-configuration for File Share directory client.
- Rename property
spring.cloud.azure.storage.fileshare.file-name
tospring.cloud.azure.storage.fileshare.file-path
. - Add property
spring.cloud.azure.storage.fileshare.directory-path
.
- Delete
EventHubsInitializationContextConsumer
,EventHubsCloseContextConsumer
,EventHubsErrorContextConsumer
andServiceBusErrorContextConsumer
. Please useConsumer<>
directly if you want to configure them #27288. - Delete the bean of
EventHubsProcessorContainer
in the autoconfiguration for Event Hubs Spring Messaging support. When needed, a user-definedEventHubsMessageListenerContainer
bean should be provided for the replacement #27216. - Delete the bean of
ServiceBusProcessorContainer
in the autoconfiguration for Service Bus Spring Messaging support. When needed, a user-definedServiceBusMessageListenerContainer
bean should be provided for the replacement #27216. - Rename Beans in
AadAuthenticationFilterAutoConfiguration
fromazureADJwtTokenFilter\getJWTResourceRetriever\getJWKSetCache
toaadAuthenticationFilter\jwtResourceRetriever\jwkSetCache
#27301. - Rename Bean in
AadB2cResourceServerAutoConfiguration
fromaadIssuerJWSKeySelector
toaadIssuerJwsKeySelector
#27301. - Change non-SDK defined boolean configuration properties from
Boolean
toboolean
#27321. - Delete unused API from
KeyVaultOperation
andKeyVaultPropertySource
#27722. - Delete
Propagator
from the constructor ofSleuthHttpPolicy
#27621. - Move classes for internal usage to the implementation pacakge #27113.
- Add a compatibility verifier for Spring Cloud Azure #25437.
- Support configuring an
AzureTokenCredentialResolver
for each*ClientBuilderFactory
#26792. - Add more hints for configuration properties in
additional-spring-configuration-metadata.json
file #26600. - Add descriptions and logs for
namespacce
property of Service Bus and Event Hubs #27053.
- Fix AAD autoconfiguration activated when no web dependencies on the classpath #26915.
- Fix inconsistency between
getPropertyNames()
andcontainsProperty(String name)
inKeyVaultPropertySource
#23815. - Fix Cosmos direct/gateway connection properties cannot be configured bug #27241.
- Fix Cosmos default connection mode not being set bug #27236.
- Fix
DefaultAzureCredential
still being used when global credential propertiesspring.cloud.azure.credential.*
provided bug #27626. - Fix connection strings retrieved from Azure Resource Manager not being used for Spring Messaging Azure components' autoconfiguration bug #27831.
- Fix
Azure*ResourceManagerAutoconfigure
being activated whenazure-resourcemanager
is on classpath but service sdk isn't bug #27703. - Fix User-Agent for Spring Cloud Azure not loading correctly bug #27303.
This section includes changes in spring-cloud-azure-actuator
module.
- Move classes for internal usage to the implementation package #27263.
- Add health indicator for Key Vault Certificate client #27706.
This section includes changes in spring-cloud-azure-stream-binder-eventhubs
module.
- Change the type of the binding producer property of
send-timeout
fromlong
toDuration
#26625. - Change the message header prefix from
azure_eventhub
toazure_eventhubs_
#27746.
- Support
EventHubsProducerFactoryCustomizer
andEventHubsProcessorFactoryCustomizer
inEventHubsMessageChannelBinder
#27351, #27653, #27775.
- Fix exception when trying to send a message that was received as part of a batch #26213.
- Fix bug when provisioning an Event Hubs consumer group not uses the correct consumer group name #26622.
This section includes changes in spring-cloud-azure-stream-binder-servicebus
module.
- Change the type of the binding producer property
send-timeout
fromlong
toDuration
#26625. - Rename property
spring.cloud.stream.servicebus.bindings.<binding-name>.consumer.session-aware
tospring.cloud.stream.servicebus.bindings.<binding-name>.consumer.session-enabled
#27331. - Delete message header of
AzureHeaders.RAW_ID
. Please useServiceBusMessageHeaders.MESSAGE_ID
instead #27675. - Delete property
spring.cloud.stream.servicebus.bindings.<binding-name>.consumer.checkpoint-mode
. Please usespring.cloud.stream.servicebus.bindings.<binding-name>.consumer.auto-complete
instead. To disable the auto-complete mode is equivalent toMANUAL
checkpoint mode and to enable it will trigger theRECORD
mode #27615, #27646.
- Support converting all headers and properties exposed directly by
ServiceBusReceivedMessage
when receiving messages #27675, newly supported headers and properties can be get according to the keys of:- ServiceBusMessageHeaders.DEAD_LETTER_ERROR_DESCRIPTION
- ServiceBusMessageHeaders.DEAD_LETTER_REASON
- ServiceBusMessageHeaders.DEAD_LETTER_SOURCE
- ServiceBusMessageHeaders.DELIVERY_COUNT
- ServiceBusMessageHeaders.ENQUEUED_SEQUENCE_NUMBER
- ServiceBusMessageHeaders.ENQUEUED_TIME
- ServiceBusMessageHeaders.EXPIRES_AT
- ServiceBusMessageHeaders.LOCK_TOKEN
- ServiceBusMessageHeaders.LOCKED_UNTIL
- ServiceBusMessageHeaders.SEQUENCE_NUMBER
- ServiceBusMessageHeaders.STATE
- ServiceBusMessageHeaders.SUBJECT
- Support the message header of
ServiceBusMessageHeaders.SUBJECT
to specify the AMQP property ofsubject
when sending messages #27675. - Support
ServiceBusProducerFactoryCustomizer
andServiceBusProcessorFactoryCustomizer
inServiceBusMessageChannelBinder
#27351, #27653, #27775.
This section includes changes in the spring-integration-azure-eventhubs
module.
- Move classes for internal usage to the implementation pacakge #27281.
- Change the message header prefix from
azure_eventhub
toazure_eventhubs_
#27746. - Refactor the constructors of
EventHubsInboundChannelAdapter
toEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
andEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
#27216, #27421.
This section includes changes in the spring-integration-azure-servicebus
module.
- Move classes for internal usage to the implementation pacakge #27281.
- Delete message header of
AzureHeaders.RAW_ID
. Please useServiceBusMessageHeaders.MESSAGE_ID
instead #27675. - Delete class
CheckpointConfig
. Please useServiceBusContainerProperties#setAutoComplete
instead. To disable the auto-complete mode is equivalent toMANUAL
checkpoint mode and to enable it will trigger theRECORD
mode #27615, #27646. - Refactor the constructors of
ServiceBusInboundChannelAdapter
toServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
andServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
#27216, #27421.
- Support converting all headers and properties exposed directly by
ServiceBusReceivedMessage
when receiving messages #27675, newly supported headers and properties can be get according to the keys of:- ServiceBusMessageHeaders.DEAD_LETTER_ERROR_DESCRIPTION
- ServiceBusMessageHeaders.DEAD_LETTER_REASON
- ServiceBusMessageHeaders.DEAD_LETTER_SOURCE
- ServiceBusMessageHeaders.DELIVERY_COUNT
- ServiceBusMessageHeaders.ENQUEUED_SEQUENCE_NUMBER
- ServiceBusMessageHeaders.ENQUEUED_TIME
- ServiceBusMessageHeaders.EXPIRES_AT
- ServiceBusMessageHeaders.LOCK_TOKEN
- ServiceBusMessageHeaders.LOCKED_UNTIL
- ServiceBusMessageHeaders.SEQUENCE_NUMBER
- ServiceBusMessageHeaders.STATE
- ServiceBusMessageHeaders.SUBJECT
- Support the message header of
ServiceBusMessageHeaders.SUBJECT
to specify the AMQP property ofsubject
when sending messages #27675.
This section includes changes in the spring-messaging-azure
module.
- Move class
com.azure.spring.messaging.PartitionSupplier
to librarycom.azure.spring:spring-messaging-azure-eventhubs
#27422. - Delete unused interfaces:
ReceiveOperation
andSubscribeOperation
#27265. - Refactor the
*MessageListenerContainer
#27216, #27543:- Add
MessagingMessageListenerAdapter
to adapt Spring Messaging listeners. - Rename
*ProcessingListener
to*MessageListener
.
- Add
- Delete
getter/setter
methods fromAzureCheckpointer
#27672.
This section includes changes in the spring-messaging-azure-eventhubs
module.
- Move classes for internal usage to the implementation pacakge #27396.
- Move class
PartitionSupplier
from packagecom.azure.spring.messaging
tocom.azure.spring.messaging.eventhubs.core
#27422. - Delete parameter of
PartitionSupplier
from the sending API for a single message inEventHubsTemplate
#27422. Please use message headers ofcom.azure.spring.messaging.AzureHeaders.PARTITION_ID
andcom.azure.spring.messaging.AzureHeaders.PARTITION_KEY
instead #27422. - Change the message header prefix from
azure_eventhub
toazure_eventhubs_
#27746. - Refactor the
EventHubsMessageListenerContainer
#27216, #27543:- Change
EventHubsProcessorContainer
toEventHubsMessageListenerContainer
. - Add class
EventHubsContainerProperties
for constructing aEventHubsMessageListenerContainer
. - Add
EventHubsErrorHandler
forEventHubsMessageListenerContainer
. - Rename
BatchEventProcessingListener
andRecordEventProcessingListener
toEventHubsBatchMessageListener
andEventHubsRecordMessageListener
.
- Change
- Support adding builder custoimzers in
DefaultEventHubsNamespaceProducerFactory
andDefaultEventHubsNamespaceProcessorFactory
#27452.
This section includes changes in the spring-messaging-azure-servicebus
module.
- Delete parameter of
PartitionSupplier
from the sending API for a single message inServiceBusTemplate
#27349. Please use message header ofcom.azure.spring.messaging.AzureHeaders.PARTITION_KEY
instead #27422. - Delete message header of
AzureHeaders.RAW_ID
. Please useServiceBusMessageHeaders.MESSAGE_ID
instead #27675, #27820. - Refactor the
ServiceBusMessageListenerContainer
#27216, #27543:- Change
ServiceBusProcessorContainer
toServiceBusMessageListenerContainer
. - Add class
ServiceBusContainerProperties
for constructing aServiceBusMessageListenerContainer
. - Add
ServiceBusErrorHandler
forServiceBusMessageListenerContainer
. - Rename
MessageProcessingListener
toServiceBusRecordMessageListener
.
- Change
- Change APIs in
ServiceBusProcessorFactory.Listener
#27770:- Change from
processorAdded(String name, String subscription, ServiceBusProcessorClient client)
toprocessorAdded(String name, ServiceBusProcessorClient client)
. - Change from
processorRemoved(String name, String subscription, ServiceBusProcessorClient client)
toprocessorRemoved(String name, ServiceBusProcessorClient client)
.
- Change from
- Support converting all headers and properties exposed directly by
ServiceBusReceivedMessage
when receiving messages #27832, newly supported headers and properties can be get according to the keys of:- ServiceBusMessageHeaders.DEAD_LETTER_ERROR_DESCRIPTION
- ServiceBusMessageHeaders.DEAD_LETTER_REASON
- ServiceBusMessageHeaders.DEAD_LETTER_SOURCE
- ServiceBusMessageHeaders.DELIVERY_COUNT
- ServiceBusMessageHeaders.ENQUEUED_SEQUENCE_NUMBER
- ServiceBusMessageHeaders.ENQUEUED_TIME
- ServiceBusMessageHeaders.EXPIRES_AT
- ServiceBusMessageHeaders.LOCK_TOKEN
- ServiceBusMessageHeaders.LOCKED_UNTIL
- ServiceBusMessageHeaders.SEQUENCE_NUMBER
- ServiceBusMessageHeaders.STATE
- ServiceBusMessageHeaders.SUBJECT
- Support the message header of
ServiceBusMessageHeaders.SUBJECT
to specify the AMQP property ofsubject
when sending messages #27675. - Support adding builder custoimzers in
DefaultServiceBusNamespaceProducerFactory
andDefaultServiceBusNamespaceProcessorFactory
#27452, #27820.
This section includes changes in spring-messaging-azure-storage-queue
module.
- Delete the dependencies
com.fasterxml.jackson.core:jackson-databind
. #27727
- Delete parameter of
PartitionSupplier
from the sending API for a single message inStorageQueueTemplate
#27422.
Please refer to Spring Cloud Azure Migration Guide for 4.0 to learn how to migrate to version 4.0.
- Support Spring Boot version: 2.5.5+ and 2.6.0 - 2.6.1.
- Support Spring Cloud version: 2020.0.3+ and 2021.0.0.
Upgrade dependency according to spring-boot-dependencies:2.6.1 and spring-cloud-dependencies:2021.0.0.
This section includes changes in the spring-cloud-azure-autoconfigure
module.
- Enable
Caching
andPooling
ConnectionFactory autoconfiguration for Service Bus JMS #26072. - Support all configuration options of the initial position when processing an event hub #26434.
- Support autoconfiguration of
QueueClient
by adding configuration propertyspring.cloud.azure.storage.queue.queue-name
#26382. - Improve the
spring-configuration-metadata.json
#26292, #26274. - Support
StorageQueueMessageConverter
as a bean to support customize ObjectMapper #26200. - Support
EventHubsMessageConverter
as a bean to support customize ObjectMapper #26200.
- Change AAD configuration properties to use the namespace for credential and environment properties #25646.
- Property name "spring.cloud.azure.active-directory.tenant-id" changed to "spring.cloud.azure.active-directory.profile.tenant-id".
- Property name "spring.cloud.azure.active-directory.client-id" changed to "spring.cloud.azure.active-directory.credential.client-id".
- Property name "spring.cloud.azure.active-directory.client-secret" changed to "spring.cloud.azure.active-directory.credential.client-secret".
- Property name "spring.cloud.azure.active-directory.base-uri" changed to "spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint".
- Property name "spring.cloud.azure.active-directory.graph-base-uri" changed to "spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint".
- Property name "spring.cloud.azure.active-directory.graph-membership-uri" changed to "spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint" and "spring.cloud.azure.active-directory.user-group.use-transitive-members".
- Change AAD B2C configuration properties to use the namespace for credential and environment properties #25799.
- Change Event Hubs processor configuration properties
spring.cloud.azure.eventhbs.processor.partition-ownership-expiration-interval
tospring.cloud.azure.eventhbs.processor.load-balancing.partition-ownership-expiration-interval
#25851. - Change Event Hubs configuration properties
spring.cloud.azure.eventhubs.fqdn
tospring.cloud.azure.eventhubs.fully-qualified-namespace
#25851. - Rename all
*CP
classes to*ConfigurationProperties
#26209.
- Fix global HTTP client properties
spring.cloud.azure.client.http.*
not set correctly #26190. - Fix Cosmos properties
spring.cloud.azure.cosmos.proxy.*
not set correctly #25690. - Fix
PoolAcquirePendingLimitException
when usingEventProcessorClient
orspring-cloud-azure-stream-binder-eventhubs
#26027.
This section includes changes in spring-cloud-azure-stream-binder-eventhubs
module.
-
For the batch consuming mode, change the message header names converted from batched messages #26291.
- Change message header from
azure_eventhub_enqueued_time
toazure_eventhub_batch_converted_enqueued_time
. - Change message header from
azure_eventhub_offset
toazure_eventhub_batch_converted_offset
. - Change message header from
azure_eventhub_sequence_number
toazure_eventhub_batch_converted_sequence_number
. - Change message header from
azure_partition_key
toazure_batch_converted_partition_key
.
- Change message header from
-
When publish messages to Event Hubs, ignore all message headers converted from batched messages #26213.
Headers include:
azure_eventhub_batch_converted_enqueued_time
azure_eventhub_batch_converted_offset
azure_eventhub_batch_converted_sequence_number
azure_batch_converted_partition_key
azure_eventhub_batch_converted_system_properties
azure_eventhub_batch_converted_application_properties
-
Expose message header
azure_eventhub_last_enqueued_event_properties
#25960. -
Improve logging information when converting between
com.azure.messaging.eventhubs.EventData
andorg.springframework.messaging.Message
#26291. -
Fix
PoolAcquirePendingLimitException
when usingEventHubsProcessorContainer
#26027.
This section includes changes in spring-messaging-azure-eventhubs
and spring-integration-azure-eventhubs
modules.
- Expose message header
azure_eventhub_last_enqueued_event_properties
inspring-integration-azure-eventhubs
module #25960.
- Refactor
spring-messaging-azure-eventhubs
message converter #26291.- Rename
EventHubBatchMessageConverter
toEventHubsBatchMessageConverter
. - Refactor
EventHubsBatchMessageConverter
by disabling the ability of converting Spring Message to EventData. - Improve logging information when converting between
com.azure.messaging.eventhubs.EventData
andorg.springframework.messaging.Message
.
- Rename
- Change
DefaultEventHubsNamespaceProcessorFactory
constructor parameter type fromPropertiesSupplier<Tuple2<String, String>, ProcessorProperties>
toPropertiesSupplier<ConsumerIdentifier, ProcessorProperties>
#26200.
- Fix
PoolAcquirePendingLimitException
when usingEventHubsProcessorContainer
#26027. - Fix
EventHubsTemplate
not sending all messages in a collection #24445.
This section includes changes in spring-messaging-azure-servicebus
and spring-integration-azure-servicebus
modules.
- Change
DefaultServiceBusNamespaceProcessorFactory
constructor parameter type fromPropertiesSupplier<Tuple2<String, String>, ProcessorProperties>
toPropertiesSupplier<ConsumerIdentifier, ProcessorProperties>
#26200. - Refactor
ServiceBusInboundChannelAdapter
constructors #26200.
This section includes changes in spring-messaging-azure-storage-queue
and spring-integration-azure-storage-queue
modules.
- Refactor
spring-messaging-azure-storage-queue
module #26273.- Remove
StorageQueueOperation
. - Remove configuration of checkpoint mode for
StorageQueueTemplate
, and support only MANUAL mode. - Remove auto creating Storage Queue when send/receive messages via
StorageQueueTemplate
.
- Remove
This section includes changes in spring-cloud-azure-core
, spring-cloud-azure-service
, and spring-cloud-azure-resourcemanager
modules.
- Refactor
spring-cloud-azure-core
module #25851.- Support JPMS.
- Refactor
spring-cloud-azure-service
module #25851. - Refactor
spring-cloud-azure-resourcemanager
module #25851.
- Fix exception thrown by
AzureStorageFileProtocolResolver
andAzureStorageBlobProtocolResolver
when target file, directory or container does not exist #25916.
- Refactor the test structure and increase the test coverage #23773, #26175.
- Improve Java code documentation #24332.
- Improve User-Agent headers for Spring Cloud Azure libraries #25892, #26122.
- Improve Sample Projects.
- Improve Spring Cloud Azure Reference Doc.
Please refer to Spring Cloud Azure Migration Guide for 4.0 to learn how to migrate to version 4.0.
This section includes changes in spring-cloud-azure-autoconfigure
module.
- Remove the health indicator for
KeyVaultEnvironmentPostProcessor
#24309.
- Support batch consumers.
- Change artifact id from
azure-spring-cloud-stream-binder-eventhubs
tospring-cloud-azure-stream-binder-eventhubs
. - Change the binder type from
eventhub
toeventhubs
. - Change the Spring Cloud Stream Binding extended properties prefix from
spring.cloud.stream.eventhub
tospring.cloud.stream.eventhubs
. - BATCH checkpoint-mode only works in batch-consuming mode.
- Combine libraries of
azure-spring-cloud-stream-binder-servicebus-queue
andazure-spring-cloud-stream-binder-servicebus-topic
tospring-cloud-azure-stream-binder-servicebus
with new binder type asservicebus
. - When using the binder to send messages, one of the following two attributes must be provided:
- spring.cloud.stream.servicebus.bindings.{channel-name}.producer.entity-type
- spring.cloud.azure.servicebus.producer.entity-type
- Provide the ability of interacting with both queue and topic.
- Change artifact id from
azure-spring-cloud-starter-eventhubs
tospring-cloud-azure-starter-integration-eventhubs
. - Annotation of
@AzureMessageListeners
,@AzureMessageListener
and@EnableAzureMessaging
are dropped. - Drop
RxJava
support ofEventHubRxOperation
andEventHubRxTemplate
and supportReactor
only. - Drop
EventHubOperation
, and move itssubscribe
API to class ofEventHubsProcessorContainer
. - Rename
EventHubsInboundChannelAdapter
asEventHubsInboundChannelAdapter
to keep consistent with the service of Azure Event Hubs, and change constructor signature as well.
- Change
CheckpointConfig
instantiation style to simple constructor instead of build style.
- Change artifact id from
azure-spring-integration-eventhubs
tospring-integration-azure-eventhubs
. - Annotation of
@AzureMessageListeners
,@AzureMessageListener
and@EnableAzureMessaging
are dropped. - Drop
RxJava
support ofEventHubRxOperation
andEventHubRxTemplate
and supportReactor
only. - Drop
EventHubOperation
, and move itssubscribe
API to class ofEventHubsProcessorContainer
. - Rename
EventHubsInboundChannelAdapter
asEventHubsInboundChannelAdapter
to keep consistent with the service of Azure Event Hubs, and change constructor signature as well.
- Change
CheckpointConfig
instantiation style to simple constructor instead of build style.
- Change artifact id from
azure-spring-cloud-starter-servicebus
tospring-cloud-azure-starter-integration-servicebus
. - Combine the original
ServiceBusQueueTemplate#sendAsync
andServiceBusTopicTemplate#sendAsync
asServiceBusTemplate#sendAsync
and drop classes ofServiceBusQueueTemplate
andServiceBusTopicTemplate
. - Drop
CompletableFuture
support of ServiceBusTemplate and supportReactor
instead. - Drop interface of
ServiceBusQueueOperation
andServiceBusTopicOperation
. - Drop API of
ServiceBusQueueOperation#abandon
andServiceBusQueueOperation#deadletter
. - Combine the original
ServiceBusQueueTemplate#subscribe
andServiceBusTopicTemplate#subscribe
asServiceBusProcessorClient#subscribe
. - Deprecate the interface of
SubscribeOperation
. - Add new API of
setDefaultEntityType
for ServiceBusTemplate, the default entity type ofServiceBusTemplate
is required when no bean ofPropertiesSupplier<String, ProducerProperties>
is provided for theProducerProperties#entityType
. - Drop class of
ServiceBusQueueInboundChannelAdapter
andServiceBusTopicInboundChannelAdapter
and combine them asServiceBusInboundChannelAdapter
. - Class of
DefaultMessageHandler
is moved fromcom.azure.spring.integration.core
to packagecom.azure.spring.integration.handler
- Provide the ability to connect to multiple Azure Service Bus entities in different namespaces.
- Change artifact id from
azure-spring-integration-servicebus
tospring-integration-azure-servicebus
. - Combine the original
ServiceBusQueueTemplate#sendAsync
andServiceBusTopicTemplate#sendAsync
asServiceBusTemplate#sendAsync
and drop classes ofServiceBusQueueTemplate
andServiceBusTopicTemplate
. - Drop and
CompletableFuture
support of ServiceBusTemplate and supportReactor
instead. - Drop interface of
ServiceBusQueueOperation
andServiceBusTopicOperation
. - Drop API of
ServiceBusQueueOperation#abandon
andServiceBusQueueOperation#deadletter
. - Combine the original
ServiceBusQueueTemplate#subscribe
andServiceBusTopicTemplate#subscribe
asServiceBusProcessorClient#subscribe
. - Deprecate the interface of
SubscribeOperation
. - Add new API of
setDefaultEntityType
for ServiceBusTemplate, the default entity type ofServiceBusTemplate
is required when no bean ofPropertiesSupplier<String, ProducerProperties>
is provided for theProducerProperties#entityType
. - Drop class of
ServiceBusQueueInboundChannelAdapter
andServiceBusTopicInboundChannelAdapter
and combine them asServiceBusInboundChannelAdapter
. - Class of
DefaultMessageHandler
is moved fromcom.azure.spring.integration.core
to packagecom.azure.spring.integration.handler
- Provide the ability to connect to multiple Azure Service Bus entities in different namespaces.
- Annotation of
@AzureMessageListeners
,@AzureMessageListener
and@EnableAzureMessaging
are dropped. - Change artifact id from
azure-spring-cloud-messaging
tospring-messaging-azure
.
- Change artifact id from
azure-spring-boot-starter-servicebus-jms
tospring-cloud-azure-starter-servicebus-jms
.
- Change artifact id from
azure-spring-integration-storage-queue
tospring-integration-azure-storage-queue
. - Class of
DefaultMessageHandler
is moved fromcom.azure.spring.integration.core
to packagecom.azure.spring.integration.handler
. - Class of
StorageQueueMessageSource
is moved fromcom.azure.spring.integration.core
to packagecom.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource
. - Class of
StorageQueueOperation
is moved fromcom.azure.spring.integration.storage.queue.StorageQueueOperation
to packagecom.azure.spring.storage.queue.core.StorageQueueOperation
. - Class of
StorageQueueTemplate
is moved fromcom.azure.spring.integration.storage.queue.StorageQueueTemplate
to packagecom.azure.spring.storage.queue.core.StorageQueueTemplate
.
- Change artifact id from
azure-spring-cloud-starter-storage-queue
tospring-cloud-azure-starter-integration-storage-queue
. - Class of
DefaultMessageHandler
is moved fromcom.azure.spring.integration.core
to packagecom.azure.spring.integration.handler
. - Class of
StorageQueueMessageSource
is moved fromcom.azure.spring.integration.storage.queue.inbound
to packagecom.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource
. - Class of
StorageQueueOperation
is moved fromcom.azure.spring.integration.storage.queue.StorageQueueOperation
to packagecom.azure.spring.storage.queue.core.StorageQueueOperation
. - Class of
StorageQueueTemplate
is moved fromcom.azure.spring.integration.storage.queue.StorageQueueTemplate
to packagecom.azure.spring.storage.queue.core.StorageQueueTemplate
.
- Support http pipeline policy implemented by Spring Cloud Sleuth API. (#24192)