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/03/24 15:20:37 UTC

svn commit: r1668904 - in /tomcat/trunk/java/org/apache/coyote: ./ ajp/ http11/ http11/upgrade/ spdy/

Author: markt
Date: Tue Mar 24 14:20:37 2015
New Revision: 1668904

URL: http://svn.apache.org/r1668904
Log:
Simplify the processor interface by merging asyncDispatch and upgradeDispatch. There was no need for separate methods since the processor implementation is sufficient to distinguish between the two cases.

Modified:
    tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java
    tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
    tomcat/trunk/java/org/apache/coyote/Processor.java
    tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/LocalStrings.properties
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java
    tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java

Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Mar 24 14:20:37 2015
@@ -201,18 +201,14 @@ public abstract class AbstractProcessor
     public abstract SocketState process(SocketWrapperBase<?> socket) throws IOException;
 
     /**
-     * Process in-progress Servlet 3.0 Async requests. These will start as HTTP
-     * requests.
+     * Process an in-progress request that is not longer in standard HTTP mode.
+     * Uses currently include Servlet 3.0 Async and HTTP upgrade connections.
+     * Further uses may be added in the future. These will typically start as
+     * HTTP requests.
      */
     @Override
-    public abstract SocketState asyncDispatch(SocketStatus status);
+    public abstract SocketState dispatch(SocketStatus status);
 
-    /**
-     * Processes data received on a connection that has been through an HTTP
-     * upgrade.
-     */
-    @Override
-    public abstract SocketState upgradeDispatch(SocketStatus status);
 
     @Override
     public abstract HttpUpgradeHandler getHttpUpgradeHandler();

Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Mar 24 14:20:37 2015
@@ -642,19 +642,13 @@ public abstract class AbstractProtocol<S
                         // these calls may result in a nested call to process()
                         connections.put(socket, processor);
                         DispatchType nextDispatch = dispatches.next();
