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