Commit 19818b75 authored by Benjamin Graf's avatar Benjamin Graf Committed by Phillip Webb

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
parent 68dc9fed
......@@ -18,11 +18,16 @@ package org.springframework.boot.autoconfigure.jms.artemis;
import java.io.File;
import org.apache.activemq.artemis.api.core.RoutingType;
import org.apache.activemq.artemis.api.core.SimpleString;
import org.apache.activemq.artemis.api.core.TransportConfiguration;
import org.apache.activemq.artemis.core.config.Configuration;
import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
import org.apache.activemq.artemis.core.config.CoreQueueConfiguration;
import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
import org.apache.activemq.artemis.core.remoting.impl.invm.InVMAcceptorFactory;
import org.apache.activemq.artemis.core.server.JournalType;
import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
......@@ -65,6 +70,26 @@ class ArtemisEmbeddedConfigurationFactory {
+ this.properties.getClusterPassword());
}
configuration.setClusterPassword(this.properties.getClusterPassword());
configuration.addAddressesSetting("#",
new AddressSettings()
.setDeadLetterAddress(SimpleString.toSimpleString("DLQ"))
.setExpiryAddress(SimpleString.toSimpleString("ExpiryQueue")));
configuration.addAddressConfiguration(
new CoreAddressConfiguration()
.setName("DLQ")
.addRoutingType(RoutingType.ANYCAST)
.addQueueConfiguration(
new CoreQueueConfiguration()
.setName("DLQ")
.setRoutingType(RoutingType.ANYCAST)));
configuration.addAddressConfiguration(
new CoreAddressConfiguration()
.setName("ExpiryQueue")
.addRoutingType(RoutingType.ANYCAST)
.addQueueConfiguration(
new CoreQueueConfiguration()
.setName("ExpiryQueue")
.setRoutingType(RoutingType.ANYCAST)));
return configuration;
}
......
......@@ -16,8 +16,14 @@
package org.springframework.boot.autoconfigure.jms.artemis;
import java.util.List;
import java.util.Map;
import org.apache.activemq.artemis.api.core.SimpleString;
import org.apache.activemq.artemis.core.config.Configuration;
import org.apache.activemq.artemis.core.config.CoreAddressConfiguration;
import org.apache.activemq.artemis.core.server.JournalType;
import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
......@@ -68,4 +74,22 @@ public class ArtemisEmbeddedConfigurationFactoryTests {
assertThat(configuration.getClusterPassword()).isEqualTo("password");
}
@Test
public void hasDlqExpiryQueueAddressSettingsConfigured() {
ArtemisProperties properties = new ArtemisProperties();
Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties)
.createConfiguration();
Map<String, AddressSettings> addressesSettings = configuration.getAddressesSettings();
assertThat((CharSequence) addressesSettings.get("#").getDeadLetterAddress()).isEqualTo(SimpleString.toSimpleString("DLQ"));
assertThat((CharSequence) addressesSettings.get("#").getExpiryAddress()).isEqualTo(SimpleString.toSimpleString("ExpiryQueue"));
}
@Test
public void hasDlqExpiryQueueConfigured() {
ArtemisProperties properties = new ArtemisProperties();
Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties)
.createConfiguration();
List<CoreAddressConfiguration> addressConfigurations = configuration.getAddressConfigurations();
assertThat(addressConfigurations).hasSize(2);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment