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

[activemq-artemis] branch main updated: ARTEMIS-3404 - expose max retry interval on bridge mbean

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 c358688  ARTEMIS-3404 - expose max retry interval on bridge mbean
     new b15bd46  This closes #3675
c358688 is described below

commit c358688fd656c362e52ebf13af803c71f2b3b625
Author: Andy Taylor <an...@gmail.com>
AuthorDate: Tue Jul 27 11:56:27 2021 +0100

    ARTEMIS-3404 - expose max retry interval on bridge mbean
    
    https://issues.apache.org/jira/browse/ARTEMIS-3404
---
 .../java/org/apache/activemq/artemis/logs/AuditLogger.java  |  8 ++++++++
 .../activemq/artemis/api/core/management/BridgeControl.java |  6 ++++++
 .../artemis/core/management/impl/BridgeControlImpl.java     | 13 +++++++++++++
 .../tests/integration/management/BridgeControlTest.java     |  1 +
 .../integration/management/BridgeControlUsingCoreTest.java  |  1 +
 5 files changed, 29 insertions(+)

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 94a879c..ff9c780 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
@@ -2843,4 +2843,12 @@ public interface AuditLogger extends BasicLogger {
    @LogMessage(level = Logger.Level.INFO)
    @Message(id = 601747, value = "User {0} is getting auto-created property on target resource: {1} {2}", format = Message.Format.MESSAGE_FORMAT)
    void isAutoCreated(String user, Object source, Object... args);
+
+   static void getMaxRetryInterval(Object source) {
+      BASE_LOGGER.getMaxRetryInterval(getCaller(), source);
+   }
+
+   @LogMessage(level = Logger.Level.INFO)
+   @Message(id = 601748, value = "User {0} is getting max retry interval on target resource: {1} {2}", format = Message.Format.MESSAGE_FORMAT)
+   void getMaxRetryInterval(String user, Object source, Object... args);
 }
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/BridgeControl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/BridgeControl.java
index 9dd7dc8..cbe741c 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/BridgeControl.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/BridgeControl.java
@@ -90,6 +90,12 @@ public interface BridgeControl extends ActiveMQComponentControl {
    double getRetryIntervalMultiplier();
 
    /**
+    * Returns the max retry interval used by this bridge.
+    */
+   @Attribute(desc = "max retry interval used by this bridge")
+   long getMaxRetryInterval();
+
+   /**
     * Returns the number of reconnection attempts used by this bridge.
     */
    @Attribute(desc = "number of reconnection attempts used by this bridge")
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/BridgeControlImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/BridgeControlImpl.java
index b062246..c09d5d5 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/BridgeControlImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/BridgeControlImpl.java
@@ -172,6 +172,19 @@ public class BridgeControlImpl extends AbstractControl implements BridgeControl
    }
 
    @Override
+   public long getMaxRetryInterval() {
+      if (AuditLogger.isBaseLoggingEnabled()) {
+         AuditLogger.getMaxRetryInterval(this.bridge);
+      }
+      clearIO();
+      try {
+         return configuration.getMaxRetryInterval();
+      } finally {
+         blockOnIO();
+      }
+   }
+
+   @Override
    public String getTransformerClassName() {
       if (AuditLogger.isBaseLoggingEnabled()) {
          AuditLogger.getTransformerClassName(this.bridge);
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java
index 7c50984..b59fda9 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java
@@ -63,6 +63,7 @@ public class BridgeControlTest extends ManagementTestBase {
       Assert.assertEquals(bridgeConfig.getFilterString(), bridgeControl.getFilterString());
       Assert.assertEquals(bridgeConfig.getRetryInterval(), bridgeControl.getRetryInterval());
       Assert.assertEquals(bridgeConfig.getRetryIntervalMultiplier(), bridgeControl.getRetryIntervalMultiplier(), 0.000001);
+      Assert.assertEquals(bridgeConfig.getMaxRetryInterval(), bridgeControl.getMaxRetryInterval());
       Assert.assertEquals(bridgeConfig.getReconnectAttempts(), bridgeControl.getReconnectAttempts());
       Assert.assertEquals(bridgeConfig.isUseDuplicateDetection(), bridgeControl.isUseDuplicateDetection());
       Map<String, Object> bridgeMetrics = bridgeControl.getMetrics();
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java
index 76edbde..7059a55 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java
@@ -67,6 +67,7 @@ public class BridgeControlUsingCoreTest extends ManagementTestBase {
       Assert.assertEquals(bridgeConfig.getFilterString(), proxy.retrieveAttributeValue("filterString"));
       Assert.assertEquals(bridgeConfig.getRetryInterval(), proxy.retrieveAttributeValue("retryInterval", Long.class));
       Assert.assertEquals(bridgeConfig.getRetryIntervalMultiplier(), proxy.retrieveAttributeValue("retryIntervalMultiplier", Double.class));
+      Assert.assertEquals(bridgeConfig.getMaxRetryInterval(), proxy.retrieveAttributeValue("maxRetryInterval", Long.class));
       Assert.assertEquals(bridgeConfig.getReconnectAttempts(), proxy.retrieveAttributeValue("reconnectAttempts", Integer.class));
       Assert.assertEquals(bridgeConfig.isUseDuplicateDetection(), proxy.retrieveAttributeValue("useDuplicateDetection", Boolean.class));