Skip to content

Commit 19818b7

Browse files
grabenphilwebb
authored andcommitted
Prevent warnings when running embedded Artemis
Configure AddressSettings for DLQ and ExpiryQueue for the embedded Artemis broker to prevent warnings from being logged. Closes gh-12680
1 parent 68dc9fe commit 19818b7

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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,6 +70,26 @@ public Configuration createConfiguration() {
6570
+ this.properties.getClusterPassword());
6671
}
6772
configuration.setClusterPassword(this.properties.getClusterPassword());
73+
configuration.addAddressesSetting("#",
74+
new AddressSettings()
75+
.setDeadLetterAddress(SimpleString.toSimpleString("DLQ"))
76+
.setExpiryAddress(SimpleString.toSimpleString("ExpiryQueue")));
77+
configuration.addAddressConfiguration(
78+
new CoreAddressConfiguration()
79+
.setName("DLQ")
80+
.addRoutingType(RoutingType.ANYCAST)
81+
.addQueueConfiguration(
82+
new CoreQueueConfiguration()
83+
.setName("DLQ")
84+
.setRoutingType(RoutingType.ANYCAST)));
85+
configuration.addAddressConfiguration(
86+
new CoreAddressConfiguration()
87+
.setName("ExpiryQueue")
88+
.addRoutingType(RoutingType.ANYCAST)
89+
.addQueueConfiguration(
90+
new CoreQueueConfiguration()
91+
.setName("ExpiryQueue")
92+
.setRoutingType(RoutingType.ANYCAST)));
6893
return configuration;
6994
}
7095

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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,22 @@ 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.getAddressesSettings();
83+
assertThat((CharSequence) addressesSettings.get("#").getDeadLetterAddress()).isEqualTo(SimpleString.toSimpleString("DLQ"));
84+
assertThat((CharSequence) addressesSettings.get("#").getExpiryAddress()).isEqualTo(SimpleString.toSimpleString("ExpiryQueue"));
85+
}
86+
87+
@Test
88+
public void hasDlqExpiryQueueConfigured() {
89+
ArtemisProperties properties = new ArtemisProperties();
90+
Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties)
91+
.createConfiguration();
92+
List<CoreAddressConfiguration> addressConfigurations = configuration.getAddressConfigurations();
93+
assertThat(addressConfigurations).hasSize(2);
94+
}
7195
}

0 commit comments

Comments
 (0)