You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2018/01/10 18:07:37 UTC

[1/2] qpid-proton-j git commit: PROTON-1737: add option to allow configuring max frame size when using the reactor

Repository: qpid-proton-j
Updated Branches:
  refs/heads/master 17cef9ace -> 6fa847b1e


PROTON-1737: add option to allow configuring max frame size when using the reactor


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

Branch: refs/heads/master
Commit: b2e776d9b9f1645f72309d36b3bda572604b3339
Parents: 17cef9a
Author: Robbie Gemmell <ro...@apache.org>
Authored: Wed Jan 10 13:14:30 2018 +0000
Committer: Robbie Gemmell <ro...@apache.org>
Committed: Wed Jan 10 13:14:30 2018 +0000

----------------------------------------------------------------------
 .../qpid/proton/reactor/ReactorOptions.java     | 20 ++++++++++++++++++++
 .../qpid/proton/reactor/impl/AcceptorImpl.java  |  6 ++++++
 .../qpid/proton/reactor/impl/IOHandler.java     |  5 +++++
 3 files changed, 31 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/b2e776d9/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
index 5863f7c..8957aa6 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/ReactorOptions.java
@@ -22,6 +22,7 @@ package org.apache.qpid.proton.reactor;
 
 public class ReactorOptions {
     private boolean enableSaslByDefault = true;
+    private int maxFrameSize;
 
     /**
      * Sets whether SASL will be automatically enabled with ANONYMOUS as the mechanism,
@@ -46,4 +47,23 @@ public class ReactorOptions {
     public boolean isEnableSaslByDefault() {
         return this.enableSaslByDefault;
     }
+
+    /**
+     * Sets the maximum frame size value to announce in the Open frame.
+     *
+     * @param maxFrameSize The frame size in bytes.
+     */
+    public void setMaxFrameSize(int maxFrameSize) {
+        this.maxFrameSize = maxFrameSize;
+    }
+
+    /**
+     * Gets the maximum frame size to be announced in the Open frame.
+     *
+     * @return the frame size in bytes or 0 if none is set.
+     * @see #setMaxFrameSize(int)
+     */
+    public int getMaxFrameSize() {
+      return maxFrameSize;
+    }
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/b2e776d9/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
index 7275113..eec8e70 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/AcceptorImpl.java
@@ -73,6 +73,12 @@ public class AcceptorImpl implements Acceptor {
                     conn_recs.set(ReactorImpl.CONNECTION_PEER_ADDRESS_KEY, Address.class, addr);
                 }
                 Transport trans = Proton.transport();
+
+                int maxFrameSizeOption = reactor.getOptions().getMaxFrameSize();
+                if (maxFrameSizeOption != 0) {
+                    trans.setMaxFrameSize(maxFrameSizeOption);
+                }
+
                 if(reactor.getOptions().isEnableSaslByDefault()) {
                     Sasl sasl = trans.sasl();
                     sasl.server();

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/b2e776d9/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
index 0594d32..81b85ff 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/reactor/impl/IOHandler.java
@@ -101,6 +101,11 @@ public class IOHandler extends BaseHandler {
         }
         Transport transport = Proton.transport();
 
+        int maxFrameSizeOption = reactor.getOptions().getMaxFrameSize();
+        if (maxFrameSizeOption != 0) {
+            transport.setMaxFrameSize(maxFrameSizeOption);
+        }
+
         if (reactor.getOptions().isEnableSaslByDefault()) {
             Sasl sasl = transport.sasl();
             sasl.client();


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


[2/2] qpid-proton-j git commit: PROTON-1739: remove default for session capacity and avoid confusing window interaction when setting frame size

Posted by ro...@apache.org.
PROTON-1739: remove default for session capacity and avoid confusing window interaction when setting frame size


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/commit/6fa847b1
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/tree/6fa847b1
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/diff/6fa847b1

Branch: refs/heads/master
Commit: 6fa847b1ef9de9d0accffeecdd1e5525167235d6
Parents: b2e776d
Author: Robbie Gemmell <ro...@apache.org>
Authored: Wed Jan 10 18:07:00 2018 +0000
Committer: Robbie Gemmell <ro...@apache.org>
Committed: Wed Jan 10 18:07:00 2018 +0000

----------------------------------------------------------------------
 .../java/org/apache/qpid/proton/engine/impl/SessionImpl.java | 2 +-
 .../org/apache/qpid/proton/engine/impl/TransportSession.java | 8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/6fa847b1/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SessionImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SessionImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SessionImpl.java
index c7b796d..865229b 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SessionImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SessionImpl.java
@@ -40,7 +40,7 @@ public class SessionImpl extends EndpointImpl implements ProtonJSession
     private Map<String, ReceiverImpl>  _receivers = new LinkedHashMap<String, ReceiverImpl>();
     private List<LinkImpl> _oldLinksToFree = new ArrayList<LinkImpl>();
     private TransportSession _transportSession;
-    private int _incomingCapacity = 1024*1024;
+    private int _incomingCapacity = 0;
     private int _incomingBytes = 0;
     private int _outgoingBytes = 0;
     private int _incomingDeliveries = 0;

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/6fa847b1/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
index d9c1083..a09889e 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
@@ -35,6 +35,7 @@ import org.apache.qpid.proton.engine.Event;
 class TransportSession
 {
     private static final int HANDLE_MAX = 65535;
+    private static final UnsignedInteger DEFAULT_WINDOW_SIZE = UnsignedInteger.valueOf(2147483647); // biggest legal value
 
     private final TransportImpl _transport;
     private final SessionImpl _session;
@@ -181,11 +182,12 @@ class TransportSession
 
     void updateIncomingWindow()
     {
+        int incomingCapacity = _session.getIncomingCapacity();
         int size = _transport.getMaxFrameSize();
-        if (size <= 0) {
-            _incomingWindowSize = UnsignedInteger.valueOf(2147483647); // biggest legal value
+        if (incomingCapacity <= 0 || size <= 0) {
+            _incomingWindowSize = DEFAULT_WINDOW_SIZE;
         } else {
-            _incomingWindowSize = UnsignedInteger.valueOf((_session.getIncomingCapacity() - _session.getIncomingBytes())/size);
+            _incomingWindowSize = UnsignedInteger.valueOf((incomingCapacity - _session.getIncomingBytes())/size);
         }
     }
 


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