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: [email protected]
For additional commands, e-mail: [email protected]