Author: markt Date: Mon Nov 10 16:47:40 2014 New Revision: 1637938 URL: http://svn.apache.org/r1637938 Log: No longer need implementation specific UpgradeServletOutputStreams. Collapse the unnecessary class hierarchy.
Added: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java (contents, props changed) - copied, changed from r1637937, tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java Removed: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/NioServletOutputStream.java Modified: 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 tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractProcessor.java Mon Nov 10 16:47:40 2014 @@ -43,11 +43,11 @@ public abstract class AbstractProcessor< private final HttpUpgradeHandler httpUpgradeHandler; private final UpgradeServletInputStream upgradeServletInputStream; - private final AbstractServletOutputStream<S> upgradeServletOutputStream; + private final UpgradeServletOutputStream upgradeServletOutputStream; protected AbstractProcessor (HttpUpgradeHandler httpUpgradeHandler, UpgradeServletInputStream upgradeServletInputStream, - AbstractServletOutputStream<S> upgradeServletOutputStream) { + UpgradeServletOutputStream upgradeServletOutputStream) { this.httpUpgradeHandler = httpUpgradeHandler; this.upgradeServletInputStream = upgradeServletInputStream; this.upgradeServletOutputStream = upgradeServletOutputStream; Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprProcessor.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprProcessor.java Mon Nov 10 16:47:40 2014 @@ -38,7 +38,7 @@ public class AprProcessor extends Abstra HttpUpgradeHandler httpUpgradeProcessor, int asyncWriteBufferSize) { super(httpUpgradeProcessor, new UpgradeServletInputStream(wrapper), - new AprServletOutputStream(wrapper, asyncWriteBufferSize)); + new UpgradeServletOutputStream(wrapper, asyncWriteBufferSize)); ((AprSocketWrapper) wrapper).setLeftOverInput(leftOverInput); Socket.timeoutSet(wrapper.getSocket().longValue(), INFINITE_TIMEOUT); } Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2Processor.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2Processor.java Mon Nov 10 16:47:40 2014 @@ -37,7 +37,7 @@ public class Nio2Processor extends Abstr HttpUpgradeHandler httpUpgradeProcessor, int asyncWriteBufferSize) { super(httpUpgradeProcessor, new UpgradeServletInputStream(wrapper), - new Nio2ServletOutputStream(wrapper, asyncWriteBufferSize)); + new UpgradeServletOutputStream(wrapper, asyncWriteBufferSize)); wrapper.setTimeout(INFINITE_TIMEOUT); if (leftoverInput != null) { Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/NioProcessor.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/NioProcessor.java Mon Nov 10 16:47:40 2014 @@ -37,7 +37,7 @@ public class NioProcessor extends Abstra HttpUpgradeHandler httpUpgradeProcessor, int asyncWriteBufferSize) { super(httpUpgradeProcessor, new UpgradeServletInputStream(wrapper), - new NioServletOutputStream(wrapper, asyncWriteBufferSize)); + new UpgradeServletOutputStream(wrapper, asyncWriteBufferSize)); wrapper.setTimeout(INFINITE_TIMEOUT); if (leftoverInput != null) { Copied: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java (from r1637937, tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java?p2=tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java&p1=tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java&r1=1637937&r2=1637938&rev=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AbstractServletOutputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java Mon Nov 10 16:47:40 2014 @@ -26,12 +26,12 @@ import org.apache.tomcat.util.net.Dispat import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; -public abstract class AbstractServletOutputStream<S> extends ServletOutputStream { +public class UpgradeServletOutputStream extends ServletOutputStream { protected static final StringManager sm = StringManager.getManager( - AbstractServletOutputStream.class.getPackage().getName()); + UpgradeServletOutputStream.class.getPackage().getName()); - protected final SocketWrapperBase<S> socketWrapper; + protected final SocketWrapperBase<?> socketWrapper; // Used to ensure that isReady() and onWritePossible() have a consistent // view of buffer and fireListener when determining if the listener should @@ -62,7 +62,7 @@ public abstract class AbstractServletOut private final int asyncWriteBufferSize; - public AbstractServletOutputStream(SocketWrapperBase<S> socketWrapper, + public UpgradeServletOutputStream(SocketWrapperBase<?> socketWrapper, int asyncWriteBufferSize) { this.socketWrapper = socketWrapper; this.asyncWriteBufferSize = asyncWriteBufferSize; @@ -151,7 +151,7 @@ public abstract class AbstractServletOut private void writeInternal(byte[] b, int off, int len) throws IOException { if (listener == null) { // Simple case - blocking IO - doWrite(true, b, off, len); + socketWrapper.write(true, b, off, len); } else { // Non-blocking IO // If the non-blocking read does not complete, doWrite() will add @@ -159,7 +159,7 @@ public abstract class AbstractServletOut // write event before this method has finished updating buffer. The // writeLock sync makes sure that buffer is updated before the next // write executes. - int written = doWrite(false, b, off, len); + int written = socketWrapper.write(false, b, off, len); if (written < len) { if (b == buffer) { // This is a partial write of the existing buffer. Just @@ -239,16 +239,4 @@ public abstract class AbstractServletOut thread.setContextClassLoader(originalClassLoader); } } - - - /** - * Abstract method to be overridden by concrete implementations. The base - * class will ensure that there are no concurrent calls to this method for - * the same socket by ensuring that the writeLock is held when making any - * calls to this method. - */ - protected abstract int doWrite(boolean block, byte[] b, int off, int len) - throws IOException; - - protected abstract void doFlush() throws IOException; } Propchange: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Mon Nov 10 16:47:40 2014 @@ -2483,6 +2483,7 @@ public class AprEndpoint extends Abstrac } + @Override public int write(boolean block, byte[] b, int off, int len) throws IOException { if (closed) { @@ -2583,6 +2584,7 @@ public class AprEndpoint extends Abstrac } + @Override public void flush() { // NO-OP } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Mon Nov 10 16:47:40 2014 @@ -986,6 +986,7 @@ public class Nio2Endpoint extends Abstra } + @Override public int write(boolean block, byte[] b, int off, int len) throws IOException { int leftToWrite = len; int count = 0; @@ -1060,6 +1061,7 @@ public class Nio2Endpoint extends Abstra } + @Override public void flush() throws IOException { try { // Block until a possible non blocking write is done Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Mon Nov 10 16:47:40 2014 @@ -1517,8 +1517,8 @@ public class NioEndpoint extends Abstrac } - public int write(boolean block, byte[] b, int off, int len) - throws IOException { + @Override + public int write(boolean block, byte[] b, int off, int len) throws IOException { int leftToWrite = len; int count = 0; int offset = off; @@ -1582,6 +1582,7 @@ public class NioEndpoint extends Abstrac } + @Override public void flush() throws IOException { NioEndpoint.NioSocketWrapper att = (NioEndpoint.NioSocketWrapper) getSocket().getAttachment(false); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1637938&r1=1637937&r2=1637938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Mon Nov 10 16:47:40 2014 @@ -189,4 +189,7 @@ public abstract class SocketWrapperBase< public abstract int read(boolean block, byte[] b, int off, int len) throws IOException; public abstract boolean isReady() throws IOException; public abstract void close() throws IOException; + + public abstract int write(boolean block, byte[] b, int off, int len) throws IOException; + public abstract void flush() throws IOException; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org