Return-Path: X-Original-To: apmail-activemq-commits-archive@www.apache.org Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3D8A8990C for ; Tue, 6 Mar 2012 14:41:08 +0000 (UTC) Received: (qmail 38892 invoked by uid 500); 6 Mar 2012 14:41:08 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 38834 invoked by uid 500); 6 Mar 2012 14:41:07 -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 38820 invoked by uid 99); 6 Mar 2012 14:41:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Mar 2012 14:41:07 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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; Tue, 06 Mar 2012 14:41:05 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id AB4DD2388847 for ; Tue, 6 Mar 2012 14:40:45 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1297501 - in /activemq/trunk/activemq-xmpp: pom.xml src/test/java/org/apache/activemq/transport/xmpp/XmppTest.java Date: Tue, 06 Mar 2012 14:40:45 -0000 To: commits@activemq.apache.org From: tabish@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120306144045.AB4DD2388847@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tabish Date: Tue Mar 6 14:40:45 2012 New Revision: 1297501 URL: http://svn.apache.org/viewvc?rev=1297501&view=rev Log: Make the test less prone to failure due to dependence on fixed sleeps for the assert conditions. Modified: activemq/trunk/activemq-xmpp/pom.xml activemq/trunk/activemq-xmpp/src/test/java/org/apache/activemq/transport/xmpp/XmppTest.java Modified: activemq/trunk/activemq-xmpp/pom.xml URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-xmpp/pom.xml?rev=1297501&r1=1297500&r2=1297501&view=diff ============================================================================== --- activemq/trunk/activemq-xmpp/pom.xml (original) +++ activemq/trunk/activemq-xmpp/pom.xml Tue Mar 6 14:40:45 2012 @@ -92,6 +92,12 @@ slf4j-log4j12 test + + ${project.groupId} + activemq-core + test-jar + test + Modified: activemq/trunk/activemq-xmpp/src/test/java/org/apache/activemq/transport/xmpp/XmppTest.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-xmpp/src/test/java/org/apache/activemq/transport/xmpp/XmppTest.java?rev=1297501&r1=1297500&r2=1297501&view=diff ============================================================================== --- activemq/trunk/activemq-xmpp/src/test/java/org/apache/activemq/transport/xmpp/XmppTest.java (original) +++ activemq/trunk/activemq-xmpp/src/test/java/org/apache/activemq/transport/xmpp/XmppTest.java Tue Mar 6 14:40:45 2012 @@ -18,6 +18,8 @@ package org.apache.activemq.transport.xm import junit.framework.TestCase; import junit.textui.TestRunner; + +import org.apache.activemq.util.Wait; import org.jivesoftware.smack.Chat; import org.jivesoftware.smack.ChatManager; import org.jivesoftware.smack.ChatManagerListener; @@ -30,12 +32,13 @@ import org.jivesoftware.smack.filter.Pac import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smackx.muc.MultiUserChat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -/** - * - */ public class XmppTest extends TestCase { + private static final Logger LOG = LoggerFactory.getLogger(XmppTest.class); + protected static boolean block; private final XmppBroker broker = new XmppBroker(); @@ -55,23 +58,23 @@ public class XmppTest extends TestCase { try { // SmackConfiguration.setPacketReplyTimeout(1000); XMPPConnection con = new XMPPConnection(config); - con.connect(); + con.connect(); con.login("amq-user", "amq-pwd"); ChatManager chatManager = con.getChatManager(); Chat chat = chatManager.createChat("test@localhost", new MessageListener() { public void processMessage(Chat chat, Message message) { - System.out.println("Got XMPP message from chat " + chat.getParticipant() + " message - " + message.getBody()); + LOG.info("Got XMPP message from chat " + chat.getParticipant() + " message - " + message.getBody()); } }); for (int i = 0; i < 10; i++) { - System.out.println("Sending message: " + i); + LOG.info("Sending message: " + i); chat.sendMessage("Hello from Message: " + i); } - System.out.println("Sent all messages!"); + LOG.info("Sent all messages!"); con.disconnect(); } catch (XMPPException e) { if (block) { - System.out.println("Caught: " + e); + LOG.info("Caught: " + e); e.printStackTrace(); } else { throw e; @@ -79,14 +82,12 @@ public class XmppTest extends TestCase { } if (block) { Thread.sleep(20000); - System.out.println("Press any key to quit!: "); + LOG.info("Press any key to quit!: "); System.in.read(); } - System.out.println("Done!"); + LOG.info("Done!"); } - - public void testChat() throws Exception { ConnectionConfiguration config = new ConnectionConfiguration("localhost", 61222); //config.setDebuggerEnabled(true); @@ -112,7 +113,6 @@ public class XmppTest extends TestCase { } }); - XMPPConnection producerCon = new XMPPConnection(config); producerCon.connect(); producerCon.login("producer", "producer"); @@ -121,6 +121,7 @@ public class XmppTest extends TestCase { return true; } }); + producerCon.addPacketWriterListener(new XmppLogger("PRODUCER OUTBOUND"), new PacketFilter() { public boolean accept(Packet packet) { return true; @@ -129,28 +130,31 @@ public class XmppTest extends TestCase { Chat chat = producerCon.getChatManager().createChat("consumer", new MessageListener() { public void processMessage(Chat chat, Message message) { - System.out.println("Got XMPP message from chat " + chat.getParticipant() + " message - " + message.getBody()); + LOG.info("Got XMPP message from chat " + chat.getParticipant() + " message - " + message.getBody()); } }); for (int i = 0; i < 10; i++) { - System.out.println("Sending message: " + i); + LOG.info("Sending message: " + i); Message message = new Message("consumer"); message.setType(Message.Type.chat); message.setBody("Hello from producer, message # " + i); chat.sendMessage(message); } - System.out.println("Sent all messages!"); - - Thread.sleep(sleepTime); - System.out.println("Consumer received - " + listener.getMessageCount()); - assertEquals(10, listener.getMessageCount()); - } + LOG.info("Sent all messages!"); + assertTrue("Consumer received - " + listener.getMessageCount(), Wait.waitFor(new Wait.Condition() { + @Override + public boolean isSatisified() throws Exception { + return listener.getMessageCount() == 10; + } + })); + LOG.info("Consumer received - " + listener.getMessageCount()); + } public void testMultiUserChat() throws Exception { - System.out.println("\n\n\n\n\n\n"); + LOG.info("\n\n\n\n\n\n"); ConnectionConfiguration config = new ConnectionConfiguration("localhost", 61222); //config.setDebuggerEnabled(true); // @@ -160,7 +164,7 @@ public class XmppTest extends TestCase { MultiUserChat consumerMuc = new MultiUserChat(consumerCon, "muc-test"); consumerMuc.join("consumer"); - ConsumerMUCMessageListener listener = new ConsumerMUCMessageListener(); + final ConsumerMUCMessageListener listener = new ConsumerMUCMessageListener(); consumerMuc.addMessageListener(listener); XMPPConnection producerCon = new XMPPConnection(config); @@ -170,16 +174,21 @@ public class XmppTest extends TestCase { producerMuc.join("producer"); for (int i = 0; i < 10; i++) { - System.out.println("Sending message: " + i); + LOG.info("Sending message: " + i); Message message = producerMuc.createMessage(); message.setBody("Hello from producer, message # " + i); producerMuc.sendMessage(message); } - System.out.println("Sent all messages!"); + LOG.info("Sent all messages!"); - Thread.sleep(sleepTime); - System.out.println("Consumer received - " + listener.getMessageCount()); - assertEquals(10, listener.getMessageCount()); + assertTrue("Consumer received - " + listener.getMessageCount(), Wait.waitFor(new Wait.Condition() { + @Override + public boolean isSatisified() throws Exception { + return listener.getMessageCount() == 10; + } + })); + + LOG.info("Consumer received - " + listener.getMessageCount()); } public void addLoggingListeners(String name, XMPPConnection connection) { @@ -196,7 +205,7 @@ public class XmppTest extends TestCase { } public void testTwoConnections() throws Exception { - System.out.println("\n\n\n\n\n\n"); + LOG.info("\n\n\n\n\n\n"); ConnectionConfiguration config = new ConnectionConfiguration("localhost", 61222); //config.setDebuggerEnabled(true); @@ -212,10 +221,10 @@ public class XmppTest extends TestCase { chat.addMessageListener(listener1); } }); - + //now create the producer XMPPConnection producerCon = new XMPPConnection(config); - System.out.println("Connecting producer and consumer"); + LOG.info("Connecting producer and consumer"); producerCon.connect(); addLoggingListeners("PRODUCER", producerCon); producerCon.login("producer", "producer"); @@ -223,20 +232,20 @@ public class XmppTest extends TestCase { //create the chat and send some messages Chat chat = producerCon.getChatManager().createChat("consumer", new MessageListener() { public void processMessage(Chat chat, Message message) { - System.out.println("Got XMPP message from chat " + chat.getParticipant() + " message - " + message.getBody()); + LOG.info("Got XMPP message from chat " + chat.getParticipant() + " message - " + message.getBody()); } }); - + for (int i = 0; i < 10; i++) { - System.out.println("Sending message: " + i); + LOG.info("Sending message: " + i); Message message = new Message("consumer"); message.setType(Message.Type.chat); message.setBody("Hello from producer, message # " + i); chat.sendMessage(message); } - + //make sure the consumer has time to receive all the messages... - Thread.sleep(sleepTime); + Thread.sleep(sleepTime); //create an identical 2nd consumer XMPPConnection lastguyCon = new XMPPConnection(config); @@ -251,19 +260,28 @@ public class XmppTest extends TestCase { }); for (int i = 0; i < 10; i++) { - System.out.println("Sending message: " + i); + LOG.info("Sending message: " + i); Message message = new Message("consumer"); message.setType(Message.Type.chat); message.setBody("Hello from producer, message # " + i); chat.sendMessage(message); } - System.out.println("Sent all messages!"); - Thread.sleep(sleepTime); - System.out.println("Consumer received - " + listener1.getMessageCount()); - assertEquals(20, listener1.getMessageCount()); - System.out.println("Consumer received - " + listener2.getMessageCount()); - assertEquals(10, listener2.getMessageCount()); + LOG.info("Sent all messages!"); + + assertTrue("Consumer received - " + listener1.getMessageCount(), Wait.waitFor(new Wait.Condition() { + @Override + public boolean isSatisified() throws Exception { + return listener1.getMessageCount() == 20; + } + })); + + assertTrue("Consumer received - " + listener2.getMessageCount(), Wait.waitFor(new Wait.Condition() { + @Override + public boolean isSatisified() throws Exception { + return listener2.getMessageCount() == 10; + } + })); } class XmppLogger implements PacketListener { @@ -275,7 +293,7 @@ public class XmppTest extends TestCase { } public void processPacket(Packet packet) { - System.out.println(direction + " : " + packet.toXML()); + LOG.info(direction + " : " + packet.toXML()); } } @@ -284,7 +302,7 @@ public class XmppTest extends TestCase { public void processPacket(Packet packet) { if ( packet instanceof Message) { - System.out.println("Received message number : " + (messageCount++)); + LOG.info("Received message number : " + (messageCount++)); } } public int getMessageCount() { @@ -296,7 +314,7 @@ public class XmppTest extends TestCase { private int messageCount=0; public void processMessage(Chat chat, Message message) { - System.out.println("Received message number : " + (messageCount++)); + LOG.info("Received message number : " + (messageCount++)); } public int getMessageCount() {