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

clebertsuconic 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 fac7f16  ARTEMIS-3601 expose acceptors via management
fac7f16 is described below

commit fac7f1692ad6f7f752c3d2da5d83561e7c074c49
Author: Justin Bertram <[email protected]>
AuthorDate: Mon Dec 13 21:48:03 2021 -0600

    ARTEMIS-3601 expose acceptors via management
---
 .../apache/activemq/artemis/logs/AuditLogger.java  | 15 ++++++++++
 .../api/core/management/ActiveMQServerControl.java | 12 ++++++++
 .../management/impl/ActiveMQServerControlImpl.java | 34 ++++++++++++++++++----
 .../management/ActiveMQServerControlTest.java      | 29 ++++++++++++++++++
 .../ActiveMQServerControlUsingCoreTest.java        | 10 +++++++
 5 files changed, 95 insertions(+), 5 deletions(-)

diff --git 
a/artemis-commons/src/main/java/org/apache/activemq/artemis/logs/AuditLogger.java
 
b/artemis-commons/src/main/java/org/apache/activemq/artemis/logs/AuditLogger.java
index 5878295..2cc209c 100644
--- 
a/artemis-commons/src/main/java/org/apache/activemq/artemis/logs/AuditLogger.java
+++ 
b/artemis-commons/src/main/java/org/apache/activemq/artemis/logs/AuditLogger.java
@@ -2910,4 +2910,19 @@ public interface AuditLogger extends BasicLogger {
    @Message(id = 601755, value = "User {0} is unblocking target resource: 
{1}", format = Message.Format.MESSAGE_FORMAT)
    void unBlock(String user, Object source);
 
+   static void getAcceptors(Object source) {
+      BASE_LOGGER.getAcceptors(getCaller(), source);
+   }
+
+   @LogMessage(level = Logger.Level.INFO)
+   @Message(id = 601756, value = "User {0} is getting acceptors on target 
resource: {1} {2}", format = Message.Format.MESSAGE_FORMAT)
+   void getAcceptors(String user, Object source, Object... args);
+
+   static void getAcceptorsAsJSON(Object source) {
+      BASE_LOGGER.getAcceptorsAsJSON(getCaller(), source);
+   }
+
+   @LogMessage(level = Logger.Level.INFO)
+   @Message(id = 601757, value = "User {0} is getting acceptors as json on 
target resource: {1} {2}", format = Message.Format.MESSAGE_FORMAT)
+   void getAcceptorsAsJSON(String user, Object source, Object... args);
 }
diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
index 59b142c..496bf62 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
@@ -409,6 +409,18 @@ public interface ActiveMQServerControl {
    String getConnectorsAsJSON() throws Exception;
 
    /**
+    * Returns the acceptors configured for this server.
+    */
+   @Attribute(desc = "Connectors configured for this server")
+   Object[] getAcceptors() throws Exception;
+
+   /**
+    * Returns the acceptors configured for this server using JSON 
serialization.
+    */
+   @Attribute(desc = "Acceptors configured for this server using JSON 
serialization")
+   String getAcceptorsAsJSON() throws Exception;
+
+   /**
     * Returns the number of addresses created on this server.
     */
    @Attribute(desc = "Number of addresses created on this server")
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
index 2e0520f..841eac9 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
@@ -2740,16 +2740,26 @@ public class ActiveMQServerControlImpl extends 
AbstractControl implements Active
       if (AuditLogger.isBaseLoggingEnabled()) {
          AuditLogger.getConnectors(this.server);
       }
+      return 
getNetworkConfigs(configuration.getConnectorConfigurations().values());
+   }
+
+   @Override
+   public Object[] getAcceptors() throws Exception {
+      if (AuditLogger.isBaseLoggingEnabled()) {
+         AuditLogger.getAcceptors(this.server);
+      }
+      return getNetworkConfigs(configuration.getAcceptorConfigurations());
+   }
+
+   private Object[] getNetworkConfigs(Collection<TransportConfiguration> 
configs) throws Exception {
       checkStarted();
 
       clearIO();
       try {
-         Collection<TransportConfiguration> connectorConfigurations = 
configuration.getConnectorConfigurations().values();
-
-         Object[] ret = new Object[connectorConfigurations.size()];
+         Object[] ret = new Object[configs.size()];
 
          int i = 0;
-         for (TransportConfiguration config : connectorConfigurations) {
+         for (TransportConfiguration config : configs) {
             Object[] tc = new Object[3];
 
             tc[0] = config.getName();
@@ -2769,13 +2779,27 @@ public class ActiveMQServerControlImpl extends 
AbstractControl implements Active
       if (AuditLogger.isBaseLoggingEnabled()) {
          AuditLogger.getConnectorsAsJSON(this.server);
       }
+
+      return 
getNetworkConfigsAsJSON(configuration.getConnectorConfigurations().values());
+   }
+
+   @Override
+   public String getAcceptorsAsJSON() throws Exception {
+      if (AuditLogger.isBaseLoggingEnabled()) {
+         AuditLogger.getAcceptorsAsJSON(this.server);
+      }
+
+      return 
getNetworkConfigsAsJSON(configuration.getAcceptorConfigurations());
+   }
+
+   private String getNetworkConfigsAsJSON(Collection<TransportConfiguration> 
configs) throws Exception {
       checkStarted();
 
       clearIO();
       try {
          JsonArrayBuilder array = JsonLoader.createArrayBuilder();
 
-         for (TransportConfiguration config : 
configuration.getConnectorConfigurations().values()) {
+         for (TransportConfiguration config : configs) {
             array.add(config.toJson());
          }
 
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
index 8cda6cc..32e6d5a 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
@@ -240,6 +240,21 @@ public class ActiveMQServerControlTest extends 
ManagementTestBase {
    }
 
    @Test
+   public void testGetAcceptors() throws Exception {
+      ActiveMQServerControl serverControl = createManagementControl();
+
+      Object[] acceptors = serverControl.getAcceptors();
+      Assert.assertNotNull(acceptors);
+      Assert.assertEquals(2, acceptors.length);
+
+      for (int i = 0; i < acceptors.length; i++) {
+         Object[] acceptor = (Object[]) acceptors[i];
+         String name = (String) acceptor[0];
+         assertTrue(name.equals("netty") || name.equals("invm"));
+      }
+   }
+
+   @Test
    public void testIsReplicaSync() throws Exception {
       Assert.assertFalse(createManagementControl().isReplicaSync());
    }
@@ -259,6 +274,20 @@ public class ActiveMQServerControlTest extends 
ManagementTestBase {
    }
 
    @Test
+   public void testGetAcceptorsAsJSON() throws Exception {
+      ActiveMQServerControl serverControl = createManagementControl();
+
+      String jsonString = serverControl.getAcceptorsAsJSON();
+      Assert.assertNotNull(jsonString);
+      JsonArray array = JsonUtil.readJsonArray(jsonString);
+      Assert.assertEquals(2, array.size());
+      for (int i = 0; i < array.size(); i++) {
+         String name = ((JsonObject)array.get(i)).getString("name");
+         assertTrue(name.equals("netty") || name.equals("invm"));
+      }
+   }
+
+   @Test
    public void testCreateAndDestroyQueue() throws Exception {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString name = RandomUtil.randomSimpleString();
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
index a1bd1fc..032e50f 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
@@ -368,6 +368,16 @@ public class ActiveMQServerControlUsingCoreTest extends 
ActiveMQServerControlTes
          }
 
          @Override
+         public Object[] getAcceptors() throws Exception {
+            return (Object[]) proxy.retrieveAttributeValue("acceptors");
+         }
+
+         @Override
+         public String getAcceptorsAsJSON() throws Exception {
+            return (String) proxy.retrieveAttributeValue("acceptorsAsJSON");
+         }
+
+         @Override
          public int getAddressCount() {
             return (Integer) proxy.retrieveAttributeValue("addressCount", 
Integer.class);
          }

Reply via email to