tabish121 commented on code in PR #6244:
URL: https://github.com/apache/artemis/pull/6244#discussion_r2847762635
##########
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:
Comment added, test peer can't currently script checks on this reconnect
transition.
--
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]