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 2014/11/10 17:48:03 UTC

svn commit: r1637941 - in /tomcat/trunk/java/org/apache/coyote/http11: ./ upgrade/

Author: markt
Date: Mon Nov 10 16:48:03 2014
New Revision: 1637941

URL: http://svn.apache.org/r1637941
Log:
No longer need implementation specific upgrade processors. Collapse
class hierarchy into single implementation.

Added:
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java   (contents, props changed)
      - copied, changed from r1637940, tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java
Removed:
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/NioProcessor.java
Modified:
    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/Http11AprProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?rev=1637941&r1=1637940&r2=1637941&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Mon Nov 10 16:48:03 2014
@@ -23,7 +23,7 @@ import javax.servlet.http.HttpUpgradeHan
 
 import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Processor;
-import org.apache.coyote.http11.upgrade.AprProcessor;
+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.AbstractEndpoint;
@@ -325,7 +325,7 @@ public class Http11AprProtocol extends A
                 SocketWrapperBase<Long> socket, ByteBuffer leftoverInput,
                 HttpUpgradeHandler httpUpgradeProcessor)
                 throws IOException {
-            return new AprProcessor(socket, leftoverInput, httpUpgradeProcessor,
+            return new UpgradeProcessor<>(socket, leftoverInput, httpUpgradeProcessor,
                     proto.getUpgradeAsyncWriteBufferSize());
         }
     }

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=1637941&r1=1637940&r2=1637941&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Mon Nov 10 16:48:03 2014
@@ -25,7 +25,7 @@ import javax.servlet.http.HttpUpgradeHan
 
 import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Processor;