-                        if (processor.isUpgrade()) {
-                            state = processor.upgradeDispatch(
-                                    nextDispatch.getSocketStatus());
-                        } else {
-                            state = processor.asyncDispatch(
-                                    nextDispatch.getSocketStatus());
-                        }
+                        state = processor.dispatch(nextDispatch.getSocketStatus());
                     } else if (status == SocketStatus.DISCONNECT) {
                         // Do nothing here, just wait for it to get recycled
-                    } else if (processor.isAsync()) {
-                        state = processor.asyncDispatch(status);
+                    } else if (processor.isAsync() || processor.isUpgrade()) {
+                        state = processor.dispatch(status);
                     } else if (state == SocketState.ASYNC_END) {
-                        state = processor.asyncDispatch(status);
+                        state = processor.dispatch(status);
                         if (state == SocketState.OPEN) {
                             // There may be pipe-lined data to read. If the data
                             // isn't processed now, execution will exit this
@@ -663,8 +657,6 @@ public abstract class AbstractProtocol<S
                             // pipe-lined data. To avoid this, process it now.
                             state = processor.process(wrapper);
                         }
-                    } else if (processor.isUpgrade()) {
-                        state = processor.upgradeDispatch(status);
                     } else if (status == SocketStatus.OPEN_WRITE) {
                         // Extra write event likely after async, ignore
                         state = SocketState.LONG;

Modified: tomcat/trunk/java/org/apache/coyote/Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/Processor.java Tue Mar 24 14:20:37 2015
@@ -36,11 +36,11 @@ public interface Processor {
 
     SocketState process(SocketWrapperBase<?> socketWrapper) throws IOException;
 
-    SocketState asyncDispatch(SocketStatus status);
+    SocketState dispatch(SocketStatus status);
+
     SocketState asyncPostProcess();
 
     HttpUpgradeHandler getHttpUpgradeHandler();
-    SocketState upgradeDispatch(SocketStatus status);
 
     void errorDispatch();
 

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Mar 24 14:20:37 2015
@@ -620,7 +620,7 @@ public class AjpProcessor extends Abstra
 
 
     @Override
-    public SocketState asyncDispatch(SocketStatus status) {
+    public SocketState dispatch(SocketStatus status) {
 
         if (status == SocketStatus.OPEN_WRITE && response.getWriteListener() != null) {
             try {
@@ -859,14 +859,6 @@ public class AjpProcessor extends Abstra
     }
 
 
-    @Override
-    public SocketState upgradeDispatch(SocketStatus status) {
-        // Should never reach this code but in case we do...
-        throw new IllegalStateException(
-                sm.getString("ajpprocessor.httpupgrade.notsupported"));
-    }
-
-
     @Override
     public HttpUpgradeHandler getHttpUpgradeHandler() {
         // Should never reach this code but in case we do...

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Mar 24 14:20:37 2015
@@ -1694,7 +1694,7 @@ public class Http11Processor extends Abs
 
 
     @Override
-    public SocketState asyncDispatch(SocketStatus status) {
+    public SocketState dispatch(SocketStatus status) {
 
         if (status == SocketStatus.OPEN_WRITE && response.getWriteListener() != null) {
             try {
@@ -1781,14 +1781,6 @@ public class Http11Processor extends Abs
 
 
     @Override
-    public SocketState upgradeDispatch(SocketStatus status) {
-        // Should never reach this code but in case we do...
-        throw new IllegalStateException(
-                sm.getString("http11Processor.upgrade"));
-    }
-
-
-    @Override
     public HttpUpgradeHandler getHttpUpgradeHandler() {
         return httpUpgradeHandler;
     }

Modified: tomcat/trunk/java/org/apache/coyote/http11/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/LocalStrings.properties?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/LocalStrings.properties Tue Mar 24 14:20:37 2015
@@ -24,7 +24,6 @@ http11processor.socket.info=Exception ge
 http11processor.socket.ssl=Exception getting SSL attributes
 http11processor.socket.sslreneg=Exception re-negotiating SSL connection
 http11processor.sendfile.error=Error sending data using sendfile. May be caused by invalid request attributes for start/end points
-http11Processor.upgrade=An internal error has occurred as upgraded connections should only be processed by the dedicated upgrade processor implementations
 
 iib.available.readFail=A non-blocking read failed while attempting to determine if data was available
 iib.eof.error=Unexpected EOF read on the socket

Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java Tue Mar 24 14:20:37 2015
@@ -27,7 +27,6 @@ import org.apache.coyote.Processor;
 import org.apache.coyote.Request;
 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;
 
 public abstract class UpgradeProcessorBase implements Processor, WebConnection {
@@ -76,12 +75,6 @@ public abstract class UpgradeProcessorBa
         return null;
     }
 
-
-    @Override
-    public final SocketState asyncDispatch(SocketStatus status) {
-        return null;
-    }
-
 
     @Override
     public void errorDispatch() {

Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java Tue Mar 24 14:20:37 2015
@@ -79,7 +79,7 @@ public class UpgradeProcessorExternal ex
     // ------------------------------------------- Implemented Processor methods
 
     @Override
-    public final SocketState upgradeDispatch(SocketStatus status) {
+    public final SocketState dispatch(SocketStatus status) {
         if (status == SocketStatus.OPEN_READ) {
             upgradeServletInputStream.onDataAvailable();
         } else if (status == SocketStatus.OPEN_WRITE) {

Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java Tue Mar 24 14:20:37 2015
@@ -45,7 +45,7 @@ public class UpgradeProcessorInternal ex
 
 
     @Override
-    public SocketState upgradeDispatch(SocketStatus status) {
+    public SocketState dispatch(SocketStatus status) {
         return internalHttpUpgradeHandler.upgradeDispatch(status);
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java?rev=1668904&r1=1668903&r2=1668904&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Tue Mar 24 14:20:37 2015
@@ -511,12 +511,6 @@ public class SpdyProcessor extends Abstr
     }
 
     @Override
-    public SocketState asyncDispatch(SocketStatus status) {
-        System.err.println("ASYNC DISPATCH: " + status);
-        return null;
-    }
-
-    @Override
     public boolean isUpgrade() {
         return false;
     }
@@ -527,7 +521,7 @@ public class SpdyProcessor extends Abstr
     }
 
     @Override
-    public SocketState upgradeDispatch(SocketStatus status) {
+    public SocketState dispatch(SocketStatus status) {
         return null;
     }
 



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