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

tabish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 3856ce5ce5 ARTEMIS-5908 Ensure all configuration options checked
3856ce5ce5 is described below

commit 3856ce5ce54458a500d0bbbd19d63417f6ed5818
Author: Timothy Bish <[email protected]>
AuthorDate: Tue Feb 24 13:38:12 2026 -0500

    ARTEMIS-5908 Ensure all configuration options checked
    
    Ensure all fields in the policy elements for federation and bridges are
    checked so that the configuration update trigger sees them as having
    been changed and reloads them as intended.
---
 .../AMQPBridgeAddressPolicyElement.java            |   6 +-
 .../AMQPBridgeQueuePolicyElement.java              |   8 +-
 .../AMQPFederationAddressPolicyElement.java        |   6 +-
 .../AMQPFederationQueuePolicyElement.java          |   4 +-
 .../AMQPBridgeAddressPolicyElementTest.java        | 149 +++++++++++++++++++++
 .../AMQPBridgeQueuePolicyElementTest.java          | 141 +++++++++++++++++++
 .../AMQPFederationAddressPolicyElementTest.java    | 124 +++++++++++++++++
 .../AMQPFederationQueuePolicyElementTest.java      | 100 ++++++++++++++
 .../connect/AMQPBridgeConfigurationReloadTest.java |  10 +-
 .../AMQPFederationConfigurationReloadTest.java     |  13 +-
 .../tests/integration/jms/RedeployTest.java        | 149 +++++++++++++++++++++
 11 files changed, 698 insertions(+), 12 deletions(-)

diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElement.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElement.java
index c4f69cb94d..e06b1567d9 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElement.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElement.java
@@ -220,10 +220,12 @@ public final class AMQPBridgeAddressPolicyElement 
implements Serializable {
       return Objects.equals(name, other.name) &&
              Objects.equals(includes, other.includes) &&
              Objects.equals(excludes, other.excludes) &&
+             Objects.equals(properties, other.properties) &&
              Objects.equals(priority, other.priority) &&
              Objects.equals(includeDivertBindings, 
other.includeDivertBindings) &&
              Objects.equals(useDurableSubscriptions, 
other.useDurableSubscriptions) &&
              Objects.equals(filter, other.filter) &&
+             Objects.equals(transformerConfig, other.transformerConfig) &&
              Objects.equals(remoteAddress, other.remoteAddress) &&
              Objects.equals(remoteAddressPrefix, other.remoteAddressPrefix) &&
              Objects.equals(remoteAddressSuffix, other.remoteAddressSuffix) &&
@@ -232,8 +234,8 @@ public final class AMQPBridgeAddressPolicyElement 
implements Serializable {
 
    @Override
    public int hashCode() {
-      return Objects.hash(name, includes, excludes, filter, priority, 
remoteAddress, remoteAddressPrefix,
-                          remoteAddressSuffix, includeDivertBindings, 
useDurableSubscriptions,
+      return Objects.hash(name, includes, excludes, properties, filter, 
priority, remoteAddress, remoteAddressPrefix,
+                          remoteAddressSuffix, includeDivertBindings, 
useDurableSubscriptions, transformerConfig,
                           Arrays.hashCode(remoteTerminusCapabilities));
    }
 
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElement.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElement.java
index 7487f74bb7..b5d5087ed4 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElement.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElement.java
@@ -210,18 +210,22 @@ public final class AMQPBridgeQueuePolicyElement 
implements Serializable {
       return Objects.equals(name, other.name) &&
              Objects.equals(includes, other.includes) &&
              Objects.equals(excludes, other.excludes) &&
+             Objects.equals(properties, other.properties) &&
+             Objects.equals(transformerConfig, other.transformerConfig) &&
              Objects.equals(priority, other.priority) &&
              Objects.equals(priorityAdjustment, other.priorityAdjustment) &&
              Objects.equals(filter, other.filter) &&
              Objects.equals(remoteAddress, other.remoteAddress) &&
              Objects.equals(remoteAddressPrefix, other.remoteAddressPrefix) &&
+             Objects.equals(remoteAddressSuffix, other.remoteAddressSuffix) &&
              Arrays.equals(remoteTerminusCapabilities, 
other.remoteTerminusCapabilities);
    }
 
    @Override
    public int hashCode() {
-      return Objects.hash(name, includes, excludes, priority, 
priorityAdjustment, filter, remoteAddress,
-                          remoteAddressPrefix, 
Arrays.hashCode(remoteTerminusCapabilities));
+      return Objects.hash(name, includes, excludes, properties, priority, 
priorityAdjustment, filter, remoteAddress,
+                          remoteAddressPrefix, remoteAddressSuffix, 
Arrays.hashCode(remoteTerminusCapabilities),
+                          transformerConfig);
    }
 
    // We are required to implement a named match type so that we can perform 
this configuration
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElement.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElement.java
index 5f885fda0c..6ee4351fb7 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElement.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElement.java
@@ -185,15 +185,19 @@ public final class AMQPFederationAddressPolicyElement 
implements Serializable {
       return Objects.equals(name, other.name) &&
              Objects.equals(includes, other.includes) &&
              Objects.equals(excludes, other.excludes) &&
+             Objects.equals(properties, other.properties) &&
              Objects.equals(autoDelete, other.autoDelete) &&
              Objects.equals(autoDeleteDelay, other.autoDeleteDelay) &&
              Objects.equals(autoDeleteMessageCount, 
other.autoDeleteMessageCount) &&
+             Objects.equals(enableDivertBindings, other.enableDivertBindings) 
&&
+             Objects.equals(transformerConfig, other.transformerConfig) &&
              maxHops == other.maxHops;
    }
 
    @Override
    public int hashCode() {
-      return Objects.hash(name, includes, excludes, autoDelete, 
autoDeleteDelay, autoDeleteMessageCount, maxHops);
+      return Objects.hash(name, includes, excludes, properties, autoDelete, 
autoDeleteDelay,
+                          autoDeleteMessageCount, maxHops, 
enableDivertBindings, transformerConfig);
    }
 
    // We are required to implement a named match type so that we can perform 
this configuration
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElement.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElement.java
index 37662b8da6..a35f8e8b70 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElement.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElement.java
@@ -156,12 +156,14 @@ public final class AMQPFederationQueuePolicyElement 
implements Serializable {
              Objects.equals(name, other.name) &&
              Objects.equals(includes, other.includes) &&
              Objects.equals(excludes, other.excludes) &&
+             Objects.equals(properties, other.properties) &&
+             Objects.equals(transformerConfig, other.transformerConfig) &&
              Objects.equals(priorityAdjustment, other.priorityAdjustment);
    }
 
    @Override
    public int hashCode() {
-      return Objects.hash(name, includeFederated, includes, excludes, 
priorityAdjustment);
+      return Objects.hash(name, includeFederated, includes, excludes, 
properties, priorityAdjustment, transformerConfig);
    }
 
    // We are required to implement a named match type so that we can perform 
this configuration
diff --git 
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElementTest.java
 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElementTest.java
new file mode 100644
index 0000000000..3a0376e41b
--- /dev/null
+++ 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeAddressPolicyElementTest.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.artemis.core.config.amqpBrokerConnectivity;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
+import java.util.Map;
+
+import org.apache.activemq.artemis.core.config.TransformerConfiguration;
+import org.junit.Test;
+
+public class AMQPBridgeAddressPolicyElementTest {
+
+   @Test
+   public void testEqualsAndHashCode() {
+      AMQPBridgeAddressPolicyElement config1 = new 
AMQPBridgeAddressPolicyElement();
+      AMQPBridgeAddressPolicyElement config2 = new 
AMQPBridgeAddressPolicyElement();
+
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Transformer
+      final TransformerConfiguration transformer = new 
TransformerConfiguration("foo");
+      config1.setTransformerConfiguration(transformer);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setTransformerConfiguration(transformer);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Properties
+      final Map<String, Object> properties = Map.of("property", "value");
+      config1.setProperties(properties);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setProperties(properties);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Includes
+      config1.addToIncludes("address1");
+      config1.addToIncludes("address2");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToIncludes("address1");
+      config2.addToIncludes("address2");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Excludes
+      config1.addToExcludes("address10");
+      config1.addToExcludes("address20");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToExcludes("address10");
+      config2.addToExcludes("address20");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Name
+      config1.setName("test");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setName("test");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Address
+      config1.setRemoteAddress("address");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteAddress("address");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Address Prefix
+      config1.setRemoteAddressPrefix("address-prefix");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteAddressPrefix("address-prefix");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Address Suffix
+      config1.setRemoteAddressSuffix("address-suffix");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteAddressSuffix("address-suffix");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Terminus Capabilities
+      final String[] capabilities = {"test"};
+      config1.setRemoteTerminusCapabilities(capabilities);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteTerminusCapabilities(capabilities);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Divert Bindings
+      config1.setIncludeDivertBindings(true);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setIncludeDivertBindings(true);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Use durable subscriptions
+      config1.setUseDurableSubscriptions(true);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setUseDurableSubscriptions(true);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Priority
+      config1.setPriority(2);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setPriority(2);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Filter
+      config1.setFilter("color='red'");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setFilter("color='red'");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+   }
+}
diff --git 
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElementTest.java
 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElementTest.java
new file mode 100644
index 0000000000..3e5afae8bf
--- /dev/null
+++ 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPBridgeQueuePolicyElementTest.java
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.artemis.core.config.amqpBrokerConnectivity;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
+import java.util.Map;
+
+import org.apache.activemq.artemis.core.config.TransformerConfiguration;
+import org.junit.Test;
+
+public class AMQPBridgeQueuePolicyElementTest {
+
+   @Test
+   public void testEqualsAndHashCode() {
+      AMQPBridgeQueuePolicyElement config1 = new 
AMQPBridgeQueuePolicyElement();
+      AMQPBridgeQueuePolicyElement config2 = new 
AMQPBridgeQueuePolicyElement();
+
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Transformer
+      final TransformerConfiguration transformer = new 
TransformerConfiguration("foo");
+      config1.setTransformerConfiguration(transformer);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setTransformerConfiguration(transformer);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Properties
+      final Map<String, Object> properties = Map.of("property", "value");
+      config1.setProperties(properties);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setProperties(properties);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Includes
+      config1.addToIncludes("address1", "queue1");
+      config1.addToIncludes("address2", "queue2");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToIncludes("address1", "queue1");
+      config2.addToIncludes("address2", "queue2");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Excludes
+      config1.addToExcludes("address10", "queue10");
+      config1.addToExcludes("address20", "queue20");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToExcludes("address10", "queue10");
+      config2.addToExcludes("address20", "queue20");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Name
+      config1.setName("test");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setName("test");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Address
+      config1.setRemoteAddress("address");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteAddress("address");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Address Prefix
+      config1.setRemoteAddressPrefix("address-prefix");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteAddressPrefix("address-prefix");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Address Suffix
+      config1.setRemoteAddressSuffix("address-suffix");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteAddressSuffix("address-suffix");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Remote Terminus Capabilities
+      final String[] capabilities = {"test"};
+      config1.setRemoteTerminusCapabilities(capabilities);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setRemoteTerminusCapabilities(capabilities);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Priority
+      config1.setPriority(2);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setPriority(2);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Priority Adjustment
+      config1.setPriorityAdjustment(-2);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setPriorityAdjustment(-2);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Filter
+      config1.setFilter("color='red'");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setFilter("color='red'");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+   }
+}
diff --git 
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElementTest.java
 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElementTest.java
new file mode 100644
index 0000000000..f8fab0db19
--- /dev/null
+++ 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationAddressPolicyElementTest.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.artemis.core.config.amqpBrokerConnectivity;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
+import java.util.Map;
+
+import org.apache.activemq.artemis.core.config.TransformerConfiguration;
+import org.junit.Test;
+
+public class AMQPFederationAddressPolicyElementTest {
+
+   @Test
+   public void testEqualsAndHashCode() {
+      AMQPFederationAddressPolicyElement config1 = new 
AMQPFederationAddressPolicyElement();
+      AMQPFederationAddressPolicyElement config2 = new 
AMQPFederationAddressPolicyElement();
+
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Transformer
+      final TransformerConfiguration transformer = new 
TransformerConfiguration("foo");
+      config1.setTransformerConfiguration(transformer);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setTransformerConfiguration(transformer);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Properties
+      final Map<String, Object> properties = Map.of("property", "value");
+      config1.setProperties(properties);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setProperties(properties);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Includes
+      config1.addToIncludes("address1");
+      config1.addToIncludes("address2");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToIncludes("address1");
+      config2.addToIncludes("address2");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Excludes
+      config1.addToExcludes("address10");
+      config1.addToExcludes("address20");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToExcludes("address10");
+      config2.addToExcludes("address20");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Name
+      config1.setName("test");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setName("test");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Auto Delete
+      config1.setAutoDelete(true);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setAutoDelete(true);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Auto Delete Delay
+      config1.setAutoDeleteDelay(10L);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setAutoDeleteDelay(10L);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Auto Delete Message Count
+      config1.setAutoDeleteMessageCount(20L);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setAutoDeleteMessageCount(20L);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Divert Bindings
+      config1.setEnableDivertBindings(true);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setEnableDivertBindings(true);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Max Hops
+      config1.setMaxHops(10);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setMaxHops(10);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+   }
+}
diff --git 
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElementTest.java
 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElementTest.java
new file mode 100644
index 0000000000..304426eb8d
--- /dev/null
+++ 
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/amqpBrokerConnectivity/AMQPFederationQueuePolicyElementTest.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.artemis.core.config.amqpBrokerConnectivity;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
+import java.util.Map;
+
+import org.apache.activemq.artemis.core.config.TransformerConfiguration;
+import org.junit.Test;
+
+public class AMQPFederationQueuePolicyElementTest {
+
+   @Test
+   public void testEqualsAndHashCode() {
+      AMQPFederationQueuePolicyElement config1 = new 
AMQPFederationQueuePolicyElement();
+      AMQPFederationQueuePolicyElement config2 = new 
AMQPFederationQueuePolicyElement();
+
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Transformer
+      final TransformerConfiguration transformer = new 
TransformerConfiguration("foo");
+      config1.setTransformerConfiguration(transformer);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setTransformerConfiguration(transformer);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Properties
+      final Map<String, Object> properties = Map.of("property", "value");
+      config1.setProperties(properties);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setProperties(properties);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Includes
+      config1.addToIncludes("address1", "queue1");
+      config1.addToIncludes("address2", "queue2");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToIncludes("address1", "queue1");
+      config2.addToIncludes("address2", "queue2");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Excludes
+      config1.addToExcludes("address10", "queue10");
+      config1.addToExcludes("address20", "queue20");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.addToExcludes("address10", "queue10");
+      config2.addToExcludes("address20", "queue20");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Name
+      config1.setName("test");
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setName("test");
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Priority Adjustment
+      config1.setPriorityAdjustment(-2);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setPriorityAdjustment(-2);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+
+      // Include Federated
+      config1.setIncludeFederated(true);
+      assertNotEquals(config1, config2);
+      assertNotEquals(config1.hashCode(), config2.hashCode());
+      config2.setIncludeFederated(true);
+      assertEquals(config1, config2);
+      assertEquals(config1.hashCode(), config2.hashCode());
+   }
+}
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java
index 249e500c91..88ff2bd047 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java
@@ -127,12 +127,16 @@ class AMQPBridgeConfigurationReloadTest extends 
AmqpClientTestSupport {
             final AMQPBridgeBrokerConnectionElement updatedElement = new 
AMQPBridgeBrokerConnectionElement();
             updatedElement.setName(getTestName());
             
updatedElement.addBridgeFromAddressPolicy(updatedReceiveFromAddress);
+            updatedElement.addProperty(ADDRESS_RECEIVER_IDLE_TIMEOUT, 0);
 
-            amqpConnection.getConnectionElements().clear();
-            amqpConnection.addElement(updatedElement); // This should be 
equivalent to replacing the previous instance.
+            final AMQPBrokerConnectConfiguration amqpConnectionUpdated =
+               new AMQPBrokerConnectConfiguration(getTestName(), "tcp://" + 
remoteURI.getHost() + ":" + remoteURI.getPort());
+            amqpConnectionUpdated.setReconnectAttempts(0);// No reconnects
+            amqpConnectionUpdated.addElement(updatedElement);
+            amqpConnectionUpdated.parseURI();
 
             server.getConfiguration().getAMQPConnection().clear();
-            server.getConfiguration().addAMQPConnection(amqpConnection);
+            server.getConfiguration().addAMQPConnection(amqpConnectionUpdated);
 
             protocolFactory.updateProtocolServices(server, 
Collections.emptyList());
 
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPFederationConfigurationReloadTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPFederationConfigurationReloadTest.java
index 5e40198ef7..75f916465e 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPFederationConfigurationReloadTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPFederationConfigurationReloadTest.java
@@ -169,16 +169,23 @@ public class AMQPFederationConfigurationReloadTest 
extends AmqpClientTestSupport
             updatedReceiveFromAddress.setAutoDelete(true);
             updatedReceiveFromAddress.setAutoDeleteDelay(10_000L);
             updatedReceiveFromAddress.setAutoDeleteMessageCount(-1L);
+            
updatedReceiveFromAddress.addProperty(ADDRESS_RECEIVER_IDLE_TIMEOUT, 2);
 
             final AMQPFederatedBrokerConnectionElement updatedElement = new 
AMQPFederatedBrokerConnectionElement();
             updatedElement.setName(getTestName());
             updatedElement.addLocalAddressPolicy(updatedReceiveFromAddress);
 
-            amqpConnection.getConnectionElements().clear();
-            amqpConnection.addElement(updatedElement); // This should be 
equivalent to replacing the previous instance.
+            final AMQPBrokerConnectConfiguration amqpUpdatedConnection =
+               new AMQPBrokerConnectConfiguration(getTestName(), "tcp://" + 
remoteURI.getHost() + ":" + remoteURI.getPort());
+            amqpUpdatedConnection.setReconnectAttempts(0);// No reconnects
+            amqpUpdatedConnection.addElement(element);
+            amqpUpdatedConnection.parseURI();
+
+            amqpUpdatedConnection.getConnectionElements().clear();
+            amqpUpdatedConnection.addElement(updatedElement); // This should 
be equivalent to replacing the previous instance.
 
             server.getConfiguration().getAMQPConnection().clear();
-            server.getConfiguration().addAMQPConnection(amqpConnection);
+            server.getConfiguration().addAMQPConnection(amqpUpdatedConnection);
 
             protocolFactory.updateProtocolServices(server, 
Collections.emptyList());
 
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java
index bf1a6dd362..8dd4e52f99 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java
@@ -36,6 +36,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
 import java.nio.file.StandardOpenOption;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -54,6 +55,10 @@ import 
org.apache.activemq.artemis.api.core.client.ServerLocator;
 import org.apache.activemq.artemis.api.core.management.AcceptorControl;
 import org.apache.activemq.artemis.api.core.management.ConnectionRouterControl;
 import org.apache.activemq.artemis.core.config.Configuration;
+import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectConfiguration;
+import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPBrokerConnectionElement;
+import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPFederatedBrokerConnectionElement;
+import 
org.apache.activemq.artemis.core.config.amqpBrokerConnectivity.AMQPFederationQueuePolicyElement;
 import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl;
 import org.apache.activemq.artemis.core.postoffice.Binding;
 import org.apache.activemq.artemis.core.postoffice.QueueBinding;
@@ -62,6 +67,7 @@ import 
org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding;
 import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants;
 import org.apache.activemq.artemis.core.security.CheckType;
 import org.apache.activemq.artemis.core.security.Role;
+import org.apache.activemq.artemis.core.server.BrokerConnection;
 import 
org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType;
 import 
org.apache.activemq.artemis.core.server.cluster.impl.RemoteQueueBindingImpl;
 import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ;
@@ -73,6 +79,7 @@ import 
org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy;
 import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
 import org.apache.activemq.artemis.jms.client.ActiveMQDestination;
+import org.apache.activemq.artemis.protocol.amqp.connect.AMQPBrokerConnection;
 import 
org.apache.activemq.artemis.tests.unit.core.postoffice.impl.fakes.FakeQueue;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.apache.activemq.artemis.tests.util.Wait;
@@ -2166,6 +2173,148 @@ public class RedeployTest extends ActiveMQTestBase {
       }
    }
 
+   @Test
+   public void 
testUpdateFederationPolicyInBrokerPropertiesRedeploysNewBrokerConnection() 
throws Exception {
+      Path brokerXML = getTestDirfile().toPath().resolve("broker.xml");
+      URL url1 = 
RedeployTest.class.getClassLoader().getResource("reload-acceptor.xml");
+      Path brokerProperties = 
getTestDirfile().toPath().resolve("broker.properties");
+      Files.copy(url1.openStream(), brokerXML);
+
+      final Properties properties = new 
ConfigurationImpl.InsertionOrderedProperties();
+
+      properties.put("AMQPConnections.federation-example-server.uri", 
"tcp://localhost:5770");
+      properties.put("AMQPConnections.federation-example-server.autostart", 
"true");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.type",
 "FEDERATION");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.includeFederated",
 "false");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.includes.tracking.addressMatch",
 "#");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.includes.tracking.queueMatch",
 "tracking");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.name",
 "queue-federation-from-server-2");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.properties.amqpCredits",
 "0");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.properties.amqpPullConsumerCredits",
 "1");
