This is an automated email from the ASF dual-hosted git repository.
mattrpav pushed a commit to branch activemq-5.19.x
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/activemq-5.19.x by this push:
new 1171fd8e3d [AMQ-9672] Add auto start config flag for connectors
1171fd8e3d is described below
commit 1171fd8e3d3d3efa09bc21c939f5296589e23ee1
Author: Matt Pavlovich <[email protected]>
AuthorDate: Wed Feb 26 22:42:25 2025 -0600
[AMQ-9672] Add auto start config flag for connectors
(cherry picked from commit d600a25bed5804f7acfdd1d051f3dec1e5812dfa)
---
.../java/org/apache/activemq/broker/BrokerService.java | 18 ++++++++++++++----
.../java/org/apache/activemq/broker/Connector.java | 2 ++
.../org/apache/activemq/broker/TransportConnector.java | 11 +++++++++++
.../org/apache/activemq/broker/jmx/ConnectorView.java | 5 +++++
.../apache/activemq/broker/jmx/ConnectorViewMBean.java | 6 ++++++
.../activemq/broker/jmx/NetworkConnectorView.java | 4 ++++
.../activemq/broker/jmx/NetworkConnectorViewMBean.java | 1 +
.../activemq/network/NetworkBridgeConfiguration.java | 9 +++++++++
.../org/apache/activemq/network/NetworkConnector.java | 1 -
9 files changed, 52 insertions(+), 5 deletions(-)
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
index 0fb262418f..75487cdba7 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java
@@ -2712,15 +2712,23 @@ public class BrokerService implements Service {
@Override
public void run() {
try {
- LOG.info("Async start of {}", connector);
- connector.start();
+ if(connector.isAutoStart()) {
+ LOG.info("Async start of {}", connector);
+ connector.start();
+ } else {
+ LOG.debug("Async start disabled for {}",
connector);
+ }
} catch(Exception e) {
LOG.error("Async start of network connector: {}
failed", connector, e);
}
}
});
} else {
- connector.start();
+ if(connector.isAutoStart()) {
+ connector.start();
+ } else {
+ LOG.debug("Auto start disabled for {}", connector);
+ }
}
}
@@ -2735,7 +2743,9 @@ public class BrokerService implements Service {
connector = registerConnectorMBean(connector);
}
connector.getStatistics().setEnabled(enableStatistics);
- connector.start();
+ if(connector.isAutoStart()) {
+ connector.start();
+ }
return connector;
}
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/Connector.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/Connector.java
index 99d8026689..314a092571 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/Connector.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/Connector.java
@@ -80,6 +80,8 @@ public interface Connector extends Service {
long getMaxConnectionExceededCount();
+ boolean isAutoStart();
+
/**
* @return true if connector is started
*/
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
index 78ab04cc70..8cc6ee8869 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnector.java
@@ -80,6 +80,7 @@ public class TransportConnector implements Connector,
BrokerServiceAware {
private boolean allowLinkStealing = false;
private boolean warnOnRemoteClose = false;
private boolean displayStackTrace = false;
+ private boolean autoStart = true;
LinkedList<String> peerBrokers = new LinkedList<String>();
private AtomicBoolean started = new AtomicBoolean(false);
@@ -131,6 +132,7 @@ public class TransportConnector implements Connector,
BrokerServiceAware {
rc.setPublishedAddressPolicy(getPublishedAddressPolicy());
rc.setAllowLinkStealing(allowLinkStealing);
rc.setWarnOnRemoteClose(isWarnOnRemoteClose());
+ rc.setAutoStart(isAutoStart());
return rc;
}
@@ -696,4 +698,13 @@ public class TransportConnector implements Connector,
BrokerServiceAware {
public boolean isStarted() {
return started.get();
}
+
+ public void setAutoStart(boolean autoStart) {
+ this.autoStart = autoStart;
+ }
+
+ @Override
+ public boolean isAutoStart() {
+ return autoStart;
+ }
}
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorView.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorView.java
index 3c7fbc91bc..4493e06a96 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorView.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorView.java
@@ -142,6 +142,11 @@ public class ConnectorView implements ConnectorViewMBean {
return this.connector.getMaxConnectionExceededCount();
}
+ @Override
+ public boolean isAutoStart() {
+ return this.connector.isAutoStart();
+ }
+
@Override
public boolean isStarted() {
return this.connector.isStarted();
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorViewMBean.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorViewMBean.java
index 547798574e..e089447c56 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorViewMBean.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ConnectorViewMBean.java
@@ -90,6 +90,12 @@ public interface ConnectorViewMBean extends Service {
@MBeanInfo("Max connection exceeded count")
long getMaxConnectionExceededCount();
+ /**
+ * @return true if transport connector auto start is enabled
+ */
+ @MBeanInfo("Auto-start enabled")
+ boolean isAutoStart();
+
/**
* @return true if transport connector is started
*/
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java
index 18e00e6cb7..05e6747dd7 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java
@@ -199,4 +199,8 @@ public class NetworkConnectorView implements
NetworkConnectorViewMBean {
connector.setRemoteUserName(remoteUserName);
}
+ @Override
+ public boolean isAutoStart() {
+ return connector.isAutoStart();
+ }
}
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java
index 3dac547f88..e51b9a16ca 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java
@@ -89,4 +89,5 @@ public interface NetworkConnectorViewMBean extends Service {
void setRemotePassword(String remotePassword);
+ boolean isAutoStart();
}
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
index 37e88d0c0a..87ad022606 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
@@ -79,6 +79,7 @@ public class NetworkBridgeConfiguration {
private boolean gcDestinationViews = true;
private long gcSweepTime = 60 * 1000;
private boolean checkDuplicateMessagesOnDuplex = false;
+ private boolean autoStart = true;
/**
* Bridge factory implementation - by default backed by static factory,
which is default implementation and will rely change.
@@ -598,4 +599,12 @@ public class NetworkBridgeConfiguration {
public SslContext getSslContext() {
return sslContext;
}
+
+ public void setAutoStart(boolean autoStart) {
+ this.autoStart = autoStart;
+ }
+
+ public boolean isAutoStart() {
+ return autoStart;
+ }
}
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java
b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java
index 162912a32d..1bbc483d5c 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java
@@ -37,7 +37,6 @@ import org.apache.activemq.broker.jmx.NetworkBridgeViewMBean;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ConsumerId;
import org.apache.activemq.transport.Transport;
-import org.apache.activemq.transport.TransportFactory;
import org.apache.activemq.util.ServiceStopper;
import org.apache.activemq.util.ServiceSupport;
import org.slf4j.Logger;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact