This is an automated email from the ASF dual-hosted git repository.

brusdev pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/2.x by this push:
     new e087a16b20 ARTEMIS-3999 Fix setting extraParams for new acceptors via 
broker properties
e087a16b20 is described below

commit e087a16b2000424303746dfd217f2e133b4043ca
Author: Domenico Francesco Bruscino <[email protected]>
AuthorDate: Fri Sep 16 07:21:21 2022 +0200

    ARTEMIS-3999 Fix setting extraParams for new acceptors via broker properties
    
    (cherry picked from commit 93a5f3b596a6d4a394bc78f7edf8774c37cdee5c)
---
 .../artemis/api/core/TransportConfiguration.java   |  3 +-
 .../core/config/impl/ConfigurationImplTest.java    | 33 ++++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)

diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/TransportConfiguration.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/TransportConfiguration.java
index 84d7a8a881..5a823a8369 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/TransportConfiguration.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/TransportConfiguration.java
@@ -92,6 +92,7 @@ public class TransportConfiguration implements Serializable {
     */
    public TransportConfiguration() {
       this.params = new HashMap<>();
+      this.extraProps = new HashMap<>();
    }
 
    /**
@@ -103,7 +104,7 @@ public class TransportConfiguration implements Serializable 
{
     * @param name      The name of this TransportConfiguration
     */
    public TransportConfiguration(final String className, final Map<String, 
Object> params, final String name) {
-      this(className, params, name, null);
+      this(className, params, name, new HashMap<>());
    }
 
    /**
diff --git 
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
index aed4d3a78d..87d0cd2060 100644
--- 
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
+++ 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
@@ -40,6 +40,7 @@ import 
org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration;
 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.ConfigurationUtils;
 import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectConfiguration;
 import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectionAddressType;
 import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectionElement;
@@ -922,6 +923,38 @@ public class ConfigurationImplTest extends 
ActiveMQTestBase {
    }
 
 
+   @Test
+   public void testAcceptorViaProperties() throws Throwable {
+      ConfigurationImpl configuration = new ConfigurationImpl();
+
+      
configuration.getAcceptorConfigurations().add(ConfigurationUtils.parseAcceptorURI(
+         "artemis", 
"tcp://0.0.0.0:61616?protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;supportAdvisory=false;suppressInternalManagementObjects=false").get(0));
+
+      Properties properties = new Properties();
+
+      
properties.put("acceptorConfigurations.artemis.extraParams.supportAdvisory", 
"true");
+      properties.put("acceptorConfigurations.new.extraParams.supportAdvisory", 
"true");
+
+      configuration.parsePrefixedProperties(properties, null);
+
+      Assert.assertEquals(2, configuration.getAcceptorConfigurations().size());
+
+      TransportConfiguration artemisTransportConfiguration = 
configuration.getAcceptorConfigurations().stream().filter(
+         transportConfiguration -> 
transportConfiguration.getName().equals("artemis")).findFirst().get();
+      
Assert.assertTrue(artemisTransportConfiguration.getParams().containsKey("protocols"));
+      Assert.assertEquals("CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE", 
artemisTransportConfiguration.getParams().get("protocols"));
+      
Assert.assertTrue(artemisTransportConfiguration.getExtraParams().containsKey("supportAdvisory"));
+      Assert.assertEquals("true", 
artemisTransportConfiguration.getExtraParams().get("supportAdvisory"));
+      
Assert.assertTrue(artemisTransportConfiguration.getExtraParams().containsKey("suppressInternalManagementObjects"));
+      Assert.assertEquals("false", 
artemisTransportConfiguration.getExtraParams().get("suppressInternalManagementObjects"));
+
+      TransportConfiguration newTransportConfiguration = 
configuration.getAcceptorConfigurations().stream().filter(
+         transportConfiguration -> 
transportConfiguration.getName().equals("new")).findFirst().get();
+      
Assert.assertTrue(newTransportConfiguration.getExtraParams().containsKey("supportAdvisory"));
+      Assert.assertEquals("true", 
newTransportConfiguration.getExtraParams().get("supportAdvisory"));
+   }
+
+
    @Test
    public void testAddressSettingsViaProperties() throws Throwable {
       ConfigurationImpl configuration = new ConfigurationImpl();

Reply via email to