gemmellr commented on code in PR #6244:
URL: https://github.com/apache/artemis/pull/6244#discussion_r2847386173


##########
tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java:
##########
@@ -152,6 +156,90 @@ public void 
testBridgeConfigurationWithoutChangesIsIgnoredOnUpdate() throws Exce
       }
    }
 
+   @Test
+   @Timeout(20)
+   public void testBridgeConfigurationWithChangeedPropertiesIsUpdated() throws 
Exception {
+      try (ProtonTestServer peer = new ProtonTestServer()) {
+         peer.expectSASLAnonymousConnect();
+         peer.expectOpen().respond();
+         peer.expectBegin().respond();
+         peer.start();
+
+         final URI remoteURI = peer.getServerURI();
+         logger.info("Test started, peer listening on: {}", remoteURI);
+
+         final AMQPBridgeAddressPolicyElement receiveFromAddress = new 
AMQPBridgeAddressPolicyElement();
+         receiveFromAddress.setName("address-policy");
+         receiveFromAddress.addToIncludes(getTestName());
+         receiveFromAddress.addToExcludes("test.ignore.#");
+         receiveFromAddress.setPriority(1);
+
+         final AMQPBridgeBrokerConnectionElement element = new 
AMQPBridgeBrokerConnectionElement();
+         element.setName(getTestName());
+         element.addBridgeFromAddressPolicy(receiveFromAddress);
+         element.addProperty(ADDRESS_RECEIVER_IDLE_TIMEOUT, 0);
+
+         final AMQPBrokerConnectConfiguration amqpConnection =
+            new AMQPBrokerConnectConfiguration(getTestName(), "tcp://" + 
remoteURI.getHost() + ":" + remoteURI.getPort());
+         amqpConnection.setReconnectAttempts(0);// No reconnects
+         amqpConnection.addElement(element);
+
+         server.getConfiguration().addAMQPConnection(amqpConnection);
+         server.start();
+         server.addAddressInfo(new AddressInfo(SimpleString.of(getTestName()), 
RoutingType.MULTICAST));
+
+         peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
+         peer.expectAttach().ofReceiver()
+                            .withName(allOf(containsString(getTestName()),
+                                            containsString("address-receiver"),
+                                            containsString("amqp-bridge"),
+                                            
containsString(server.getNodeID().toString())))
+                            .respond();
+         peer.expectFlow().withLinkCredit(1000);
+
+         final ConnectionFactory factory = 
CFUtil.createConnectionFactory("AMQP", "tcp://localhost:" + AMQP_PORT);
+
+         try (Connection connection = factory.createConnection()) {
+            final Session session = 
connection.createSession(Session.AUTO_ACKNOWLEDGE);
+            session.createConsumer(session.createTopic(getTestName()));
+
+            final ProtonProtocolManagerFactory protocolFactory = 
(ProtonProtocolManagerFactory)
+               server.getRemotingService().getProtocolFactoryMap().get("AMQP");
+            assertNotNull(protocolFactory);
+
+            final AMQPBridgeAddressPolicyElement updatedReceiveFromAddress = 
new AMQPBridgeAddressPolicyElement();
+            updatedReceiveFromAddress.setName("address-policy");
+            updatedReceiveFromAddress.addToIncludes(getTestName());
+            updatedReceiveFromAddress.addToExcludes("test.ignore.#");
+            updatedReceiveFromAddress.setPriority(1);
+
+            final AMQPBridgeBrokerConnectionElement updatedElement = new 
AMQPBridgeBrokerConnectionElement();
+            updatedElement.setName(getTestName());
+            
updatedElement.addBridgeFromAddressPolicy(updatedReceiveFromAddress);
+            updatedElement.addProperty(ADDRESS_RECEIVER_IDLE_TIMEOUT, 10);
+
+            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(amqpConnectionUpdated);
+
+            connection.start();
+
+            peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
+            peer.expectConnectionToDrop(); // Configuration update triggers 
connection close and restore.
+
+            protocolFactory.updateProtocolServices(server, 
Collections.emptyList());
+
+            peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
+            peer.close();

Review Comment:
   If its dropping and restoring per earlier comment, shouldnt there be more 
expectations for the restore? Is there a race to close the peer if not? Comment 
could make things clearer either way.



##########
tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java:
##########
@@ -152,6 +156,90 @@ public void 
testBridgeConfigurationWithoutChangesIsIgnoredOnUpdate() throws Exce
       }
    }
 
+   @Test
+   @Timeout(20)
+   public void testBridgeConfigurationWithChangeedPropertiesIsUpdated() throws 
Exception {

Review Comment:
   ```suggestion
      public void testBridgeConfigurationWithChangedPropertiesIsUpdated() 
throws Exception {
   ```



##########
tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeConfigurationReloadTest.java:
##########
@@ -152,6 +156,90 @@ public void 
testBridgeConfigurationWithoutChangesIsIgnoredOnUpdate() throws Exce
       }
    }
 
