Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 41804 invoked from network); 8 Feb 2010 12:58:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 8 Feb 2010 12:58:24 -0000 Received: (qmail 55713 invoked by uid 500); 8 Feb 2010 12:58:24 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 55653 invoked by uid 500); 8 Feb 2010 12:58:24 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 55644 invoked by uid 99); 8 Feb 2010 12:58:24 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Feb 2010 12:58:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Feb 2010 12:58:23 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E47D923888EC; Mon, 8 Feb 2010 12:58:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r907647 - in /activemq/branches/activemq-5.3/activemq-core/src: main/java/org/apache/activemq/advisory/ main/java/org/apache/activemq/network/ main/java/org/apache/activemq/transport/vm/ test/java/org/apache/activemq/ test/java/org/apache/a... Date: Mon, 08 Feb 2010 12:58:02 -0000 To: commits@activemq.apache.org From: gtully@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100208125802.E47D923888EC@eris.apache.org> Author: gtully Date: Mon Feb 8 12:58:02 2010 New Revision: 907647 URL: http://svn.apache.org/viewvc?rev=907647&view=rev Log: merge -c 831876 https://svn.apache.org/repos/asf/activemq/trunk - http://svn.apache.org/viewvc?view=revision&revision=831876 - make networkbridge tests more resilient to time related issues on slow machines Modified: activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/advisory/ConsumerEventSource.java activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/JmsMultipleBrokersTestSupport.java activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsTest.java activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsUsingTcpTest.java activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/NoDuplicateOnTopicNetworkTest.java activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/ThreeBrokerQueueNetworkTest.java Modified: activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/advisory/ConsumerEventSource.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/advisory/ConsumerEventSource.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/advisory/ConsumerEventSource.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/advisory/ConsumerEventSource.java Mon Feb 8 12:58:02 2010 @@ -23,7 +23,6 @@ import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; -import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.Session; Modified: activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java Mon Feb 8 12:58:02 2010 @@ -18,6 +18,7 @@ import java.net.URI; import java.net.URISyntaxException; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -281,5 +282,9 @@ } return removeSucceeded; } + + public Collection activeBridges() { + return bridges.values(); + } } Modified: activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java Mon Feb 8 12:58:02 2010 @@ -32,8 +32,6 @@ import org.apache.activemq.transport.TransportDisposedIOException; import org.apache.activemq.transport.TransportListener; import org.apache.activemq.util.IOExceptionSupport; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** Modified: activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/JmsMultipleBrokersTestSupport.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/JmsMultipleBrokersTestSupport.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/JmsMultipleBrokersTestSupport.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/JmsMultipleBrokersTestSupport.java Mon Feb 8 12:58:02 2010 @@ -55,6 +55,7 @@ import org.apache.activemq.network.NetworkConnector; import org.apache.activemq.util.IdGenerator; import org.apache.activemq.util.MessageIdList; +import org.apache.activemq.util.Wait; import org.apache.activemq.xbean.BrokerFactoryBean; import org.springframework.core.io.Resource; @@ -98,10 +99,10 @@ // By default, bridge them using add network connector of the local broker // and the first connector of the remote broker protected NetworkConnector bridgeBrokers(BrokerService localBroker, BrokerService remoteBroker, boolean dynamicOnly, int networkTTL, boolean conduit) throws Exception { - List transportConnectors = remoteBroker.getTransportConnectors(); + List transportConnectors = remoteBroker.getTransportConnectors(); URI remoteURI; if (!transportConnectors.isEmpty()) { - remoteURI = ((TransportConnector)transportConnectors.get(0)).getConnectUri(); + remoteURI = transportConnectors.get(0).getConnectUri(); NetworkConnector connector = new DiscoveryNetworkConnector(new URI("static:" + remoteURI)); connector.setDynamicOnly(dynamicOnly); connector.setNetworkTTL(networkTTL); @@ -128,14 +129,14 @@ Collection brokerList = brokers.values(); for (Iterator i = brokerList.iterator(); i.hasNext();) { BrokerService broker = i.next().broker; - List transportConnectors = broker.getTransportConnectors(); + List transportConnectors = broker.getTransportConnectors(); if (transportConnectors.isEmpty()) { broker.addConnector(new URI(AUTO_ASSIGN_TRANSPORT)); transportConnectors = broker.getTransportConnectors(); } - TransportConnector transport = (TransportConnector)transportConnectors.get(0); + TransportConnector transport = transportConnectors.get(0); transport.setDiscoveryUri(new URI("multicast://default?group=" + groupName)); NetworkConnector nc = broker.addNetworkConnector("multicast://default?group=" + groupName); nc.setNetworkTTL(ttl); @@ -147,6 +148,19 @@ maxSetupTime = 8000; } + + protected void waitForBridgeFormation() throws Exception { + for (BrokerItem brokerItem : brokers.values()) { + final BrokerService broker = brokerItem.broker; + if (!broker.getNetworkConnectors().isEmpty()) { + Wait.waitFor(new Wait.Condition() { + public boolean isSatisified() throws Exception { + return !broker.getNetworkConnectors().get(0).activeBridges().isEmpty(); + }}); + } + } + } + protected void startAllBrokers() throws Exception { Collection brokerList = brokers.values(); for (Iterator i = brokerList.iterator(); i.hasNext();) { @@ -482,6 +496,7 @@ try { c.close(); } catch (ConnectionClosedException e) { + } catch (JMSException e) { } } Modified: activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsTest.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsTest.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsTest.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsTest.java Mon Feb 8 12:58:02 2010 @@ -43,12 +43,13 @@ private static final Log LOG = LogFactory.getLog(MultiBrokersMultiClientsTest.class); - protected Map consumerMap; + protected Map consumerMap; Map unhandeledExceptions = new HashMap(); public void testTopicAllConnected() throws Exception { bridgeAllBrokers(); startAllBrokers(); + waitForBridgeFormation(); // Setup topic destination Destination dest = createDestination("TEST.FOO", true); @@ -99,6 +100,7 @@ public void testQueueAllConnected() throws Exception { bridgeAllBrokers(); startAllBrokers(); + this.waitForBridgeFormation(); // Setup topic destination Destination dest = createDestination("TEST.FOO", false); @@ -132,7 +134,7 @@ int totalMsg = 0; for (int i = 1; i <= BROKER_COUNT; i++) { for (int j = 0; j < CONSUMER_COUNT; j++) { - MessageIdList msgs = getConsumerMessages("Broker" + i, (MessageConsumer)consumerMap.get("Consumer:" + i + ":" + j)); + MessageIdList msgs = getConsumerMessages("Broker" + i, consumerMap.get("Consumer:" + i + ":" + j)); totalMsg += msgs.getMessageCount(); } } @@ -153,7 +155,7 @@ createBroker(new URI("broker:()/Broker" + i + "?persistent=false&useJmx=false")); } - consumerMap = new HashMap(); + consumerMap = new HashMap(); } public void uncaughtException(Thread t, Throwable e) { Modified: activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsUsingTcpTest.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsUsingTcpTest.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsUsingTcpTest.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/MultiBrokersMultiClientsUsingTcpTest.java Mon Feb 8 12:58:02 2010 @@ -46,14 +46,14 @@ } protected void bridgeBrokers(BrokerService localBroker, BrokerService remoteBroker) throws Exception { - List remoteTransports = remoteBroker.getTransportConnectors(); - List localTransports = localBroker.getTransportConnectors(); + List remoteTransports = remoteBroker.getTransportConnectors(); + List localTransports = localBroker.getTransportConnectors(); URI remoteURI; URI localURI; if (!remoteTransports.isEmpty() && !localTransports.isEmpty()) { - remoteURI = ((TransportConnector)remoteTransports.get(0)).getConnectUri(); - localURI = ((TransportConnector)localTransports.get(0)).getConnectUri(); + remoteURI = remoteTransports.get(0).getConnectUri(); + localURI = localTransports.get(0).getConnectUri(); // Ensure that we are connecting using tcp if (remoteURI.toString().startsWith("tcp:") && localURI.toString().startsWith("tcp:")) { @@ -77,8 +77,8 @@ // Assign a tcp connector to each broker int j = 0; - for (Iterator i = brokers.values().iterator(); i.hasNext();) { - ((BrokerItem)i.next()).broker.addConnector("tcp://localhost:" + (61616 + j++)); + for (Iterator i = brokers.values().iterator(); i.hasNext();) { + i.next().broker.addConnector("tcp://localhost:" + (61616 + j++)); } bridges = new ArrayList(); Modified: activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/NoDuplicateOnTopicNetworkTest.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/NoDuplicateOnTopicNetworkTest.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/NoDuplicateOnTopicNetworkTest.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/NoDuplicateOnTopicNetworkTest.java Mon Feb 8 12:58:02 2010 @@ -34,14 +34,15 @@ import javax.jms.TextMessage; import javax.jms.Topic; +import junit.framework.TestCase; + import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.broker.BrokerService; import org.apache.activemq.network.NetworkConnector; +import org.apache.activemq.util.Wait; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import junit.framework.TestCase; - public class NoDuplicateOnTopicNetworkTest extends TestCase { private static final Log LOG = LogFactory .getLog(NoDuplicateOnTopicNetworkTest.class); @@ -71,6 +72,25 @@ Thread.sleep(3000); broker1 = createAndStartBroker("broker1", BROKER_1); Thread.sleep(1000); + + waitForBridgeFormation(); + } + + protected void waitForBridgeFormation() throws Exception { + Wait.waitFor(new Wait.Condition() { + public boolean isSatisified() throws Exception { + return !broker3.getNetworkConnectors().get(0).activeBridges().isEmpty(); + }}); + + Wait.waitFor(new Wait.Condition() { + public boolean isSatisified() throws Exception { + return !broker2.getNetworkConnectors().get(0).activeBridges().isEmpty(); + }}); + + Wait.waitFor(new Wait.Condition() { + public boolean isSatisified() throws Exception { + return !broker1.getNetworkConnectors().get(0).activeBridges().isEmpty(); + }}); } private BrokerService createAndStartBroker(String name, String addr) Modified: activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/ThreeBrokerQueueNetworkTest.java URL: http://svn.apache.org/viewvc/activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/ThreeBrokerQueueNetworkTest.java?rev=907647&r1=907646&r2=907647&view=diff ============================================================================== --- activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/ThreeBrokerQueueNetworkTest.java (original) +++ activemq/branches/activemq-5.3/activemq-core/src/test/java/org/apache/activemq/usecases/ThreeBrokerQueueNetworkTest.java Mon Feb 8 12:58:02 2010 @@ -61,7 +61,8 @@ bridgeBrokers("BrokerB", "BrokerC"); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -88,7 +89,8 @@ bridgeBrokers("BrokerB", "BrokerC"); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -119,7 +121,8 @@ bridgeBrokers("BrokerB", "BrokerC", true, 1, false); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -160,7 +163,8 @@ bridgeBrokers("BrokerB", "BrokerC", true, 1, false); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -201,7 +205,8 @@ bridgeBrokers("BrokerC", "BrokerB"); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -233,7 +238,8 @@ bridgeBrokers("BrokerC", "BrokerA"); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -263,7 +269,8 @@ bridgeAllBrokers(); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -309,7 +316,8 @@ public void testAllConnectedUsingMulticastProducerConsumerOnA() throws Exception { bridgeAllBrokers("default", 3, false); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -334,7 +342,8 @@ public void testAllConnectedWithSpare() throws Exception { bridgeAllBrokers("default", 3, false); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -367,6 +376,7 @@ boolean suppressQueueDuplicateSubscriptions = false; bridgeAllBrokers("default", 3, suppressQueueDuplicateSubscriptions); startAllBrokers(); + waitForBridgeFormation(); // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -424,7 +434,8 @@ boolean decreaseNetworkConsumerPriority = true; bridgeAllBrokers("default", 3, suppressQueueDuplicateSubscriptions, decreaseNetworkConsumerPriority); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -467,7 +478,8 @@ bridgeAllBrokers("default", 3, true); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false); @@ -536,7 +548,8 @@ }); startAllBrokers(); - + waitForBridgeFormation(); + // Setup consumers String brokerName = "BrokerA"; @@ -563,7 +576,8 @@ bridgeAllBrokers("default", 3, false); startAllBrokers(); - + waitForBridgeFormation(); + // Setup destination Destination dest = createDestination("TEST.FOO", false);