You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ni...@apache.org on 2021/08/06 13:31:59 UTC

[activemq-artemis] branch main updated: ARTEMIS-3414 Disable OpenWire advisory support as default created configuration on CLI

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

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


The following commit(s) were added to refs/heads/main by this push:
     new f54c915  ARTEMIS-3414 Disable OpenWire advisory support as default created configuration on CLI
     new d804a07  This closes #3688
f54c915 is described below

commit f54c9156fa1a2c3f7c8697037b7f3e4e9863b5f2
Author: franz1981 <ni...@gmail.com>
AuthorDate: Fri Aug 6 10:01:35 2021 +0200

    ARTEMIS-3414 Disable OpenWire advisory support as default created configuration on CLI
---
 .../activemq/artemis/cli/commands/Create.java      |  8 ++++
 .../activemq/artemis/cli/commands/etc/broker.xml   |  2 +-
 .../org/apache/activemq/cli/test/ArtemisTest.java  | 46 ++++++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
index aaaad9b..da0ed7c 100644
--- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
+++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java
@@ -283,6 +283,12 @@ public class Create extends InputAbstract {
    @Option(name = "--staticCluster", description = "Cluster node connectors list, separated by comma: Example \"tcp://server:61616,tcp://server2:61616,tcp://server3:61616\"")
    String staticNode;
 
+   @Option(name = "--support-advisory", description = "If set, the generated configuration will allow advisories for the openwire protocol")
+   boolean supportAdvisory = false;
+
+   @Option(name = "--suppress-internal-management-objects", description = "If set, the generated configuration will register any advisory addresses/queues to management services for the openwire protocol")
+   boolean suppressInternalManagementObjects = false;
+
    public String[] getStaticNodes() {
       if (staticNode == null) {
          return new String[0];
@@ -626,6 +632,8 @@ public class Create extends InputAbstract {
       }
       filters.put("${fsync}", String.valueOf(!noJournalSync));
       filters.put("${default.port}", String.valueOf(defaultPort + portOffset));
+      filters.put("${support-advisory}", Boolean.toString(supportAdvisory));
+      filters.put("${suppress-internal-management-objects}", Boolean.toString(suppressInternalManagementObjects));
       filters.put("${amqp.port}", String.valueOf(AMQP_PORT + portOffset));
       filters.put("${stomp.port}", String.valueOf(STOMP_PORT + portOffset));
       filters.put("${hq.port}", String.valueOf(HQ_PORT + portOffset));
diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml
index dc48d94..78a9fd1 100644
--- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml
+++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/broker.xml
@@ -102,7 +102,7 @@ ${jdbc}
 
 
          <!-- Acceptor for every supported protocol -->
-         <acceptor name="artemis">tcp://${host}:${default.port}?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true</acceptor>
+         <acceptor name="artemis">tcp://${host}:${default.port}?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=${support-advisory};suppressInternalManagementObjects=${suppress-internal-management-objects}</acceptor>
 ${amqp-acceptor}${stomp-acceptor}${hornetq-acceptor}${mqtt-acceptor}
       </acceptors>
 
diff --git a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
index d28edfc..325e83c 100644
--- a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
+++ b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java
@@ -41,6 +41,7 @@ import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
 import org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException;
@@ -180,6 +181,51 @@ public class ArtemisTest extends CliTestBase {
    }
 
    @Test
+   public void testOpenwireSupportAdvisoryDisabledByDefault() throws Exception {
+      FileConfiguration configuration = createFileConfiguration("supportAdvisory",
+                                                                "--force", "--silent", "--no-web", "--no-autotune");
+      Map<String, Object> params = configuration.getAcceptorConfigurations()
+         .stream().filter(tc -> tc.getName().equals("artemis")).findFirst().get().getExtraParams();
+      Assert.assertFalse(Boolean.parseBoolean(params.get("supportAdvisory").toString()));
+      Assert.assertFalse(Boolean.parseBoolean(params.get("suppressInternalManagementObjects").toString()));
+   }
+
+   @Test
+   public void testOpenwireEnabledSupportAdvisory() throws Exception {
+      FileConfiguration configuration = createFileConfiguration("supportAdvisory",
+                                                                "--force", "--silent", "--no-web", "--no-autotune",
+                                                                "--support-advisory", "--suppress-internal-management-objects");
+      Map<String, Object> params = configuration.getAcceptorConfigurations()
+         .stream().filter(tc -> tc.getName().equals("artemis")).findFirst().get().getExtraParams();
+      Assert.assertTrue(Boolean.parseBoolean(params.get("supportAdvisory").toString()));
+      Assert.assertTrue(Boolean.parseBoolean(params.get("suppressInternalManagementObjects").toString()));
+   }
+
+
+   private FileConfiguration createFileConfiguration(String folder, String... createAdditionalArg) throws Exception {
+      File instanceFolder = temporaryFolder.newFolder(folder);
+
+      setupAuth(instanceFolder);
+
+      // This is usually set when run from the command line via artemis.profile
+      Run.setEmbedded(true);
+      final String[] createArgs = new String[2 + (createAdditionalArg == null ? 0 : createAdditionalArg.length)];
+      createArgs[0] = "create";
+      createArgs[1] = instanceFolder.getAbsolutePath();
+      if (createAdditionalArg != null) {
+         System.arraycopy(createAdditionalArg, 0, createArgs, 2, createAdditionalArg.length);
+      }
+      Artemis.main(createArgs);
+      System.setProperty("artemis.instance", instanceFolder.getAbsolutePath());
+
+      FileConfiguration fc = new FileConfiguration();
+      FileDeploymentManager deploymentManager = new FileDeploymentManager(new File(instanceFolder, "./etc/broker.xml").toURI().toString());
+      deploymentManager.addDeployable(fc);
+      deploymentManager.readConfiguration();
+      return fc;
+   }
+
+   @Test
    public void testWebConfig() throws Exception {
       setupAuth();
       Run.setEmbedded(true);