You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2011/02/27 14:21:15 UTC

svn commit: r1075051 - in /activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web: AjaxTest.java JettyTestSupport.java

Author: tabish
Date: Sun Feb 27 13:21:15 2011
New Revision: 1075051

URL: http://svn.apache.org/viewvc?rev=1075051&view=rev
Log:
resolve the dependency on fixed ports 61616 and 61613.

Modified:
    activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/AjaxTest.java
    activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/JettyTestSupport.java

Modified: activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/AjaxTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/AjaxTest.java?rev=1075051&r1=1075050&r2=1075051&view=diff
==============================================================================
--- activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/AjaxTest.java (original)
+++ activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/AjaxTest.java Sun Feb 27 13:21:15 2011
@@ -40,11 +40,11 @@ import javax.jms.TextMessage;
 
 public class AjaxTest extends JettyTestSupport {
     private static final Logger LOG = LoggerFactory.getLogger(AjaxTest.class);
-    
+
     private class AjaxTestContentExchange extends ContentExchange  {
         private HashMap<String,String> headers;
         private String responseContent;
-        
+
         AjaxTestContentExchange() {
             super(true);
             this.headers = new HashMap<String,String>();
@@ -65,7 +65,7 @@ public class AjaxTest extends JettyTestS
             return responseContent;
         }
     }
-    
+
     public void assertContains( String expected, String actual ) {
         assertTrue( "'"+actual+"' does not contain expected fragment '"+expected+"'", actual.indexOf( expected ) != -1 );
     }
@@ -73,14 +73,14 @@ public class AjaxTest extends JettyTestS
         int occurrences = StringUtils.countMatches( actual, "<response" );
         assertEquals( "Expected number of <response> elements is not correct.", expected, occurrences );
     }
