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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org