-import org.apache.coyote.http11.upgrade.Nio2Processor;
+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.AbstractEndpoint;
@@ -264,7 +264,7 @@ public class Http11Nio2Protocol extends 
                 SocketWrapperBase<Nio2Channel> socket, ByteBuffer leftoverInput,
                 HttpUpgradeHandler httpUpgradeProcessor)
                 throws IOException {
-            return new Nio2Processor(socket, leftoverInput,
+            return new UpgradeProcessor<>(socket, leftoverInput,
                     httpUpgradeProcessor, proto.getUpgradeAsyncWriteBufferSize());
         }
 

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=1637941&r1=1637940&r2=1637941&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Mon Nov 10 16:48:03 2014
@@ -26,7 +26,7 @@ import javax.servlet.http.HttpUpgradeHan
 
 import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Processor;
-import org.apache.coyote.http11.upgrade.NioProcessor;
+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.AbstractEndpoint;
@@ -296,7 +296,7 @@ public class Http11NioProtocol extends A
                 SocketWrapperBase<NioChannel> socket, ByteBuffer leftoverInput,
                 HttpUpgradeHandler httpUpgradeProcessor)
                 throws IOException {
-            return new NioProcessor(socket, leftoverInput, httpUpgradeProcessor,
+            return new UpgradeProcessor<>(socket, leftoverInput, httpUpgradeProcessor,
                     proto.getUpgradeAsyncWriteBufferSize());
         }
 

Copied: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java (from r1637940, tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java)
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java?p2=tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java&p1=tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java&r1=1637940&r2=1637941&rev=1637941&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java Mon Nov 10 16:48:03 2014
@@ -28,29 +28,34 @@ import javax.servlet.http.WebConnection;
 import org.apache.coyote.Processor;
 import org.apache.coyote.Request;
 import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
 import org.apache.tomcat.util.net.SSLSupport;
 import org.apache.tomcat.util.net.SocketStatus;
 import org.apache.tomcat.util.net.SocketWrapperBase;
 import org.apache.tomcat.util.res.StringManager;
 
-public abstract class AbstractProcessor<S>
-        implements Processor<S>, WebConnection {
+public class UpgradeProcessor<S> implements Processor<S>, WebConnection {
 
-    protected static final StringManager sm = StringManager.getManager(
-            AbstractProcessor.class.getPackage().getName());
-    protected abstract Log getLog();
+    private static final int INFINITE_TIMEOUT = -1;
+
+    private static final Log log = LogFactory.getLog(UpgradeProcessor.class);
+    private static final StringManager sm = StringManager.getManager(UpgradeProcessor.class);
 
     private final HttpUpgradeHandler httpUpgradeHandler;
     private final UpgradeServletInputStream upgradeServletInputStream;
     private final UpgradeServletOutputStream upgradeServletOutputStream;
 
-    protected AbstractProcessor (HttpUpgradeHandler httpUpgradeHandler,
-            UpgradeServletInputStream upgradeServletInputStream,
-            UpgradeServletOutputStream upgradeServletOutputStream) {
+
+    public UpgradeProcessor(SocketWrapperBase<?> wrapper, ByteBuffer leftOverInput,
+            HttpUpgradeHandler httpUpgradeHandler, int asyncWriteBufferSize) {
         this.httpUpgradeHandler = httpUpgradeHandler;
-        this.upgradeServletInputStream = upgradeServletInputStream;
-        this.upgradeServletOutputStream = upgradeServletOutputStream;
+        this.upgradeServletInputStream = new UpgradeServletInputStream(wrapper);
+        this.upgradeServletOutputStream =
+                new UpgradeServletOutputStream(wrapper, asyncWriteBufferSize);
+
+        wrapper.unRead(leftOverInput);
+        wrapper.setTimeout(INFINITE_TIMEOUT);
     }
 
 
@@ -83,15 +88,15 @@ public abstract class AbstractProcessor<
         return true;
     }
 
+
     @Override
     public HttpUpgradeHandler getHttpUpgradeHandler() {
         return httpUpgradeHandler;
     }
 
-    @Override
-    public final SocketState upgradeDispatch(SocketStatus status)
-            throws IOException {
 
+    @Override
+    public final SocketState upgradeDispatch(SocketStatus status) throws IOException {
         if (status == SocketStatus.OPEN_READ) {
             upgradeServletInputStream.onDataAvailable();
         } else if (status == SocketStatus.OPEN_WRITE) {
@@ -100,14 +105,12 @@ public abstract class AbstractProcessor<
             try {
                 upgradeServletInputStream.close();
             } catch (IOException ioe) {
-                getLog().debug(sm.getString(
-                        "abstractProcessor.isCloseFail", ioe));
+                log.debug(sm.getString("abstractProcessor.isCloseFail", ioe));
             }
             try {
                 upgradeServletOutputStream.close();
             } catch (IOException ioe) {
-                getLog().debug(sm.getString(
-                        "abstractProcessor.osCloseFail", ioe));
+                log.debug(sm.getString("abstractProcessor.osCloseFail", ioe));
             }
             return SocketState.CLOSED;
         } else {
@@ -121,6 +124,7 @@ public abstract class AbstractProcessor<
         return SocketState.UPGRADED;
     }
 
+
     @Override
     public final void recycle(boolean socketClosing) {
         // Currently a NO-OP as upgrade processors are not recycled.
@@ -134,42 +138,49 @@ public abstract class AbstractProcessor<
         return null;
     }
 
+
     @Override
-    public final SocketState process(SocketWrapperBase<S> socketWrapper)
-            throws IOException {
+    public final SocketState process(SocketWrapperBase<S> socketWrapper) throws IOException {
         return null;
     }
 
+
     @Override
     public final SocketState asyncDispatch(SocketStatus status) {
         return null;
     }
 
+
     @Override
     public void errorDispatch() {
         // NO-OP
     }
 
+
     @Override
     public final SocketState asyncPostProcess() {
         return null;
     }
 
+
     @Override
     public final boolean isAsync() {
         return false;
     }
 
+
     @Override
     public final Request getRequest() {
         return null;
     }
 
+
     @Override
     public final void setSslSupport(SSLSupport sslSupport) {
         // NOOP
     }
 
+
     @Override
     public ByteBuffer getLeftoverInput() {
         return null;

Propchange: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native



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