You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/30 15:22:56 UTC

svn commit: r1656021 - in /tomcat/trunk/java/org/apache/coyote/http11: AbstractHttp11Protocol.java Http11AprProtocol.java Http11Nio2Protocol.java Http11NioProtocol.java

Author: markt
Date: Fri Jan 30 14:22:56 2015
New Revision: 1656021

URL: http://svn.apache.org/r1656021
Log:
Pull up common Http11ConnectionHandler methods.

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java?rev=1656021&r1=1656020&r2=1656021&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Fri Jan 30 14:22:56 2015
@@ -16,9 +16,16 @@
  */
 package org.apache.coyote.http11;
 
-import org.apache.coyote.AbstractProtocol;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
+import javax.servlet.http.HttpUpgradeHandler;
 
+import org.apache.coyote.AbstractProtocol;
+import org.apache.coyote.Processor;
+import org.apache.coyote.http11.upgrade.UpgradeProcessor;
 import org.apache.tomcat.util.net.AbstractEndpoint;
+import org.apache.tomcat.util.net.SocketWrapperBase;
 
 public abstract class AbstractHttp11Protocol<S> extends AbstractProtocol<S> {
 
@@ -34,6 +41,17 @@ public abstract class AbstractHttp11Prot
     }
 
 
+    /**
+     * {@inheritDoc}
+     * <p>
+     * Over-ridden here to make the method visible to nested classes.
+     */
+    @Override
+    protected AbstractEndpoint<S> getEndpoint() {
+        return super.getEndpoint();
+    }
+
+
     // ------------------------------------------------ HTTP specific properties
     // ------------------------------------------ managed in the ProtocolHandler
 
