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