From 19818b752c6f17186ce333e003457711fbdbfaaf Mon Sep 17 00:00:00 2001 From: Benjamin Graf Date: Thu, 29 Mar 2018 15:10:31 +0200 Subject: [PATCH 1/2] 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 --- .../ArtemisEmbeddedConfigurationFactory.java | 25 +++++++++++++++++++ ...emisEmbeddedConfigurationFactoryTests.java | 24 ++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java index 2903e79f00..f81f11e50b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java @@ -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; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java index 003cf4a762..0712721f33 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java @@ -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 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 addressConfigurations = configuration.getAddressConfigurations(); + assertThat(addressConfigurations).hasSize(2); + } } From 41dc70146a39cc4d488fa9bf13d0a617b31790a3 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 4 Apr 2018 21:10:35 -0700 Subject: [PATCH 2/2] Polish "Prevent warnings when running embedded Artemis" Closes gh-12680 --- .../ArtemisEmbeddedConfigurationFactory.java | 33 ++++++++----------- ...emisEmbeddedConfigurationFactoryTests.java | 18 ++++++---- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java index f81f11e50b..ea12be48b2 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 the original author or authors. + * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -70,29 +70,22 @@ class ArtemisEmbeddedConfigurationFactory { + this.properties.getClusterPassword()); } configuration.setClusterPassword(this.properties.getClusterPassword()); + configuration.addAddressConfiguration(createAddressConfiguration("DLQ")); + configuration.addAddressConfiguration(createAddressConfiguration("ExpiryQueue")); 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))); + new AddressSettings() + .setDeadLetterAddress(SimpleString.toSimpleString("DLQ")) + .setExpiryAddress(SimpleString.toSimpleString("ExpiryQueue"))); return configuration; } + private CoreAddressConfiguration createAddressConfiguration(String name) { + return new CoreAddressConfiguration().setName(name) + .addRoutingType(RoutingType.ANYCAST) + .addQueueConfiguration(new CoreQueueConfiguration().setName(name) + .setRoutingType(RoutingType.ANYCAST)); + } + private String getDataDir() { if (this.properties.getDataDirectory() != null) { return this.properties.getDataDirectory(); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java index 0712721f33..7054715d10 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 the original author or authors. + * Copyright 2012-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -78,18 +78,22 @@ public class ArtemisEmbeddedConfigurationFactoryTests { public void hasDlqExpiryQueueAddressSettingsConfigured() { ArtemisProperties properties = new ArtemisProperties(); Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties) - .createConfiguration(); - Map addressesSettings = configuration.getAddressesSettings(); - assertThat((CharSequence) addressesSettings.get("#").getDeadLetterAddress()).isEqualTo(SimpleString.toSimpleString("DLQ")); - assertThat((CharSequence) addressesSettings.get("#").getExpiryAddress()).isEqualTo(SimpleString.toSimpleString("ExpiryQueue")); + .createConfiguration(); + Map addressesSettings = configuration + .getAddressesSettings(); + assertThat((Object) addressesSettings.get("#").getDeadLetterAddress()) + .isEqualTo(SimpleString.toSimpleString("DLQ")); + assertThat((Object) addressesSettings.get("#").getExpiryAddress()) + .isEqualTo(SimpleString.toSimpleString("ExpiryQueue")); } @Test public void hasDlqExpiryQueueConfigured() { ArtemisProperties properties = new ArtemisProperties(); Configuration configuration = new ArtemisEmbeddedConfigurationFactory(properties) - .createConfiguration(); - List addressConfigurations = configuration.getAddressConfigurations(); + .createConfiguration(); + List addressConfigurations = configuration + .getAddressConfigurations(); assertThat(addressConfigurations).hasSize(2); } }