@@ -234,5 +252,38 @@ public abstract class AbstractHttp11Prot
     protected abstract static class AbstractHttp11ConnectionHandler<S>
             extends AbstractConnectionHandler<S,Http11Processor> {
 
+        private final AbstractHttp11Protocol<S> proto;
+
+
+        protected AbstractHttp11ConnectionHandler(AbstractHttp11Protocol<S> proto) {
+            this.proto = proto;
+        }
+
+
+        @Override
+        protected AbstractHttp11Protocol<S> getProtocol() {
+            return proto;
+        }
+
+
+        @Override
+        public Http11Processor createProcessor() {
+            Http11Processor processor = new Http11Processor(
+                    proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
+                    proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
+                    proto.getMaxSwallowSize());
+            proto.configureProcessor(processor);
+            register(processor);
+            return processor;
+        }
+
+
+        @Override
+        protected Processor createUpgradeProcessor(
+                SocketWrapperBase<?> socket, ByteBuffer leftoverInput,
+                HttpUpgradeHandler httpUpgradeHandler)
+                throws IOException {
+            return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler);
+        }
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?rev=1656021&r1=1656020&r2=1656021&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Fri Jan 30 14:22:56 2015
@@ -16,14 +16,7 @@
  */
 package org.apache.coyote.http11;
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-import javax.servlet.http.HttpUpgradeHandler;
-
-import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Processor;
-import org.apache.coyote.http11.upgrade.UpgradeProcessor;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.net.AprEndpoint;
@@ -214,15 +207,8 @@ public class Http11AprProtocol extends A
     protected static class Http11ConnectionHandler
             extends AbstractHttp11ConnectionHandler<Long> {
 
-        protected Http11AprProtocol proto;
-
         Http11ConnectionHandler(Http11AprProtocol proto) {
-            this.proto = proto;
-        }
-
-        @Override
-        protected AbstractProtocol<Long> getProtocol() {
-            return proto;
+            super(proto);
         }
 
         @Override
@@ -235,17 +221,17 @@ public class Http11AprProtocol extends A
                 Processor processor, boolean addToPoller) {
             processor.recycle();
             recycledProcessors.push(processor);
-            if (addToPoller && proto.getEndpoint().isRunning()) {
-                ((AprEndpoint)proto.getEndpoint()).getPoller().add(
+            if (addToPoller && getProtocol().getEndpoint().isRunning()) {
+                ((AprEndpoint)getProtocol().getEndpoint()).getPoller().add(
                         socket.getSocket().longValue(),
-                        proto.getEndpoint().getKeepAliveTimeout(), true, false);
+                        getProtocol().getEndpoint().getKeepAliveTimeout(), true, false);
             }
         }
 
         @Override
         public SocketState process(SocketWrapperBase<Long> socket,
                 SocketStatus status) {
-            if (proto.npnHandler != null) {
+            if (getProtocol().npnHandler != null) {
                 Processor processor = null;
                 if (status == SocketStatus.OPEN_READ) {
                     processor = connections.get(socket.getSocket());
@@ -253,7 +239,7 @@ public class Http11AprProtocol extends A
                 }
                 if (processor == null) {
                     // if not null - handled by http11
-                    SocketState socketState = proto.npnHandler.process(socket, status);
+                    SocketState socketState = getProtocol().npnHandler.process(socket, status);
                     // handled by npn protocol.
                     if (socketState == SocketState.CLOSED ||
                             socketState == SocketState.LONG) {
@@ -266,7 +252,7 @@ public class Http11AprProtocol extends A
 
         @Override
         protected void initSsl(SocketWrapperBase<Long> socket, Processor processor) {
-            if (proto.isSSLEnabled()) {
+            if (getProtocol().isSSLEnabled()) {
                 AprSSLSupport sslSupport =
                         new AprSSLSupport(socket, processor.getClientCertProvider());
                 processor.setSslSupport(sslSupport);
@@ -283,7 +269,7 @@ public class Http11AprProtocol extends A
                 socket.setAsync(true);
             } else {
                 // Upgraded
-                Poller p = ((AprEndpoint) proto.getEndpoint()).getPoller();
+                Poller p = ((AprEndpoint) getProtocol().getEndpoint()).getPoller();
                 if (p == null) {
                     // Connector has been stopped
                     release(socket, processor, false);
@@ -292,24 +278,5 @@ public class Http11AprProtocol extends A
                 }
             }
         }
-
-        @Override
-        protected Http11Processor createProcessor() {
-            Http11Processor processor = new Http11Processor(
-                    proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
-                    proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
-                    proto.getMaxSwallowSize());
-            proto.configureProcessor(processor);
-            register(processor);
-            return processor;
-        }
-
-        @Override
-        protected Processor createUpgradeProcessor(
-                SocketWrapperBase<?> socket, ByteBuffer leftoverInput,
-                HttpUpgradeHandler httpUpgradeHandler)
-                throws IOException {
-            return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler);
-        }
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java?rev=1656021&r1=1656020&r2=1656021&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Fri Jan 30 14:22:56 2015
@@ -16,16 +16,11 @@
  */
 package org.apache.coyote.http11;
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
 import java.nio.channels.ReadPendingException;
 
 import javax.net.ssl.SSLEngine;
-import javax.servlet.http.HttpUpgradeHandler;
 
-import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Processor;
-import org.apache.coyote.http11.upgrade.UpgradeProcessor;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.net.Nio2Channel;
@@ -67,6 +62,7 @@ public class Http11Nio2Protocol extends
     }
 
 
+
     // -------------------- Pool setup --------------------
 
     public void setAcceptorThreadPriority(int threadPriority) {
@@ -103,15 +99,8 @@ public class Http11Nio2Protocol extends
             extends AbstractHttp11ConnectionHandler<Nio2Channel>
             implements Handler {
 
-        protected Http11Nio2Protocol proto;
-
         Http11ConnectionHandler(Http11Nio2Protocol proto) {
-            this.proto = proto;
-        }
-
-        @Override
-        protected AbstractProtocol<Nio2Channel> getProtocol() {
-            return proto;
+            super(proto);
         }
 
         @Override
@@ -122,7 +111,7 @@ public class Http11Nio2Protocol extends
 
         @Override
         public SSLImplementation getSslImplementation() {
-            return proto.sslImplementation;
+            return ((Http11Nio2Protocol) getProtocol()).sslImplementation;
         }
 
         /**
@@ -141,8 +130,8 @@ public class Http11Nio2Protocol extends
         @Override
         public SocketState process(SocketWrapperBase<Nio2Channel> socket,
                 SocketStatus status) {
-            if (proto.npnHandler != null) {
-                SocketState ss = proto.npnHandler.process(socket, status);
+            if (getProtocol().npnHandler != null) {
+                SocketState ss = getProtocol().npnHandler.process(socket, status);
                 if (ss != SocketState.OPEN) {
                     return ss;
                 }
@@ -157,7 +146,7 @@ public class Http11Nio2Protocol extends
             processor.recycle();
             recycledProcessors.push(processor);
             if (socket.isAsync()) {
-                ((Nio2Endpoint) proto.getEndpoint()).removeTimeout(socket);
+                ((Nio2Endpoint) getProtocol().getEndpoint()).removeTimeout(socket);
             }
             if (addToPoller) {
                 ((Nio2SocketWrapper) socket).awaitBytes();
@@ -167,13 +156,11 @@ public class Http11Nio2Protocol extends
 
         @Override
         protected void initSsl(SocketWrapperBase<Nio2Channel> socket, Processor processor) {
-            if (proto.isSSLEnabled() &&
-                    (proto.sslImplementation != null)
+            if (getProtocol().isSSLEnabled() && getSslImplementation() != null
                     && (socket.getSocket() instanceof SecureNio2Channel)) {
                 SecureNio2Channel ch = (SecureNio2Channel)socket.getSocket();
-                processor.setSslSupport(
-                        proto.sslImplementation.getSSLSupport(
-                                ch.getSslEngine().getSession()));
+                processor.setSslSupport(getSslImplementation().getSSLSupport(
+                            ch.getSslEngine().getSession()));
             } else {
                 processor.setSslSupport(null);
             }
@@ -184,7 +171,7 @@ public class Http11Nio2Protocol extends
         protected void longPoll(SocketWrapperBase<Nio2Channel> socket, Processor processor) {
             if (processor.isAsync()) {
                 socket.setAsync(true);
-                ((Nio2Endpoint) proto.getEndpoint()).addTimeout(socket);
+                ((Nio2Endpoint) getProtocol().getEndpoint()).addTimeout(socket);
             } else if (processor.isUpgrade()) {
                 if (((Nio2SocketWrapper) socket).isUpgradeInit()) {
                     try {
@@ -206,35 +193,16 @@ public class Http11Nio2Protocol extends
         }
 
         @Override
-        public Http11Processor createProcessor() {
-            Http11Processor processor = new Http11Processor(
-                    proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
-                    proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
-                    proto.getMaxSwallowSize());
-            proto.configureProcessor(processor);
-            register(processor);
-            return processor;
-        }
-
-        @Override
-        protected Processor createUpgradeProcessor(
-                SocketWrapperBase<?> socket, ByteBuffer leftoverInput,
-                HttpUpgradeHandler httpUpgradeHandler)
-                throws IOException {
-            return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler);
-        }
-
-        @Override
         public void onCreateSSLEngine(SSLEngine engine) {
-            if (proto.npnHandler != null) {
-                proto.npnHandler.onCreateEngine(engine);
+            if (getProtocol().npnHandler != null) {
+                getProtocol().npnHandler.onCreateEngine(engine);
             }
         }
 
         @Override
         public void closeAll() {
             for (Nio2Channel channel : connections.keySet()) {
-                ((Nio2Endpoint) proto.getEndpoint()).closeSocket(channel.getSocket());
+                ((Nio2Endpoint) getProtocol().getEndpoint()).closeSocket(channel.getSocket());
             }
         }
     }

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java?rev=1656021&r1=1656020&r2=1656021&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Fri Jan 30 14:22:56 2015
@@ -16,17 +16,12 @@
  */
 package org.apache.coyote.http11;
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
 import java.nio.channels.SocketChannel;
 import java.util.Iterator;
 
 import javax.net.ssl.SSLEngine;
-import javax.servlet.http.HttpUpgradeHandler;
 
-import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Processor;
-import org.apache.coyote.http11.upgrade.UpgradeProcessor;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.net.NioChannel;
@@ -130,15 +125,8 @@ public class Http11NioProtocol extends A
             extends AbstractHttp11ConnectionHandler<NioChannel>
             implements Handler {
 
-        protected Http11NioProtocol proto;
-
         Http11ConnectionHandler(Http11NioProtocol proto) {
-            this.proto = proto;
-        }
-
-        @Override
-        protected AbstractProtocol<NioChannel> getProtocol() {
-            return proto;
+            super(proto);
         }
 
         @Override
@@ -149,7 +137,7 @@ public class Http11NioProtocol extends A
 
         @Override
         public SSLImplementation getSslImplementation() {
-            return proto.sslImplementation;
+            return ((Http11NioProtocol) getProtocol()).sslImplementation;
         }
 
         /**
@@ -193,8 +181,8 @@ public class Http11NioProtocol extends A
         @Override
         public SocketState process(SocketWrapperBase<NioChannel> socket,
                 SocketStatus status) {
-            if (proto.npnHandler != null) {
-                SocketState ss = proto.npnHandler.process(socket, status);
+            if (getProtocol().npnHandler != null) {
+                SocketState ss = getProtocol().npnHandler.process(socket, status);
                 if (ss != SocketState.OPEN) {
                     return ss;
                 }
@@ -216,12 +204,12 @@ public class Http11NioProtocol extends A
 
         @Override
         protected void initSsl(SocketWrapperBase<NioChannel> socket, Processor processor) {
-            if (proto.isSSLEnabled() &&
-                    (proto.sslImplementation != null)
+            if (getProtocol().isSSLEnabled() &&
+                    (getSslImplementation() != null)
                     && (socket.getSocket() instanceof SecureNioChannel)) {
                 SecureNioChannel ch = (SecureNioChannel)socket.getSocket();
                 processor.setSslSupport(
-                        proto.sslImplementation.getSSLSupport(
+                        getSslImplementation().getSSLSupport(
                                 ch.getSslEngine().getSession()));
             } else {
                 processor.setSslSupport(null);
@@ -244,28 +232,9 @@ public class Http11NioProtocol extends A
         }
 
         @Override
-        public Http11Processor createProcessor() {
-            Http11Processor processor = new Http11Processor(
-                    proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
-                    proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
-                    proto.getMaxSwallowSize());
-            proto.configureProcessor(processor);
-            register(processor);
-            return processor;
-        }
-
-        @Override
-        protected Processor createUpgradeProcessor(
-                SocketWrapperBase<?> socket, ByteBuffer leftoverInput,
-                HttpUpgradeHandler httpUpgradeHandler)
-                throws IOException {
-            return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler);
-        }
-
-        @Override
         public void onCreateSSLEngine(SSLEngine engine) {
-            if (proto.npnHandler != null) {
-                proto.npnHandler.onCreateEngine(engine);
+            if (getProtocol().npnHandler != null) {
+                getProtocol().npnHandler.onCreateEngine(engine);
             }
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org