You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/01/28 23:57:49 UTC

svn commit: r1727449 - in /qpid/java/trunk: broker-core/src/main/java/org/apache/qpid/server/transport/ broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpi...

Author: rgodfrey
Date: Thu Jan 28 22:57:49 2016
New Revision: 1727449

URL: http://svn.apache.org/viewvc?rev=1727449&view=rev
Log:
QPID-6953 : Only create direct byte buffers if the ByteBufferSender prefers it that way

Removed:
    qpid/java/trunk/client/src/test/java/org/apache/qpid/client/transport/MockSender.java
Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
    qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageMetaData.java
    qpid/java/trunk/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java
    qpid/java/trunk/client/src/test/java/org/apache/qpid/client/transport/TestNetworkConnection.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/bytebuffer/QpidByteBuffer.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQFrame.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/ByteBufferSender.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLSender.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
    qpid/java/trunk/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/MaxFrameSizeTest.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/ProtocolNegotiationTest.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java Thu Jan 28 22:57:49 2016
@@ -507,6 +507,12 @@ public class NonBlockingConnection imple
     }
 
     @Override
+    public boolean isDirectBufferPreferred()
+    {
+        return true;
+    }
+
+    @Override
     public void send(final QpidByteBuffer msg)
     {
 

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java Thu Jan 28 22:57:49 2016
@@ -124,6 +124,12 @@ public class AMQPConnection_0_10 extends
         return new ByteBufferSender()
         {
             @Override
+            public boolean isDirectBufferPreferred()
+            {
+                return sender.isDirectBufferPreferred();
+            }
+
+            @Override
             public void send(final QpidByteBuffer msg)
             {
                 updateLastWriteTime();

Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageMetaData.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageMetaData.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageMetaData.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageMetaData.java Thu Jan 28 22:57:49 2016
@@ -140,6 +140,12 @@ public class MessageMetaData implements
         _contentHeaderBody.writePayload(new ByteBufferSender()
                                         {
                                             @Override
+                                            public boolean isDirectBufferPreferred()
+                                            {
+                                                return true;
+                                            }
+
+                                            @Override
                                             public void send(final QpidByteBuffer msg)
                                             {
                                                 buffers.add(msg.duplicate());

Modified: qpid/java/trunk/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java (original)
+++ qpid/java/trunk/broker-plugins/websocket/src/main/java/org/apache/qpid/server/transport/websocket/WebSocketProvider.java Thu Jan 28 22:57:49 2016
@@ -365,6 +365,12 @@ class WebSocketProvider implements Accep
         }
 
         @Override
+        public boolean isDirectBufferPreferred()
+        {
+            return false;
+        }
+
+        @Override
         public void send(final QpidByteBuffer msg)
         {
             if (msg.remaining() > 0)

Modified: qpid/java/trunk/client/src/test/java/org/apache/qpid/client/transport/TestNetworkConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/client/src/test/java/org/apache/qpid/client/transport/TestNetworkConnection.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/client/src/test/java/org/apache/qpid/client/transport/TestNetworkConnection.java (original)
+++ qpid/java/trunk/client/src/test/java/org/apache/qpid/client/transport/TestNetworkConnection.java Thu Jan 28 22:57:49 2016
@@ -20,6 +20,8 @@
  */
 package org.apache.qpid.client.transport;
 
+import static org.mockito.Mockito.mock;
+
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.nio.ByteBuffer;
@@ -40,11 +42,11 @@ public class TestNetworkConnection imple
     private int _port = 1;
     private SocketAddress _localAddress = null;
     private SocketAddress _remoteAddress = null;
-    private final MockSender _sender;
+    private final ByteBufferSender _sender;
 
     public TestNetworkConnection()
     {
-        _sender = new MockSender();
+        _sender = mock(ByteBufferSender.class);
     }
 
 

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/bytebuffer/QpidByteBuffer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/bytebuffer/QpidByteBuffer.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/bytebuffer/QpidByteBuffer.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/bytebuffer/QpidByteBuffer.java Thu Jan 28 22:57:49 2016
@@ -464,6 +464,11 @@ public final class QpidByteBuffer
     }
 
 
+    public static QpidByteBuffer allocate(boolean direct, int size)
+    {
+        return direct ? allocateDirect(size) : allocate(size);
+    }
+
     public static QpidByteBuffer allocate(int size)
     {
         return new QpidByteBuffer(new NonPooledByteBufferRef(ByteBuffer.allocate(size)));

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQFrame.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQFrame.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQFrame.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQFrame.java Thu Jan 28 22:57:49 2016
@@ -58,7 +58,7 @@ public class AMQFrame extends AMQDataBlo
     @Override
     public long writePayload(final ByteBufferSender sender)
     {
-        QpidByteBuffer frameHeader = QpidByteBuffer.allocateDirect(HEADER_SIZE);
+        QpidByteBuffer frameHeader = QpidByteBuffer.allocate(sender.isDirectBufferPreferred(), HEADER_SIZE);
 
         frameHeader.put(_bodyFrame.getFrameType());
         frameHeader.putUnsignedShort(_channel);

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyImpl.java Thu Jan 28 22:57:49 2016
@@ -74,7 +74,7 @@ public abstract class AMQMethodBodyImpl
     {
 
         final int size = getSize();
-        QpidByteBuffer buf = QpidByteBuffer.allocateDirect(size);
+        QpidByteBuffer buf = QpidByteBuffer.allocate(sender.isDirectBufferPreferred(), size);
         buf.putUnsignedShort(getClazz());
         buf.putUnsignedShort(getMethod());
         writeMethodPayload(buf);

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java Thu Jan 28 22:57:49 2016
@@ -467,7 +467,7 @@ public class BasicContentHeaderPropertie
         else
         {
             int propertyListSize = getPropertyListSize();
-            QpidByteBuffer buf = QpidByteBuffer.allocateDirect(propertyListSize);
+            QpidByteBuffer buf = QpidByteBuffer.allocate(sender.isDirectBufferPreferred(), propertyListSize);
             writePropertyListPayload(buf);
             buf.flip();
             sender.send(buf);

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java Thu Jan 28 22:57:49 2016
@@ -92,7 +92,7 @@ public class ContentHeaderBody implement
     @Override
     public long writePayload(final ByteBufferSender sender)
     {
-        QpidByteBuffer data = QpidByteBuffer.allocateDirect(HEADER_SIZE);
+        QpidByteBuffer data = QpidByteBuffer.allocate(sender.isDirectBufferPreferred(), HEADER_SIZE);
         data.putUnsignedShort(CLASS_ID);
         data.putUnsignedShort(0);
         data.putLong(_bodySize);

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/ByteBufferSender.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/ByteBufferSender.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/ByteBufferSender.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/ByteBufferSender.java Thu Jan 28 22:57:49 2016
@@ -24,6 +24,7 @@ import org.apache.qpid.bytebuffer.QpidBy
 
 public interface ByteBufferSender
 {
+    boolean isDirectBufferPreferred();
 
     void send(QpidByteBuffer msg);
 

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java Thu Jan 28 22:57:49 2016
@@ -117,6 +117,12 @@ public final class IoSender implements R
         return result;
     }
 
+    @Override
+    public boolean isDirectBufferPreferred()
+    {
+        return false;
+    }
+
     public void send(QpidByteBuffer buf)
     {
         checkNotAlreadyClosed();

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLSender.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLSender.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLSender.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLSender.java Thu Jan 28 22:57:49 2016
@@ -71,6 +71,12 @@ public class SASLSender extends SASLEncr
        delegate.flush();
     }
 
+    @Override
+    public boolean isDirectBufferPreferred()
+    {
+        return false;
+    }
+
     public void send(QpidByteBuffer buf)
     {
         if (closed.get())

Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java Thu Jan 28 22:57:49 2016
@@ -143,6 +143,12 @@ public class SSLSender implements ByteBu
         delegate.flush();
     }
 
+    @Override
+    public boolean isDirectBufferPreferred()
+    {
+        return false;
+    }
+
     public void send(QpidByteBuffer appData)
     {
         appData = appData.duplicate();

Modified: qpid/java/trunk/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java (original)
+++ qpid/java/trunk/common/src/test/java/org/apache/qpid/codec/AMQDecoderTest.java Thu Jan 28 22:57:49 2016
@@ -248,6 +248,12 @@ public class AMQDecoderTest extends Qpid
         private final Collection<QpidByteBuffer> _sentBuffers = new ArrayList<>();
 
         @Override
+        public boolean isDirectBufferPreferred()
+        {
+            return false;
+        }
+
+        @Override
         public void send(final QpidByteBuffer msg)
         {
             _sentBuffers.add(msg.duplicate());

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/MaxFrameSizeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/MaxFrameSizeTest.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/MaxFrameSizeTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/MaxFrameSizeTest.java Thu Jan 28 22:57:49 2016
@@ -396,6 +396,12 @@ public class MaxFrameSizeTest extends Qp
         }
 
         @Override
+        public boolean isDirectBufferPreferred()
+        {
+            return false;
+        }
+
+        @Override
         public void send(final QpidByteBuffer msg)
         {
             _sentBuffers.add(msg.duplicate());

Modified: qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/ProtocolNegotiationTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/ProtocolNegotiationTest.java?rev=1727449&r1=1727448&r2=1727449&view=diff
==============================================================================
--- qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/ProtocolNegotiationTest.java (original)
+++ qpid/java/trunk/systests/src/test/java/org/apache/qpid/transport/ProtocolNegotiationTest.java Thu Jan 28 22:57:49 2016
@@ -240,6 +240,12 @@ public class ProtocolNegotiationTest ext
         }
 
         @Override
+        public boolean isDirectBufferPreferred()
+        {
+            return false;
+        }
+
+        @Override
         public void send(final QpidByteBuffer msg)
         {
             byte[] data = new byte[msg.remaining()];



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org