+   @Test
+   @Timeout(20)
+   public void testBridgeConfigurationWithChangeedPropertiesIsUpdated() throws 
Exception {
+      try (ProtonTestServer peer = new ProtonTestServer()) {
+         peer.expectSASLAnonymousConnect();
+         peer.expectOpen().respond();
+         peer.expectBegin().respond();
+         peer.start();
+
+         final URI remoteURI = peer.getServerURI();
+         logger.info("Test started, peer listening on: {}", remoteURI);
+
+         final AMQPBridgeAddressPolicyElement receiveFromAddress = new 
AMQPBridgeAddressPolicyElement();
+         receiveFromAddress.setName("address-policy");
+         receiveFromAddress.addToIncludes(getTestName());
+         receiveFromAddress.addToExcludes("test.ignore.#");
+         receiveFromAddress.setPriority(1);
+
+         final AMQPBridgeBrokerConnectionElement element = new 
AMQPBridgeBrokerConnectionElement();
+         element.setName(getTestName());
+         element.addBridgeFromAddressPolicy(receiveFromAddress);
+         element.addProperty(ADDRESS_RECEIVER_IDLE_TIMEOUT, 0);
+
+         final AMQPBrokerConnectConfiguration amqpConnection =
+            new AMQPBrokerConnectConfiguration(getTestName(), "tcp://" + 
remoteURI.getHost() + ":" + remoteURI.getPort());
+         amqpConnection.setReconnectAttempts(0);// No reconnects
+         amqpConnection.addElement(element);
+
+         server.getConfiguration().addAMQPConnection(amqpConnection);
+         server.start();
+         server.addAddressInfo(new AddressInfo(SimpleString.of(getTestName()), 
RoutingType.MULTICAST));
+
+         peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
+         peer.expectAttach().ofReceiver()
+                            .withName(allOf(containsString(getTestName()),
+                                            containsString("address-receiver"),
+                                            containsString("amqp-bridge"),
+                                            
containsString(server.getNodeID().toString())))
+                            .respond();
+         peer.expectFlow().withLinkCredit(1000);
+
+         final ConnectionFactory factory = 
CFUtil.createConnectionFactory("AMQP", "tcp://localhost:" + AMQP_PORT);
+
+         try (Connection connection = factory.createConnection()) {
+            final Session session = 
connection.createSession(Session.AUTO_ACKNOWLEDGE);
+            session.createConsumer(session.createTopic(getTestName()));
+
+            final ProtonProtocolManagerFactory protocolFactory = 
(ProtonProtocolManagerFactory)
+               server.getRemotingService().getProtocolFactoryMap().get("AMQP");
+            assertNotNull(protocolFactory);
+
+            final AMQPBridgeAddressPolicyElement updatedReceiveFromAddress = 
new AMQPBridgeAddressPolicyElement();
+            updatedReceiveFromAddress.setName("address-policy");
+            updatedReceiveFromAddress.addToIncludes(getTestName());
+            updatedReceiveFromAddress.addToExcludes("test.ignore.#");
+            updatedReceiveFromAddress.setPriority(1);
+
+            final AMQPBridgeBrokerConnectionElement updatedElement = new 
AMQPBridgeBrokerConnectionElement();
+            updatedElement.setName(getTestName());
+            
updatedElement.addBridgeFromAddressPolicy(updatedReceiveFromAddress);
+            updatedElement.addProperty(ADDRESS_RECEIVER_IDLE_TIMEOUT, 10);

Review Comment:
   This bit might be clearer later to have a comment on the changed property



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to