[hornetq-commits] JBoss hornetq SVN: r11353 - in branches/STOMP11: tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/util and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Sep 16 02:00:25 EDT 2011


Author: gaohoward
Date: 2011-09-16 02:00:24 -0400 (Fri, 16 Sep 2011)
New Revision: 11353

Modified:
   branches/STOMP11/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/v11/StompFrameHandlerV11.java
   branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/util/AbstractStompClientConnection.java
   branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java
Log:
tests


Modified: branches/STOMP11/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/v11/StompFrameHandlerV11.java
===================================================================
--- branches/STOMP11/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/v11/StompFrameHandlerV11.java	2011-09-16 05:20:30 UTC (rev 11352)
+++ branches/STOMP11/hornetq-core/src/main/java/org/hornetq/core/protocol/stomp/v11/StompFrameHandlerV11.java	2011-09-16 06:00:24 UTC (rev 11353)
@@ -493,7 +493,7 @@
       return frame;
    }
    
-   //server heart beat (20,100) (hard coded)
+   //server heart beat 
    //algorithm: 
    //(a) server ping: if server hasn't sent any frame within serverPing 
    //interval, send a ping. 
@@ -501,7 +501,7 @@
    // 2*serverAcceptPing, disconnect!
    private class HeartBeater extends Thread
    {
-      final int MIN_SERVER_PING = 200;
+      final int MIN_SERVER_PING = 500;
       final int MIN_CLIENT_PING = 500;
       
       long serverPing = 0;

Modified: branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/util/AbstractStompClientConnection.java
===================================================================
--- branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/util/AbstractStompClientConnection.java	2011-09-16 05:20:30 UTC (rev 11352)
+++ branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/util/AbstractStompClientConnection.java	2011-09-16 06:00:24 UTC (rev 11353)
@@ -94,6 +94,19 @@
       if (frame.needsReply())
       {
          response = receiveFrame();
+         
+         //filter out server ping
+         while (response != null)
+         {
+            if (response.getCommand().equals("STOMP"))
+            {
+               response = receiveFrame();
+            }
+            else
+            {
+               break;
+            }
+         }
       }
       return response;
    }

Modified: branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java
===================================================================
--- branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java	2011-09-16 05:20:30 UTC (rev 11352)
+++ branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java	2011-09-16 06:00:24 UTC (rev 11353)
@@ -462,6 +462,69 @@
 
    }
    
+   //server ping
+   public void testHeartBeat2() throws Exception
+   {
+      //heart-beat (1,1)
+      connV11 = StompClientConnectionFactory.createClientConnection("1.1", hostname, port);
+      ClientStompFrame frame = connV11.createFrame("CONNECT");
+      frame.addHeader("host", "127.0.0.1");
+      frame.addHeader("login", this.defUser);
+      frame.addHeader("passcode", this.defPass);
+      frame.addHeader("heart-beat", "1,1");
+      frame.addHeader("accept-version", "1.0,1.1");
+      
+      ClientStompFrame reply = connV11.sendFrame(frame);
+      
+      assertEquals("CONNECTED", reply.getCommand());
+      
+      assertEquals("500,500", reply.getHeader("heart-beat"));
+      
+      connV11.disconnect();
+      
+      //heart-beat (500,1000)
+      connV11 = StompClientConnectionFactory.createClientConnection("1.1", hostname, port);
+      frame = connV11.createFrame("CONNECT");
+      frame.addHeader("host", "127.0.0.1");
+      frame.addHeader("login", this.defUser);
+      frame.addHeader("passcode", this.defPass);
+      frame.addHeader("heart-beat", "500,1000");
+      frame.addHeader("accept-version", "1.0,1.1");
+      
+      reply = connV11.sendFrame(frame);
+      
+      assertEquals("CONNECTED", reply.getCommand());
+      
+      assertEquals("1000,500", reply.getHeader("heart-beat"));
+      
+      System.out.println("========== start pinger!");
+      
+      connV11.startPinger(500);
+      
+      Thread.sleep(10000);
+      
+      //now check the frame size
+      int size = connV11.getFrameQueueSize();
+      
+      System.out.println("ping received: " + size);
+      
+      assertTrue(size > 5);
+      
+      //now server side should be disconnected because we didn't send ping for 2 sec
+      frame = connV11.createFrame("SEND");
+      frame.addHeader("destination", getQueuePrefix() + getQueueName());
+      frame.addHeader("content-type", "text/plain");
+      frame.setBody("Hello World");
+
+      //send will be ok
+      connV11.sendFrame(frame);
+      
+      connV11.stopPinger();
+      
+      connV11.disconnect();
+
+   }
+
 }
 
 



More information about the hornetq-commits mailing list