Skip to content

Commit b67e6aa

Browse files
committed
Merge pull request #12680 from graben
* pr/12680: Polish "Prevent warnings when running embedded Artemis" Prevent warnings when running embedded Artemis
2 parents 68dc9fe + 41dc701 commit b67e6aa

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2017 the original author or authors.
2+
* Copyright 2012-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -18,11 +18,16 @@
1818

1919
import java.io.File;
2020

21+
import org.apache.activemq.artemis.api.core.RoutingType;
22+
import org.apache.activemq.artemis.api.core.SimpleString;
2123
import org.apache.activemq.artemis.api.core.TransportConfiguration;
2224
import org.apache.activemq.artemis.core.config.Configuration;
25+
import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
26+
import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
2327
import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
2428
import org.apache.activemq.artemis.core.remoting.impl.invm.InVMAcceptorFactory;
2529
import org.apache.activemq.artemis.core.server.JournalType;
30+
import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
2631
import org.apache.commons.logging.Log;
2732
import org.apache.commons.logging.LogFactory;
2833

@@ -65,9 +70,22 @@ public Configuration createConfiguration() {
6570
+ this.properties.getClusterPassword());
6671
}
6772
configuration.setClusterPassword(this.properties.getClusterPassword());
73+
configuration.addAddressConfiguration(createAddressConfiguration("DLQ"));
74+
configuration.addAddressConfiguration(createAddressConfiguration("ExpiryQueue"));
75+
configuration.addAddressesSetting("#",
76+
new AddressSettings()
77+
.setDeadLetterAddress(SimpleString.toSimpleString("DLQ"))
78+
.setExpiryAddress(SimpleString.toSimpleString("ExpiryQueue")));
6879
return configuration;
6980
}
7081

82+
private CoreAddressConfiguration createAddressConfiguration(String name) {
83+
return new CoreAddressConfiguration().setName(name)
84+
.addRoutingType(RoutingType.ANYCAST)
85+
.addQueueConfiguration(new CoreQueueConfiguration().setName(name)
86+
.setRoutingType(RoutingType.ANYCAST));
87+
}
88+
7189
private String getDataDir() {
7290
if (this.properties.getDataDirectory() != null) {
7391
return this.properties.getDataDirectory();

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2017 the original author or authors.
2+
* Copyright 2012-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,8 +16,14 @@
1616

1717
package org.springframework.boot.autoconfigure.jms.artemis;
1818

19+
import java.util.List;
20+
import java.util.Map;
21+
22+
import org.apache.activemq.artemis.api.core.SimpleString;
1923
import org.apache.activemq.artemis.core.config.Configuration;
24+
import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
2025
import org.apache.activemq.artemis.core.server.JournalType;
26+
import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
2127
import org.junit.Test;
2228

2329
import static org.assertj.core.api.Assertions.assertThat;
@@ -68,4 +74,26 @@ public void specificClusterPassword() {
6874
assertThat(configuration.getClusterPassword()).isEqualTo("password");
6975
}
7076

77+
@Test
78+
public void hasDlqExpiryQueueAddressSettingsConfigured() {
79+
ArtemisProperties properties = new ArtemisProperties();
80+
Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties)
81+
.createConfiguration();
82+
Map<String, AddressSettings> addressesSettings = configuration
83+
.getAddressesSettings();
84+
assertThat((Object) addressesSettings.get("#").getDeadLetterAddress())
85+
.isEqualTo(SimpleString.toSimpleString("DLQ"));
86+
assertThat((Object) addressesSettings.get("#").getExpiryAddress())
87+
.isEqualTo(SimpleString.toSimpleString("ExpiryQueue"));
88+
}
89+
90+
@Test
91+
public void hasDlqExpiryQueueConfigured() {
92+
ArtemisProperties properties = new ArtemisProperties();
93+
Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties)
94+
.createConfiguration();
95+
List<CoreAddressConfiguration> addressConfigurations = configuration
96+
.getAddressConfigurations();
97+
assertThat(addressConfigurations).hasSize(2);
98+
}
7199
}

0 commit comments

Comments
 (0)