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


Reply via email to