+      
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.name",
 "federation-example-server");
+      properties.put("AMQPConnections.federation-example-server.name", 
"federation-example-server");
+      
properties.put("AMQPConnections.federation-example-server.reconnectAttempts", 
"-1");
+      
properties.put("AMQPConnections.federation-example-server.retryInterval", 
"1000");
+      
properties.put("AMQPConnections.federation-example-server.transportConfigurations.federation-example-server.name",
 "federation-example-server");
+      
properties.put("AMQPConnections.federation-example-server.transportConfigurations.federation-example-server.params.port",
 "5770");
+      
properties.put("AMQPConnections.federation-example-server.transportConfigurations.federation-example-server.params.host",
 "localhost");
+
+      Writer propertiesWriter = Files.newBufferedWriter(brokerProperties, 
StandardOpenOption.WRITE,
+                                                                          
StandardOpenOption.CREATE,
+                                                                          
StandardOpenOption.TRUNCATE_EXISTING);
+      try {
+         properties.store(propertiesWriter, null);
+      } finally {
+         propertiesWriter.flush();
+         propertiesWriter.close();
+      }
+
+      final MBeanServer mBeanServer = MBeanServerFactory.createMBeanServer();
+      runAfter(() -> MBeanServerFactory.releaseMBeanServer(mBeanServer));
+
+      EmbeddedActiveMQ embeddedActiveMQ = new EmbeddedActiveMQ();
+      embeddedActiveMQ.setPropertiesResourcePath(brokerProperties.toString());
+      embeddedActiveMQ.setConfigResourcePath(brokerXML.toUri().toString());
+      embeddedActiveMQ.setMbeanServer(mBeanServer);
+      embeddedActiveMQ.start();
+
+      final ReusableLatch latch = new ReusableLatch(1);
+      final Runnable tick = latch::countDown;
+
+      embeddedActiveMQ.getActiveMQServer().getReloadManager().setTick(tick);
+
+      try {
+         latch.await(10, TimeUnit.SECONDS);
+
+         final TransportConfiguration acceptor = 
findInConfiguration("artemis", 
embeddedActiveMQ.getActiveMQServer().getConfiguration());
+
+         assertNotNull(acceptor);
+         assertEquals("127.0.0.1", 
acceptor.getParams().get(TransportConstants.HOST_PROP_NAME));
+         assertEquals("61616", 
acceptor.getParams().get(TransportConstants.PORT_PROP_NAME));
+         assertNull(acceptor.getParams().get(TransportConstants.AUTO_START));
+
+         final Collection<BrokerConnection> connections = 
embeddedActiveMQ.getActiveMQServer().getBrokerConnections();
+
+         assertFalse(connections.isEmpty());
+         assertEquals(1, connections.size());
+
+         final AMQPBrokerConnection amqpConnection = (AMQPBrokerConnection) 
connections.iterator().next();
+
+         assertEquals("federation-example-server", amqpConnection.getName());
+
+         final AMQPBrokerConnectConfiguration configuration = 
amqpConnection.getConfiguration();
+         final List<AMQPBrokerConnectionElement> federations = 
configuration.getFederations();
+
+         assertEquals(1, federations.size());
+
+         final AMQPFederatedBrokerConnectionElement federation = 
(AMQPFederatedBrokerConnectionElement) federations.get(0);
+         final Set<AMQPFederationQueuePolicyElement> policies = 
federation.getLocalQueuePolicies();
+
+         assertEquals(1, policies.size());
+
+         final AMQPFederationQueuePolicyElement element = 
policies.iterator().next();
+
+         assertEquals("1", 
element.getProperties().get("amqpPullConsumerCredits"));
+
+         properties.clear();
+         properties.put("AMQPConnections.federation-example-server.uri", 
"tcp://localhost:5770");
+         properties.put("AMQPConnections.federation-example-server.autostart", 
"true");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.type",
 "FEDERATION");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.includeFederated",
 "false");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.includes.tracking.addressMatch",
 "#");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.includes.tracking.queueMatch",
 "tracking");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.name",
 "queue-federation-from-server-2");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.properties.amqpCredits",
 "0");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.localQueuePolicies.queue-federation-from-server-2.properties.amqpPullConsumerCredits",
 "10");
