[ 
https://issues.apache.org/jira/browse/ARTEMIS-5437?focusedWorklogId=967333&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-967333
 ]

ASF GitHub Bot logged work on ARTEMIS-5437:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 23/Apr/25 19:22
            Start Date: 23/Apr/25 19:22
    Worklog Time Spent: 10m 
      Work Description: clebertsuconic commented on code in PR #5647:
URL: https://github.com/apache/activemq-artemis/pull/5647#discussion_r2056747438


##########
tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/connect/AMQPBridgeToAddressTest.java:
##########
@@ -178,35 +179,30 @@ public void 
testBridgeCreatesAddressSenderWhenLocalAddressIsStaticlyDefined() th
          // should be the thing that triggers the bridging. The connection 
should remain active and
          // respond if the address is recreated later.
          logger.info("Removing Address from bridged address to eliminate 
sender");
-         server.removeAddressInfo(SimpleString.of(getTestName()), null, true);
-
-         peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
+         server.removeAddressInfo(SimpleString.of(getTestName() + ".1"), null, 
true);
 
          Wait.assertFalse(() -> 
server.addressQuery(SimpleString.of(getTestName())).isExists());
 
+         peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
+
+         peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
          peer.expectAttach().ofSender()
-                            .withTarget().withAddress(getTestName()).also()
-                            .withSource().withAddress(getTestName()).also()
-                            .withName(allOf(containsString(getTestName()),
+                            .withTarget().withAddress(getTestName() + 
".2").also()
+                            .withSource().withAddress(getTestName() + 
".2").also()
+                            .withName(allOf(containsString(getTestName() + 
".2"),
                                             containsString("address-sender"),
                                             containsString("amqp-bridge"),
                                             
containsString(server.getNodeID().toString())))
                             .respond();
          peer.remoteFlow().withLinkCredit(1).queue();
 
-         final ConnectionFactory factory = 
CFUtil.createConnectionFactory("AMQP", "tcp://localhost:" + AMQP_PORT);
-
-         // Producer connect should create the address and initiate the bridge 
sender attach
-         try (Connection connection = factory.createConnection()) {
-            final Session session = 
connection.createSession(Session.AUTO_ACKNOWLEDGE);
-            session.createProducer(session.createTopic(getTestName()));
-
-            Wait.assertTrue(() -> 
server.addressQuery(SimpleString.of(getTestName())).isExists());
-            Wait.assertTrue(() -> 
server.bindingQuery(SimpleString.of(getTestName())).getQueueNames().size() > 0);
+         // Add another address that matches the filter and the bridge should 
form without a reconnect.
+         server.addAddressInfo(new AddressInfo(SimpleString.of(getTestName() + 
".2"), RoutingType.MULTICAST));
 
-            peer.waitForScriptToComplete(5, TimeUnit.SECONDS);
-         }
+         Wait.assertTrue(() -> 
server.addressQuery(SimpleString.of(getTestName() + ".2")).isExists());

Review Comment:
   (I tried in the past to chnage the default to 5 seconds... but for some 
reason at the time it didn't work.. perhaps i could try again)





Issue Time Tracking
-------------------

    Worklog Id:     (was: 967333)
    Time Spent: 1h 20m  (was: 1h 10m)

> Add a more advanced message bridging feature to AMQP broker connections
> -----------------------------------------------------------------------
>
>                 Key: ARTEMIS-5437
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5437
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>          Components: AMQP
>    Affects Versions: 2.40.0
>            Reporter: Timothy A. Bish
>            Assignee: Timothy A. Bish
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> The AMQP broker connection currently offers a somewhat primitive bridge 
> capability by offering configuration of SENDER and RECEIVER elements which 
> can perform some basic bridging primarily between Artemis instances given the 
> way the send to address, receiver from queue behavior is carried over into 
> the implementation.
> This new AMQP bridge feature offers a more advanced and flexible bridge 
> capability that allows for messages to be bridged from or to a remote with 
> various configuration options to account for the remote not being an Artemis 
> peer but leveraging some Artemis capabilities like Core message tunneling 
> over AMQP when the remote is an Artemis instance. By default the receivers 
> for this bridge implementation activate only on local demand being present 
> but can be configured to be always active as the older RECEIVER capability 
> currently behaves.
> This implementation also incorporates features implemented in the AMQP 
> federation bits that deal with draining link credit on receivers before 
> detaching to avoid potential duplicates and idling links if demand tracking 
> is active (default mode) to avoid rapid create and destroy cycles for bridge 
> receiver links.  There is also in-built link recovery mechanisms that will 
> attempt to recreate links that are closed by the remote on a periodic basis.  
> Also like federation Queue receivers the new bridge receivers can be 
> configured in pull mode to only offer credit when the local Queue has no 
> pending backlog to avoid moving messages until there is a need.
> A example of configuration for an AMQP broker connection bridge is shown below
> {code:xml}
>          <amqp-connection uri="tcp://host:port" 
> name="my-bridge-configuration">
>             <bridge>
>                <bridge-from-queue name="policy-name-1">
>                   <include address-match="#" queue-match="someQueue" />
>                   <property key="amqpCredits" value="0"/>
>                   <property key="amqpPullConsumerCredits" value="10"/>
>                </bridge-from-queue>
>                <bridge-to-queue name="policy-name-2">
>                   <include address-match="test" queue-match="myQueue" />
>                </bridge-to-queue>
>                <bridge-from-address name="policy-name-3">
>                   <include address-match="test-address" />
>                   <exclude address-match="all.#" />
>                </bridge-from-address>
>                <bridge-to-address name="policy-name-4">
>                   <include address-match="send-to-address" />
>                   <exclude address-match="all.#" />
>                </bridge-to-address>
>             </bridge>
>          </amqp-connection>
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org
For additional commands, e-mail: issues-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to