Skip to content

Commit fac376f

Browse files
authored
Unsupported basic tier for Service Bus JMS (Azure#38164)
* Unsupported basic tier
1 parent d94a60a commit fac376f

File tree

3 files changed

+28
-19
lines changed

3 files changed

+28
-19
lines changed

sdk/spring/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ This section includes changes in `spring-cloud-azure-autoconfigure` module.
88
#### Bugs Fixed
99
- Fix CVE-2023-34062 [#38066](https://github.com/Azure/azure-sdk-for-java/issues/38066).
1010

11+
#### Other Changes
12+
- Unsupported basic tier for Service Bus JMS because of the [limitation of Azure Service Bus](https://learn.microsoft.com/azure/service-bus-messaging/jms-developer-guide?tabs=JMS-20%2Csystem-assigned-managed-identity-backed-authentication#java-message-service-jms-programming-model) [#38164](https://github.com/Azure/azure-sdk-for-java/pull/38164).
13+
1114
## 5.8.0 (2023-12-14)
1215
- This release is compatible with Spring Boot 3.0.0-3.0.13, 3.1.0-3.1.6, 3.2.0-3.2.0. (Note: 3.0.x (x>13), 3.1.y (y>6) and 3.2.z (z>0) should be supported, but they aren't tested with this release.)
1316
- This release is compatible with Spring Cloud 2022.0.0-2022.0.4, 2023.0.0-2023.0.0. (Note: 2022.0.x (x>4) and 2023.0.y (y>0) should be supported, but they aren't tested with this release.)

sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jms/properties/AzureServiceBusJmsProperties.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,14 @@ public void afterPropertiesSet() throws Exception {
310310
}
311311
}
312312

313-
if (null == pricingTier || !pricingTier.matches("(?i)premium|standard|basic")) {
314-
throw new IllegalArgumentException("'spring.jms.servicebus.pricing-tier' is not valid");
313+
if (null == pricingTier || !pricingTier.matches("(?i)premium|standard")) {
314+
String errMessage = null;
315+
if ("basic".equalsIgnoreCase(pricingTier)) {
316+
errMessage = "The basic tier is not supported by Service Bus JMS. Please use standard or premium tier instead.";
317+
} else {
318+
errMessage = "'spring.jms.servicebus.pricing-tier' is not valid.";
319+
}
320+
throw new IllegalArgumentException(errMessage);
315321
}
316322
}
317323

sdk/spring/spring-cloud-azure-autoconfigure/src/test/java/com/azure/spring/cloud/autoconfigure/jms/ServiceBusJmsAutoConfigurationTests.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class ServiceBusJmsAutoConfigurationTests {
4444
+ "SharedAccessKey=sasKey";
4545

4646
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
47-
.withBean(AzureGlobalProperties.class, () -> new AzureGlobalProperties())
47+
.withBean(AzureGlobalProperties.class, AzureGlobalProperties::new)
4848
.withConfiguration(AutoConfigurations.of(JmsAutoConfiguration.class, ServiceBusJmsAutoConfiguration.class));
4949

5050
private void testQueueJmsListenerContainerFactoryWithCustomSettings(AssertableApplicationContext loaded) {
@@ -104,7 +104,7 @@ void contextFailedByConnectionStringNotConfigured() {
104104
}
105105

106106
@ParameterizedTest
107-
@ValueSource(strings = { "Ba", " " })
107+
@ValueSource(strings = { "Ba", " ", "basic" })
108108
void contextFailedByPricingTierNotCorrectlyConfigured(String pricingTier) {
109109
this.contextRunner
110110
.withPropertyValues(
@@ -118,8 +118,8 @@ void contextFailedByPricingTierNotCorrectlyConfigured(String pricingTier) {
118118
}
119119

120120
@ParameterizedTest
121-
@ValueSource(strings = { "basic", "premium" })
122-
void autoconfigurationEnabledAndContextSuccessWithNonstandardTier(String pricingTier) {
121+
@ValueSource(strings = { "premium" })
122+
void autoconfigurationEnabledAndContextSuccessWithPremiumTier(String pricingTier) {
123123
this.contextRunner
124124
.withPropertyValues(
125125
"spring.jms.servicebus.pricing-tier=" + pricingTier,
@@ -156,7 +156,7 @@ void autoconfigurationEnabledAndContextSuccessWithStandardTier(String pricingTie
156156
}
157157

158158
@ParameterizedTest
159-
@ValueSource(strings = { "basic", "standard", "premium" })
159+
@ValueSource(strings = { "standard", "premium" })
160160
void autoconfigurationDisabled(String pricingTier) {
161161
this.contextRunner
162162
.withPropertyValues(
@@ -179,8 +179,8 @@ void autoconfigurationDisabledCase2() {
179179
}
180180

181181
@ParameterizedTest
182-
@ValueSource(strings = { "basic", "standard", "premium" })
183-
void doesnotHaveBeanOfAzureServiceBusJmsPropertiesBeanPostProcessor(String pricingTier) {
182+
@ValueSource(strings = { "standard", "premium" })
183+
void doesNotHaveBeanOfAzureServiceBusJmsPropertiesBeanPostProcessor(String pricingTier) {
184184
this.contextRunner
185185
.withPropertyValues(
186186
"spring.jms.servicebus.pricing-tier=" + pricingTier,
@@ -191,7 +191,7 @@ void doesnotHaveBeanOfAzureServiceBusJmsPropertiesBeanPostProcessor(String prici
191191
}
192192

193193
@ParameterizedTest
194-
@ValueSource(strings = { "basic" })
194+
@ValueSource(strings = { "standard", "premium" })
195195
void doesHaveBeanOfAzureServiceBusJmsPropertiesBeanPostProcessor(String pricingTier) {
196196
this.contextRunner
197197
.withPropertyValues(
@@ -213,7 +213,7 @@ StaticConnectionStringProvider<AzureServiceType.ServiceBus> connectionStringProv
213213
}
214214

215215
@ParameterizedTest
216-
@ValueSource(strings = { "basic", "standard", "premium" })
216+
@ValueSource(strings = { "standard", "premium" })
217217
void connectionFactoryIsAutowiredIntoJmsTemplateBean(String pricingTier) {
218218
this.contextRunner
219219
.withPropertyValues(
@@ -226,7 +226,7 @@ void connectionFactoryIsAutowiredIntoJmsTemplateBean(String pricingTier) {
226226
}
227227

228228
@ParameterizedTest
229-
@ValueSource(strings = { "basic", "standard", "premium" })
229+
@ValueSource(strings = { "standard", "premium" })
230230
void jmsPropertiesConfiguredCorrectly(String pricingTier) {
231231
this.contextRunner
232232
.withPropertyValues(
@@ -250,7 +250,7 @@ void jmsPropertiesConfiguredCorrectly(String pricingTier) {
250250
}
251251

252252
@ParameterizedTest
253-
@ValueSource(strings = { "basic", "standard", "premium" })
253+
@ValueSource(strings = { "standard", "premium" })
254254
void jmsServiceBusPropertiesConfigured(String pricingTier) {
255255
this.contextRunner
256256
.withPropertyValues(
@@ -267,7 +267,7 @@ void jmsServiceBusPropertiesConfigured(String pricingTier) {
267267
}
268268

269269
@ParameterizedTest
270-
@ValueSource(strings = { "basic", "standard", "premium" })
270+
@ValueSource(strings = { "standard", "premium" })
271271
void jmsListenerContainerFactoryConfiguredCorrectly(String pricingTier) {
272272
this.contextRunner
273273
.withPropertyValues(
@@ -290,7 +290,7 @@ void jmsListenerContainerFactoryConfiguredCorrectly(String pricingTier) {
290290

291291

292292
@ParameterizedTest
293-
@ValueSource(strings = { "basic", "standard", "premium" })
293+
@ValueSource(strings = { "standard", "premium" })
294294
void cachingConnectionFactoryBeanConfiguredAsDefault(String pricingTier) {
295295
this.contextRunner
296296
.withPropertyValues(
@@ -304,7 +304,7 @@ void cachingConnectionFactoryBeanConfiguredAsDefault(String pricingTier) {
304304
}
305305

306306
@ParameterizedTest
307-
@ValueSource(strings = { "basic", "standard", "premium" })
307+
@ValueSource(strings = { "standard", "premium" })
308308
void cachingConnectionFactoryBeanConfiguredExplicitly(String pricingTier) {
309309
this.contextRunner
310310
.withPropertyValues(
@@ -319,8 +319,8 @@ void cachingConnectionFactoryBeanConfiguredExplicitly(String pricingTier) {
319319
}
320320

321321
@ParameterizedTest
322-
@ValueSource(strings = { "basic", "standard", "premium" })
323-
void nativeConnectionFactoryBeanConfiguredByProperteyCondition(String pricingTier) {
322+
@ValueSource(strings = { "standard", "premium" })
323+
void nativeConnectionFactoryBeanConfiguredByPropertyCondition(String pricingTier) {
324324
this.contextRunner
325325
.withPropertyValues(
326326
"spring.jms.servicebus.pricing-tier=" + pricingTier,
@@ -336,7 +336,7 @@ void nativeConnectionFactoryBeanConfiguredByProperteyCondition(String pricingTie
336336
}
337337

338338
@ParameterizedTest
339-
@ValueSource(strings = { "basic", "standard", "premium" })
339+
@ValueSource(strings = { "standard", "premium" })
340340
void jmsPoolConnectionFactoryBeanConfiguredByPropertyCondition(String pricingTier) {
341341
this.contextRunner
342342
.withPropertyValues(

0 commit comments

Comments
 (0)