-    
+
     public void testAjaxClientReceivesMessagesWhichAreSentToQueueWhileClientIsPolling() throws Exception {
         LOG.debug( "*** testAjaxClientReceivesMessagesWhichAreSentToQueueWhileClientIsPolling ***" );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         // client 1 subscribes to a queue
         LOG.debug( "SENDING LISTEN" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
@@ -91,7 +91,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         // client 1 polls for messages
         LOG.debug( "SENDING POLL" );
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
@@ -99,7 +99,7 @@ public class AjaxTest extends JettyTestS
         poll.setURL("http://localhost:8080/amq?timeout=5000");
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
-        
+
         // while client 1 is polling, client 2 sends messages to the queue
         LOG.debug( "SENDING MESSAGES" );
         contentExchange = new AjaxTestContentExchange();
@@ -114,11 +114,11 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         LOG.debug( "DONE POSTING MESSAGES" );
-        
+
         // wait for poll to finish
         poll.waitForDone();
         String response = poll.getResponseContent();
-        
+
         // messages might not all be delivered during the 1st poll.  We need to check again.
         poll = new AjaxTestContentExchange();
         poll.setMethod( "GET" );
@@ -126,23 +126,23 @@ public class AjaxTest extends JettyTestS
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
         poll.waitForDone();
-        
+
         String fullResponse = response + poll.getResponseContent();
         LOG.debug( "full response : " + fullResponse );
-        
+
         assertContains( "<response id='handler' destination='queue://test' >msg1</response>\n", fullResponse );
         assertContains( "<response id='handler' destination='queue://test' >msg2</response>\n", fullResponse );
         assertContains( "<response id='handler' destination='queue://test' >msg3</response>\n", fullResponse );
         assertResponseCount( 3, fullResponse );
     }
-    
+
     public void testAjaxClientReceivesMessagesWhichAreSentToTopicWhileClientIsPolling() throws Exception {
         LOG.debug( "*** testAjaxClientReceivesMessagesWhichAreSentToTopicWhileClientIsPolling ***" );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         // client 1 subscribes to a queue
         LOG.debug( "SENDING LISTEN" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
@@ -153,7 +153,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         // client 1 polls for messages
         LOG.debug( "SENDING POLL" );
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
@@ -161,7 +161,7 @@ public class AjaxTest extends JettyTestS
         poll.setURL("http://localhost:8080/amq?timeout=5000");
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
-        
+
         // while client 1 is polling, client 2 sends messages to the queue
         LOG.debug( "SENDING MESSAGES" );
         contentExchange = new AjaxTestContentExchange();
@@ -176,11 +176,11 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         LOG.debug( "DONE POSTING MESSAGES" );
-        
+
         // wait for poll to finish
         poll.waitForDone();
         String response = poll.getResponseContent();
-        
+
         // not all messages might be delivered during the 1st poll.  We need to check again.
         poll = new AjaxTestContentExchange();
         poll.setMethod( "GET" );
@@ -188,27 +188,27 @@ public class AjaxTest extends JettyTestS
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
         poll.waitForDone();
-        
+
         String fullResponse = response + poll.getResponseContent();
         LOG.debug( "full response : " + fullResponse );
-        
+
         assertContains( "<response id='handler' destination='topic://test' >msg1</response>\n", fullResponse );
         assertContains( "<response id='handler' destination='topic://test' >msg2</response>\n", fullResponse );
         assertContains( "<response id='handler' destination='topic://test' >msg3</response>\n", fullResponse );
         assertResponseCount( 3, fullResponse );
     }
-    
+
     public void testAjaxClientReceivesMessagesWhichAreQueuedBeforeClientSubscribes() throws Exception {
         LOG.debug( "*** testAjaxClientReceivesMessagesWhichAreQueuedBeforeClientSubscribes ***" );
         // send messages to queue://test
         producer.send( session.createTextMessage("test one") );
         producer.send( session.createTextMessage("test two") );
         producer.send( session.createTextMessage("test three") );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         // client 1 subscribes to queue
         LOG.debug( "SENDING LISTEN" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
@@ -219,7 +219,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         // client 1 polls for messages
         LOG.debug( "SENDING POLL" );
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
@@ -227,24 +227,24 @@ public class AjaxTest extends JettyTestS
         poll.setURL("http://localhost:8080/amq?timeout=5000");
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
-        
+
         // wait for poll to finish
         poll.waitForDone();
         String response = poll.getResponseContent();
-        
+
         assertContains( "<response id='handler' destination='queue://test' >test one</response>\n", response );
         assertContains( "<response id='handler' destination='queue://test' >test two</response>\n", response );
         assertContains( "<response id='handler' destination='queue://test' >test three</response>\n", response );
         assertResponseCount( 3, response );
     }
-    
+
     public void testStompMessagesAreReceivedByAjaxClient() throws Exception {
         LOG.debug( "*** testStompMessagesAreRecievedByAjaxClient ***" );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         // client 1 subscribes to a queue
         LOG.debug( "SENDING LISTEN" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
@@ -255,7 +255,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         // client 1 polls for messages
         LOG.debug( "SENDING POLL" );
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
@@ -263,10 +263,10 @@ public class AjaxTest extends JettyTestS
         poll.setURL("http://localhost:8080/amq?timeout=5000");
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
-        
+
         // stomp client queues some messages
         StompConnection connection = new StompConnection();
-        connection.open("localhost", 61613);
+        connection.open(stompUri.getHost(), stompUri.getPort());
         connection.connect("user", "password");
         HashMap<String, String> headers = new HashMap<String, String>();
         headers.put( "amq-msg-type", "text" );
@@ -276,11 +276,11 @@ public class AjaxTest extends JettyTestS
         connection.send( "/queue/test", "message4", (String)null, headers );
         connection.send( "/queue/test", "message5", (String)null, headers );
         connection.disconnect();
-        
+
         // wait for poll to finish
         poll.waitForDone();
         String response = poll.getResponseContent();
-        
+
         // not all messages might be delivered during the 1st poll.  We need to check again.
         poll = new AjaxTestContentExchange();
         poll.setMethod( "GET" );
@@ -288,9 +288,9 @@ public class AjaxTest extends JettyTestS
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
         poll.waitForDone();
-        
+
         String fullResponse = response + poll.getResponseContent();
-        
+
         assertContains( "<response id='handler' destination='queue://test' >message1</response>\n", fullResponse );
         assertContains( "<response id='handler' destination='queue://test' >message2</response>\n", fullResponse );
         assertContains( "<response id='handler' destination='queue://test' >message3</response>\n", fullResponse );
@@ -298,14 +298,14 @@ public class AjaxTest extends JettyTestS
         assertContains( "<response id='handler' destination='queue://test' >message5</response>\n", fullResponse );
         assertResponseCount( 5, fullResponse );
     }
-    
+
     public void testAjaxMessagesAreReceivedByStompClient() throws Exception {
         LOG.debug( "*** testAjaxMessagesAreReceivedByStompClient ***" );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
         contentExchange.setMethod( "POST" );
         contentExchange.setURL("http://localhost:8080/amq");
@@ -317,12 +317,12 @@ public class AjaxTest extends JettyTestS
         contentExchange.setRequestContentType( "application/x-www-form-urlencoded; charset=UTF-8" );
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
-        
+
         StompConnection connection = new StompConnection();
-        connection.open("localhost", 61613);
+        connection.open(stompUri.getHost(), stompUri.getPort());
         connection.connect("user", "password");
         connection.subscribe( "/queue/test" );
-        
+
         StompFrame message;
         String allMessageBodies = "";
         try {
@@ -331,18 +331,18 @@ public class AjaxTest extends JettyTestS
                 allMessageBodies = allMessageBodies +"\n"+ message.getBody();
             }
         } catch (SocketTimeoutException e) {}
-        
+
         LOG.debug( "All message bodies : " + allMessageBodies );
-        
+
         assertContains( "msg1", allMessageBodies );
         assertContains( "msg2", allMessageBodies );
         assertContains( "msg3", allMessageBodies );
         assertContains( "msg4", allMessageBodies );
     }
-    
+
     public void testAjaxClientMayUseSelectors() throws Exception {
         LOG.debug( "*** testAjaxClientMayUseSelectors ***" );
-        
+
         // send 2 messages to the same queue w/ different 'filter' values.
         Message msg = session.createTextMessage("test one");
         msg.setStringProperty( "filter", "one" );
@@ -350,11 +350,11 @@ public class AjaxTest extends JettyTestS
         msg = session.createTextMessage("test two");
         msg.setStringProperty( "filter", "two" );
         producer.send( msg );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         // client ubscribes to queue
         LOG.debug( "SENDING LISTEN" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
@@ -367,7 +367,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         // client 1 polls for messages
         LOG.debug( "SENDING POLL" );
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
@@ -376,19 +376,19 @@ public class AjaxTest extends JettyTestS
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
         poll.waitForDone();
-        
+
         LOG.debug( poll.getResponseContent() );
-        
+
         String expected = "<ajax-response>\n" +
             "<response id='handler' destination='queue://test' >test two</response>\n" +
             "</ajax-response>\n";
         assertEquals( "Poll response is not correct.", expected, poll.getResponseContent() );
-        
+
     }
-    
+
     public void testMultipleAjaxClientsMayExistInTheSameSession() throws Exception {
         LOG.debug( "*** testMultipleAjaxClientsMayExistInTheSameSession ***" );
-        
+
         // send messages to queues testA and testB.
         MessageProducer producerA = session.createProducer(session.createQueue("testA"));
         MessageProducer producerB = session.createProducer(session.createQueue("testB"));
@@ -396,11 +396,11 @@ public class AjaxTest extends JettyTestS
         producerA.send( session.createTextMessage("A2") );
         producerB.send( session.createTextMessage("B1") );
         producerB.send( session.createTextMessage("B2") );
-        
+
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         // clientA subscribes to /queue/testA
         LOG.debug( "SENDING LISTEN" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
@@ -416,7 +416,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         // clientB subscribes to /queue/testB using the same JSESSIONID.
         contentExchange = new AjaxTestContentExchange();
         contentExchange.setMethod( "POST" );
@@ -431,7 +431,7 @@ public class AjaxTest extends JettyTestS
         contentExchange.setRequestContentType( "application/x-www-form-urlencoded; charset=UTF-8" );
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
-        
+
         // clientA polls for messages
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
         poll.setMethod( "GET" );
@@ -439,14 +439,14 @@ public class AjaxTest extends JettyTestS
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
         poll.waitForDone();
-        
+
         LOG.debug( "clientA response : " + poll.getResponseContent() );
         String expected = "<ajax-response>\n" +
             "<response id='handlerA' destination='queue://testA' >A1</response>\n" +
             "<response id='handlerA' destination='queue://testA' >A2</response>\n" +
             "</ajax-response>\n";
         assertEquals( "Poll response is not correct.", expected, poll.getResponseContent() );
-        
+
         // clientB polls for messages
         poll = new AjaxTestContentExchange();
         poll.setMethod( "GET" );
@@ -454,7 +454,7 @@ public class AjaxTest extends JettyTestS
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
         poll.waitForDone();
-        
+
         LOG.debug( "clientB response : " + poll.getResponseContent() );
         expected = "<ajax-response>\n" +
             "<response id='handlerB' destination='queue://testB' >B1</response>\n" +
@@ -462,13 +462,13 @@ public class AjaxTest extends JettyTestS
             "</ajax-response>\n";
         assertEquals( "Poll response is not correct.", expected, poll.getResponseContent() );
     }
-    
+
     public void testAjaxClientReceivesMessagesForMultipleTopics() throws Exception {
         LOG.debug( "*** testAjaxClientReceivesMessagesForMultipleTopics ***" );
         HttpClient httpClient = new HttpClient();
         httpClient.start();
         httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
-        
+
         LOG.debug( "SENDING LISTEN FOR /topic/topicA" );
         AjaxTestContentExchange contentExchange = new AjaxTestContentExchange();
         contentExchange.setMethod( "POST" );
@@ -478,7 +478,7 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         String jsessionid = contentExchange.getJsessionId();
-        
+
         LOG.debug( "SENDING LISTEN FOR /topic/topicB" );
         contentExchange = new AjaxTestContentExchange();
         contentExchange.setMethod( "POST" );
@@ -488,7 +488,7 @@ public class AjaxTest extends JettyTestS
         contentExchange.setRequestHeader( "Cookie", jsessionid );
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
-        
+
         // client 1 polls for messages
         LOG.debug( "SENDING POLL" );
         AjaxTestContentExchange poll = new AjaxTestContentExchange();
@@ -496,7 +496,7 @@ public class AjaxTest extends JettyTestS
         poll.setURL("http://localhost:8080/amq?timeout=5000");
         poll.setRequestHeader( "Cookie", jsessionid );
         httpClient.send( poll );
-        
+
         // while client 1 is polling, client 2 sends messages to the topics
         LOG.debug( "SENDING MESSAGES" );
         contentExchange = new AjaxTestContentExchange();
@@ -512,11 +512,11 @@ public class AjaxTest extends JettyTestS
         httpClient.send(contentExchange);
         contentExchange.waitForDone();
         LOG.debug( "DONE POSTING MESSAGES" );
-        
+
         // wait for poll to finish
         poll.waitForDone();
         String response = poll.getResponseContent();
-        
+
         // not all messages might be delivered during the 1st poll.  We need to check again.
         poll = new AjaxTestContentExchange();
         poll.setMethod( "GET" );
@@ -533,5 +533,5 @@ public class AjaxTest extends JettyTestS
         assertContains( "<response id='handlerB' destination='topic://topicB' >B2</response>\n", fullResponse );
         assertResponseCount( 4, fullResponse );
      }
-    
+
 }

Modified: activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/JettyTestSupport.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/JettyTestSupport.java?rev=1075051&r1=1075050&r2=1075051&view=diff
==============================================================================
--- activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/JettyTestSupport.java (original)
+++ activemq/trunk/activemq-web-demo/src/test/java/org/apache/activemq/web/JettyTestSupport.java Sun Feb 27 13:21:15 2011
@@ -17,6 +17,7 @@
 package org.apache.activemq.web;
 
 import java.net.Socket;
+import java.net.URI;
 import java.net.URL;
 
 import javax.jms.Connection;
@@ -38,23 +39,26 @@ import org.eclipse.jetty.webapp.WebAppCo
 
 public class JettyTestSupport extends TestCase {
     private static final Logger LOG = LoggerFactory.getLogger(JettyTestSupport.class);
-    
+
     BrokerService broker;
     Server server;
     ActiveMQConnectionFactory factory;
     Connection connection;
     Session session;
     MessageProducer producer;
-    
+
+    URI tcpUri;
+    URI stompUri;
+
     protected void setUp() throws Exception {
         broker = new BrokerService();
         broker.setPersistent(false);
         broker.setUseJmx(true);
-        broker.addConnector("tcp://localhost:61616");
-        broker.addConnector("stomp://localhost:61613");
+        tcpUri = broker.addConnector("tcp://localhost:61616").getConnectUri();
+        stompUri = broker.addConnector("stomp://localhost:61613").getConnectUri();
         broker.start();
         broker.waitUntilStarted();
-        
+
         server = new Server();
         SelectChannelConnector connector = new SelectChannelConnector();
         connector.setPort(8080);
@@ -70,8 +74,8 @@ public class JettyTestSupport extends Te
         });
         server.start();
         waitForJettySocketToAccept("http://localhost:8080");
-        
-        factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
+
+        factory = new ActiveMQConnectionFactory(tcpUri);
         connection = factory.createConnection();
         connection.start();
         session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -102,5 +106,5 @@ public class JettyTestSupport extends Te
                 return canConnect;
             }}, 60 * 1000));
     }
-    
+
 }