Skip to content

Commit 8b9b98e

Browse files
authored
Enable message converter customization (Azure#19346)
* remove bean definition of jmstemplate
1 parent 4028c28 commit 8b9b98e

File tree

2 files changed

+47
-28
lines changed

2 files changed

+47
-28
lines changed

sdk/spring/azure-spring-boot/src/main/java/com/azure/spring/autoconfigure/jms/ServiceBusJMSAutoConfiguration.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
1515
import org.springframework.jms.config.JmsListenerContainerFactory;
1616
import org.springframework.jms.connection.CachingConnectionFactory;
17-
import org.springframework.jms.core.JmsTemplate;
1817

1918
import javax.jms.ConnectionFactory;
2019

@@ -51,14 +50,6 @@ public ConnectionFactory jmsConnectionFactory(AzureServiceBusJMSProperties servi
5150
return new CachingConnectionFactory(jmsConnectionFactory);
5251
}
5352

54-
@Bean
55-
@ConditionalOnMissingBean
56-
public JmsTemplate jmsTemplate(ConnectionFactory jmsConnectionFactory) {
57-
final JmsTemplate jmsTemplate = new JmsTemplate();
58-
jmsTemplate.setConnectionFactory(jmsConnectionFactory);
59-
return jmsTemplate;
60-
}
61-
6253
@Bean
6354
@ConditionalOnMissingBean
6455
public JmsListenerContainerFactory<?> jmsListenerContainerFactory(ConnectionFactory connectionFactory) {

sdk/spring/azure-spring-boot/src/test/java/com/azure/spring/autoconfigure/jms/ServiceBusJMSAutoConfigurationTest.java

Lines changed: 47 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,86 @@
66
import org.apache.qpid.jms.JmsConnectionFactory;
77
import org.junit.Test;
88
import org.springframework.boot.autoconfigure.AutoConfigurations;
9+
import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration;
910
import org.springframework.boot.test.context.FilteredClassLoader;
1011
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
12+
import org.springframework.jms.core.JmsTemplate;
13+
14+
import javax.jms.ConnectionFactory;
1115

1216
import static org.assertj.core.api.Assertions.assertThat;
17+
import static org.junit.jupiter.api.Assertions.assertTrue;
1318

1419
public class ServiceBusJMSAutoConfigurationTest {
15-
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
16-
.withConfiguration(AutoConfigurations.of(ServiceBusJMSAutoConfiguration.class));
20+
21+
private static final String CONNECTION_STRING = "Endpoint=sb://host/;SharedAccessKeyName=sasKeyName;"
22+
+ "SharedAccessKey=sasKey";
1723

1824
@Test
1925
public void testAzureServiceBusDisabled() {
20-
this.contextRunner.withPropertyValues("spring.jms.servicebus.enabled=false")
21-
.run(context -> assertThat(context).doesNotHaveBean(AzureServiceBusJMSProperties.class));
26+
ApplicationContextRunner contextRunner = getEmptyContextRunner();
27+
contextRunner.withPropertyValues("spring.jms.servicebus.enabled=false")
28+
.run(context -> assertThat(context).doesNotHaveBean(AzureServiceBusJMSProperties.class));
2229
}
2330

2431
@Test
2532
public void testWithoutServiceBusJMSNamespace() {
26-
this.contextRunner.withClassLoader(new FilteredClassLoader(JmsConnectionFactory.class))
27-
.run(context -> assertThat(context).doesNotHaveBean(AzureServiceBusJMSProperties.class));
33+
ApplicationContextRunner contextRunner = getEmptyContextRunner();
34+
contextRunner.withClassLoader(new FilteredClassLoader(JmsConnectionFactory.class))
35+
.run(context -> assertThat(context).doesNotHaveBean(AzureServiceBusJMSProperties.class));
2836
}
2937

3038
@Test(expected = IllegalStateException.class)
3139
public void testAzureServiceBusJMSPropertiesValidation() {
32-
this.contextRunner.run(context -> context.getBean(AzureServiceBusJMSProperties.class));
40+
ApplicationContextRunner contextRunner = getEmptyContextRunner();
41+
contextRunner.run(context -> context.getBean(AzureServiceBusJMSProperties.class));
3342
}
3443

3544
@Test
36-
public void testAzureServiceBusJMSPropertiesConfigured() {
45+
public void testCachingConnectionFactoryIsAutowired() {
3746

38-
final String connectionString = "Endpoint=sb://host/;SharedAccessKeyName=sasKeyName;SharedAccessKey=sasKey";
47+
ApplicationContextRunner contextRunner = getContextRunnerWithProperties();
3948

40-
this.contextRunner = this.contextRunner.withPropertyValues(
41-
"spring.jms.servicebus.connection-string=" + connectionString
49+
contextRunner.run(
50+
context -> {
51+
assertThat(context).hasSingleBean(ConnectionFactory.class);
52+
assertThat(context).hasSingleBean(JmsTemplate.class);
53+
ConnectionFactory connectionFactory = context.getBean(ConnectionFactory.class);
54+
assertTrue(connectionFactory == context.getBean(JmsTemplate.class).getConnectionFactory());
55+
}
4256
);
57+
}
4358

44-
this.contextRunner = this.contextRunner.withPropertyValues(
45-
"spring.jms.servicebus.topic-client-id=cid"
46-
);
59+
@Test
60+
public void testAzureServiceBusJMSPropertiesConfigured() {
4761

48-
this.contextRunner = this.contextRunner.withPropertyValues(
49-
"spring.jms.servicebus.idle-timeout=123"
50-
);
62+
ApplicationContextRunner contextRunner = getContextRunnerWithProperties();
5163

52-
this.contextRunner.run(
64+
contextRunner.run(
5365
context -> {
5466
assertThat(context).hasSingleBean(AzureServiceBusJMSProperties.class);
5567
assertThat(context.getBean(AzureServiceBusJMSProperties.class).getConnectionString()).isEqualTo(
56-
connectionString);
68+
CONNECTION_STRING);
5769
assertThat(context.getBean(AzureServiceBusJMSProperties.class).getTopicClientId()).isEqualTo("cid");
5870
assertThat(context.getBean(AzureServiceBusJMSProperties.class).getIdleTimeout()).isEqualTo(123);
5971
}
6072
);
6173
}
6274

75+
private ApplicationContextRunner getEmptyContextRunner() {
76+
77+
return new ApplicationContextRunner()
78+
.withConfiguration(AutoConfigurations.of(ServiceBusJMSAutoConfiguration.class, JmsAutoConfiguration.class));
79+
}
80+
81+
private ApplicationContextRunner getContextRunnerWithProperties() {
82+
83+
return new ApplicationContextRunner()
84+
.withConfiguration(AutoConfigurations.of(ServiceBusJMSAutoConfiguration.class, JmsAutoConfiguration.class))
85+
.withPropertyValues(
86+
"spring.jms.servicebus.connection-string=" + CONNECTION_STRING,
87+
"spring.jms.servicebus.topic-client-id=cid",
88+
"spring.jms.servicebus.idle-timeout=123"
89+
);
90+
}
6391
}

0 commit comments

Comments
 (0)