ARTEMIS-3404 - expose max retry interval on bridge mbean

https://issues.apache.org/jira/browse/ARTEMIS-3404
This commit is contained in:
Andy Taylor 2021-07-27 11:56:27 +01:00 committed by Clebert Suconic
parent 6b8fdcb079
commit c358688fd6
5 changed files with 29 additions and 0 deletions

View File

@ -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);
}

View File

@ -89,6 +89,12 @@ public interface BridgeControl extends ActiveMQComponentControl {
@Attribute(desc = "retry interval multiplier used by this bridge")
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.
*/

View File

@ -171,6 +171,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()) {

View File

@ -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();

View File

@ -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));