+         
properties.put("AMQPConnections.federation-example-server.federations.federation-example-server.name",
 "federation-example-server");
+         properties.put("AMQPConnections.federation-example-server.name", 
"federation-example-server");
+         
properties.put("AMQPConnections.federation-example-server.reconnectAttempts", 
"-1");
+         
properties.put("AMQPConnections.federation-example-server.retryInterval", 
"1000");
+         
properties.put("AMQPConnections.federation-example-server.transportConfigurations.federation-example-server.name",
 "federation-example-server");
+         
properties.put("AMQPConnections.federation-example-server.transportConfigurations.federation-example-server.params.port",
 "5770");
+         
properties.put("AMQPConnections.federation-example-server.transportConfigurations.federation-example-server.params.host",
 "localhost");
+
+         propertiesWriter = Files.newBufferedWriter(brokerProperties, 
StandardOpenOption.WRITE,
+                                                                      
StandardOpenOption.TRUNCATE_EXISTING);
+
+         try {
+            properties.store(propertiesWriter, null);
+         } finally {
+            propertiesWriter.flush();
+            propertiesWriter.close();
+         }
+
+         latch.setCount(1);
+         embeddedActiveMQ.getActiveMQServer().getReloadManager().setTick(tick);
+         latch.await(10, TimeUnit.SECONDS);
+
+         final Collection<BrokerConnection> updatedConnections = 
embeddedActiveMQ.getActiveMQServer().getBrokerConnections();
+
+         assertFalse(updatedConnections.isEmpty());
+         assertEquals(1, updatedConnections.size());
+
+         final AMQPBrokerConnection amqpConnectionUpdated = 
(AMQPBrokerConnection) updatedConnections.iterator().next();
+
+         assertEquals("federation-example-server", 
amqpConnectionUpdated.getName());
+
+         final AMQPBrokerConnectConfiguration updatedConfiguration = 
amqpConnectionUpdated.getConfiguration();
+         final List<AMQPBrokerConnectionElement> updatedFederations = 
updatedConfiguration.getFederations();
+
+         assertEquals(1, updatedFederations.size());
+
+         final AMQPFederatedBrokerConnectionElement updatedFederation = 
(AMQPFederatedBrokerConnectionElement) updatedFederations.get(0);
+         final Set<AMQPFederationQueuePolicyElement> updatedPolicies = 
updatedFederation.getLocalQueuePolicies();
+
+         assertEquals(1, updatedPolicies.size());
+
+         final AMQPFederationQueuePolicyElement updatedElement = 
updatedPolicies.iterator().next();
+
+         assertEquals("10", 
updatedElement.getProperties().get("amqpPullConsumerCredits"));
+      } finally {
+         embeddedActiveMQ.stop();
+      }
+   }
+
    private TransportConfiguration findInConfiguration(String acceptorName, 
Configuration configuration) {
       final Set<TransportConfiguration> acceptors = 
configuration.getAcceptorConfigurations();
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to