Repository: qpid-jms
Updated Branches:
  refs/heads/master 5bf3c21a4 -> 5f5e2c2b1


NO-JIRA: add support for delaying frame sends for a specified time


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/a9e8f1f6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/a9e8f1f6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/a9e8f1f6

Branch: refs/heads/master
Commit: a9e8f1f60099f415c7ccfc8bad9ad868eb17b596
Parents: 5bf3c21
Author: Robert Gemmell <[email protected]>
Authored: Fri Jun 26 08:50:36 2015 +0100
Committer: Robert Gemmell <[email protected]>
Committed: Fri Jun 26 15:03:17 2015 +0100

----------------------------------------------------------------------
 .../qpid/jms/test/testpeer/FrameSender.java     |  7 ++++++-
 .../qpid/jms/test/testpeer/TestAmqpPeer.java    | 20 ++++++++++++++++----
 2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/a9e8f1f6/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java
index ed34384..9e34d4a 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/FrameSender.java
@@ -29,6 +29,7 @@ public class FrameSender implements AmqpPeerRunnable
     private ValueProvider _valueProvider;
     private int _channel;
     private boolean _deferWrite = false;
+    private long _sendDelay = 0;
 
     FrameSender(TestAmqpPeer testAmqpPeer, FrameType type, int channel, 
ListDescribedType frameDescribedType, Binary framePayload)
     {
@@ -47,7 +48,7 @@ public class FrameSender implements AmqpPeerRunnable
             _valueProvider.setValues();
         }
 
-        _testAmqpPeer.sendFrame(_type, _channel, _frameDescribedType, 
_framePayload, _deferWrite);
+        _testAmqpPeer.sendFrame(_type, _channel, _frameDescribedType, 
_framePayload, _deferWrite, _sendDelay);
     }
 
     public FrameSender setValueProvider(ValueProvider valueProvider)
@@ -67,4 +68,8 @@ public class FrameSender implements AmqpPeerRunnable
         _deferWrite  = deferWrite;
         return this;
     }
+
+    public void setSendDelay(long _sendDelay) {
+        this._sendDelay = _sendDelay;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/a9e8f1f6/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
index a587851..0961d5a 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
@@ -320,10 +320,10 @@ public class TestAmqpPeer implements AutoCloseable
 
     public void sendEmptyFrame(boolean deferWrite)
     {
-        sendFrame(FrameType.AMQP, 0, null, null, deferWrite);
+        sendFrame(FrameType.AMQP, 0, null, null, deferWrite, 0);
     }
 
-    void sendFrame(FrameType type, int channel, DescribedType 
frameDescribedType, Binary framePayload, boolean deferWrite)
+    void sendFrame(FrameType type, int channel, DescribedType 
frameDescribedType, Binary framePayload, boolean deferWrite, long sendDelay)
     {
         if(channel < 0)
         {
@@ -331,6 +331,18 @@ public class TestAmqpPeer implements AutoCloseable
         }
 
         LOGGER.debug("About to send: {}", frameDescribedType);
+
+        if(sendDelay > 0)
+        {
+            LOGGER.debug("Delaying send by {} ms", sendDelay);
+            try {
+                Thread.sleep(sendDelay);
+            } catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+                throw new RuntimeException("Interrupted before send", e);
+            }
+        }
+
         byte[] output = AmqpDataFramer.encodeFrame(type, channel, 
frameDescribedType, framePayload);
 
         if(deferWrite && _deferredBytes == null)
@@ -397,7 +409,7 @@ public class TestAmqpPeer implements AutoCloseable
                             FrameType.SASL, 0,
                             new SaslOutcomeFrame().setCode(SASL_OK),
                             null,
-                            false);
+                            false, 0);
 
                     // Now that we processed the SASL layer AMQP header, reset 
the
                     // peer to expect the non-SASL AMQP header.
@@ -519,7 +531,7 @@ public class TestAmqpPeer implements AutoCloseable
                         FrameType.SASL, 0,
                         new SaslOutcomeFrame().setCode(SASL_FAIL_AUTH),
                         null,
-                        false);
+                        false, 0);
                 _driverRunnable.expectHeader();
             }
         });


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to