This section includes changes in spring-cloud-azure-autoconfigure
module.
- Fix bug: Put a value into Collections.emptyMap(). #31190.
- Fix bug: RestTemplate used to get access token should only contain 2 converters. #31482.
- Fix bug: RestOperations is not well configured when jwkResolver is null. #31218.
- Fix bug: Duplicated "scope" parameter. #31191.
- Fix bug: NimbusJwtDecoder still uses
RestTemplate()
insteadRestTemplateBuilder
#31233 - Fix bug: Proxy setting not work in Azure AD B2C web application. 31593
- Fix Bug: NoClassDefFoundError for JSONArray. 31716
- Fix bug:
spring.main.sources
configuration from Spring Cloud Stream Kafka binder cannot take effect. #31715
Upgrade Spring Boot dependencies version to 2.7.3 and Spring Cloud dependencies version to 2021.0.3 Upgrade Spring Boot dependencies version to 2.7.2 and Spring Cloud dependencies version to 2021.0.3.
This section includes changes in spring-cloud-azure-autoconfigure
module.
- Fix bug: Cannot configure "azure" authorization client. #30354.
- Fix parameter
requested_token_use
missing when using On behalf of process #30359. - Fix the invalid user agent for Apache Kafka #30574.
- Fix Kafka
OAuth2AuthenticateCallbackHandler
cannot work with Kafka refreshing login mechanism #30719. - Fix the cloud type cannot be configured for a consumer/producer/processor of Service Bus / Event Hubs bug #30936.
- Support auto start-up for the auto-configured Service Bus Processor Client by enabling a new property of
spring.cloud.azure.servicebus.processor.auto-startup
. #29997 - Configure the
spring.main.sources
withAzureKafkaSpringCloudStreamConfiguration
class for Spring Cloud Stream Kafka Binder context, which helps developers omit customizing the property manually when leveraging Azure Identity with Kafka #29976. - Provide the property of
spring.cloud.azure.eventhubs.kafka.enabled
to turn of/off the OAuth2 support of Spring Cloud Azure for Event Hubs for Kafka #30574. - Support connecting to Azure AD via proxy. To achieve this, customer need provide a custom
RestTemplateCustomizer
bean. #26493.
- Fix the cloud type cannot be configured for Event Hubs Binder bug #30936.
- Fix the Service Bus Binder cannot automatically create Topic/Subscriptions from consumer bug. #30722.
- Fix the cloud type cannot be configured for Service Bus Binder bug #30936.
- This release is compatible with Spring Boot 2.5.0-2.5.14, 2.6.0-2.6.9, 2.7.0-2.7.1. (Note: 2.5.x (x>14), 2.6.y (y>9) and 2.7.z (z>1) 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.3. (Note: 2020.0.x (x>5) and 2021.0.y (y>3) should be supported, but they aren't tested with this release.)
- GA the
spring-cloud-azure-starter-storage
. This starter supports all features of Azure Storage. - GA the
spring-cloud-azure-starter-keyvault
. This starter supports all features of Azure Key Vault. - Support Jwt Client authentication for Azure AD Starter.
- Upgrade
azure-sdk-bom
to 1.2.3. - Upgrade
azure-spring-data-cosmos
to 3.23.0.
This section includes changes in spring-cloud-azure-autoconfigure
module.
- Add
AzureStorageConfiguration
to make Azure storage service share common property configuration #29094.- Add properties
spring.cloud.azure.storage.endpoint
,spring.cloud.azure.storage.account-key
,spring.cloud.azure.storage.sas-token
,spring.cloud.azure.storage.connection-string
,spring.cloud.azure.storage.account-name
.
- Add properties
- Add
AzureKeyVaultConfiguration
to make Azure Key Vault service share common property configuration #29306.- Add properties
spring.cloud.azure.keyvault
.
- Add properties
- Support OAuth2 authentication configuration for Spring ecosystems of Kafka #29404.
- Deprecate support of connection string or Azure Resource Manager based authentication for Spring ecosystems of Kafka #29404.
- Upgrade spring-security to 5.6.4 to address CVE-2022-22978 #29304.
- Upgrade
azure-spring-data-cosmos
to 3.23.0. #29679 - Upgrade
azure-cosmos
to 4.32.0. #29679
- Add
enabled
option inAzureServiceBusJmsProperties
#29232.
- Fix the Service Bus JMS autoconfiguration logic error #29313.
- Fix the authority host of azure identity client not configured bug #29398.
This section includes changes in the spring-messaging-azure-servicebus
module.
- Fix the
ServiceBusContainerProperties
constructor with overriding the default field values #29095. - Restrict the concurrency value to be int format in
ServiceBusListener
#29095.
This section includes changes in spring-cloud-azure-starter-active-directory
module.
- Upgrade spring-security to 5.6.4 to address CVE-2022-22978 #29304.
- Support Jwt Client authentication #29471.
- Deprecated classes and properties type changed #29471.
- Deprecated
AadAuthorizationGrantType, useAuthorizationGrantType
instead. - Deprecated
AadOAuth2AuthenticatedPrincipal,AadJwtBearerTokenAuthenticationConverter, use the default converterJwtAuthenticationConverter
instead inAadResourceServerWebSecurityConfigurerAdapter
. - The type of property authorizationGrantType is changed to
AuthorizationGrantType
inAuthorizationClientProperties
class. - Deprecated
AadOboOAuth2AuthorizedClientProvider, useJwtBearerOAuth2AuthorizedClientProvider
instead.
- Deprecated
This section includes changes in spring-cloud-azure-starter-active-directory-b2c
module.
- Upgrade spring-security to 5.6.4 to address CVE-2022-22978 #29304.
This section includes changes in spring-integration-azure-storage-queue
module.
- Add configurable visibility timeout to
StorageQueueMessageSource
to allow configuring visibility timeout of message source at startup #29567.
- Deprecated classes and properties type changed #29471.
- Deprecated
AadAuthorizationGrantType, useAuthorizationGrantType
instead. - The type of property authorizationGrantType is changed to
AuthorizationGrantType
inAuthorizationClientProperties
class.
- Deprecated
- This release is compatible with Spring Boot 2.5.0-2.5.14, 2.6.0-2.6.8, 2.7.0. (Note: 2.5.x (x>14), 2.6.y (y>8) and 2.7.z (z>0) 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.2. (Note: 2020.0.x (x>5) and 2021.0.y (y>2) should be supported, but they aren't tested with this release.)
- Upgrade
azure-sdk-bom
to 1.2.2. - Upgrade
azure-spring-data-cosmos
to 3.21.0.
- This release is compatible with Spring Boot 2.5.0-2.5.13, 2.6.0-2.6.7. (Note: 2.5.x (x>13) and 2.6.y (y>7) 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.2. (Note: 2020.0.x (x>5) and 2021.0.y (y>2) should be supported, but they aren't tested with this release.)
- Upgrade Spring Cloud to 2021.0.2 to address CVE-2022-22963 #28179.
- Upgrade Spring Boot to 2.6.6 to address CVE-2022-22965 #28280.
- GA the
spring-cloud-azure-starter-keyvault-certificates
. This starter supports the auto-configuration of Azure Key VaultCertificateClient
andCertificateAsyncClient
.
- Upgrade
azure-resourcemanager
to 2.14.0. - Upgrade
azure-sdk-bom
to 1.2.1 #28586. - Use
azure-cosmos:4.29.1
instead of the version4.28.1
inazure-sdk-bom
#28555.
This section includes changes in spring-cloud-azure-autoconfigure
module.
- Fix the bean
AzureTokenCredentialAutoConfiguration
initialization exception when the multiple ThreadPoolTaskExecutors beans exist #28525. - Fix incorrect bean name
staticStorageBlobConnectionStringProvider
in the auto-configuration ofAzureStorageFileShareAutoConfiguration
#28464. - Fix application startup issue by changing property names in configuration metadata from camel-case to kebab-case #28312.
- 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 package 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 package #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
namespace
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 package #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 package #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 package #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 customizers 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 customizers 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.eventhubs.processor.partition-ownership-expiration-interval
tospring.cloud.azure.eventhubs.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)