Author: markt Date: Fri Jan 30 10:24:10 2015 New Revision: 1655976 URL: http://svn.apache.org/r1655976 Log: Remove generics from Processor. This removes I/O implementation specific code from several places in the Protocol implementations and will allow those methods to be pulled up. This commit includes a couple of temporary methods in SocketWrapperBase that I hope to be able to remove at a later stage of refactoring.
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java tomcat/trunk/java/org/apache/coyote/Processor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java 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 tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyAprNpnHandler.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProxyProtocol.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Fri Jan 30 10:24:10 2015 @@ -32,16 +32,16 @@ import org.apache.tomcat.util.res.String * Provides functionality and attributes common to all supported protocols * (currently HTTP and AJP). */ -public abstract class AbstractProcessor<S> implements ActionHook, Processor<S> { +public abstract class AbstractProcessor implements ActionHook, Processor { protected static final StringManager sm = StringManager.getManager(Constants.Package); protected Adapter adapter; protected final AsyncStateMachine asyncStateMachine; - protected final AbstractEndpoint<S> endpoint; + protected final AbstractEndpoint<?> endpoint; protected final Request request; protected final Response response; - protected SocketWrapperBase<S> socketWrapper = null; + protected SocketWrapperBase<?> socketWrapper = null; private String clientCertProvider = null; /** @@ -61,7 +61,7 @@ public abstract class AbstractProcessor< response = null; } - public AbstractProcessor(AbstractEndpoint<S> endpoint) { + public AbstractProcessor(AbstractEndpoint<?> endpoint) { this.endpoint = endpoint; asyncStateMachine = new AsyncStateMachine(this); request = new Request(); @@ -87,7 +87,7 @@ public abstract class AbstractProcessor< response.setStatus(500); } getLog().info(sm.getString("abstractProcessor.nonContainerThreadError"), t); - getEndpoint().processSocket(socketWrapper, SocketStatus.CLOSE_NOW, true); + socketWrapper.processSocket(SocketStatus.CLOSE_NOW, true); } } @@ -104,7 +104,7 @@ public abstract class AbstractProcessor< /** * The endpoint receiving connections that are handled by this processor. */ - protected AbstractEndpoint<S> getEndpoint() { + protected AbstractEndpoint<?> getEndpoint() { return endpoint; } @@ -152,7 +152,7 @@ public abstract class AbstractProcessor< /** * Set the socket wrapper being used. */ - protected final void setSocketWrapper(SocketWrapperBase<S> socketWrapper) { + protected final void setSocketWrapper(SocketWrapperBase<?> socketWrapper) { this.socketWrapper = socketWrapper; } @@ -160,7 +160,7 @@ public abstract class AbstractProcessor< /** * Get the socket wrapper being used. */ - protected final SocketWrapperBase<S> getSocketWrapper() { + protected final SocketWrapperBase<?> getSocketWrapper() { return socketWrapper; } @@ -198,7 +198,7 @@ public abstract class AbstractProcessor< * with although they may change type during processing. */ @Override - public abstract SocketState process(SocketWrapperBase<S> socket) throws IOException; + public abstract SocketState process(SocketWrapperBase<?> socket) throws IOException; /** * Process in-progress Servlet 3.0 Async requests. These will start as HTTP Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Fri Jan 30 10:24:10 2015 @@ -567,7 +567,7 @@ public abstract class AbstractProtocol<S // ------------------------------------------- Connection handler base class - protected abstract static class AbstractConnectionHandler<S,P extends Processor<S>> + protected abstract static class AbstractConnectionHandler<S,P extends Processor> implements AbstractEndpoint.Handler<S> { protected abstract Log getLog(); @@ -575,7 +575,7 @@ public abstract class AbstractProtocol<S protected final RequestGroupInfo global = new RequestGroupInfo(); protected final AtomicLong registerCount = new AtomicLong(0); - protected final ConcurrentHashMap<S,Processor<S>> connections = + protected final ConcurrentHashMap<S,Processor> connections = new ConcurrentHashMap<>(); protected final RecycledProcessors<P,S> recycledProcessors = @@ -610,7 +610,7 @@ public abstract class AbstractProtocol<S return SocketState.CLOSED; } - Processor<S> processor = connections.get(socket); + Processor processor = connections.get(socket); if (status == SocketStatus.DISCONNECT && processor == null) { // Nothing to do. Endpoint requested a close and there is no // longer a processor associated with this socket. @@ -775,9 +775,9 @@ public abstract class AbstractProtocol<S protected abstract P createProcessor(); protected abstract void initSsl(SocketWrapperBase<S> socket, - Processor<S> processor); + Processor processor); protected abstract void longPoll(SocketWrapperBase<S> socket, - Processor<S> processor); + Processor processor); /** * Expected to be used by the handler once the processor is no longer @@ -791,12 +791,12 @@ public abstract class AbstractProtocol<S * reading */ protected abstract void release(SocketWrapperBase<S> socket, - Processor<S> processor, boolean addToPoller); - protected abstract Processor<S> createUpgradeProcessor( - SocketWrapperBase<S> socket, ByteBuffer leftoverInput, + Processor processor, boolean addToPoller); + protected abstract Processor createUpgradeProcessor( + SocketWrapperBase<?> socket, ByteBuffer leftoverInput, HttpUpgradeHandler httpUpgradeHandler) throws IOException; - protected void register(AbstractProcessor<S> processor) { + protected void register(AbstractProcessor processor) { if (getProtocol().getDomain() != null) { synchronized (this) { try { @@ -823,7 +823,7 @@ public abstract class AbstractProtocol<S } } - protected void unregister(Processor<S> processor) { + protected void unregister(Processor processor) { if (getProtocol().getDomain() != null) { synchronized (this) { try { @@ -849,8 +849,8 @@ public abstract class AbstractProtocol<S } } - protected static class RecycledProcessors<P extends Processor<S>, S> - extends SynchronizedStack<Processor<S>> { + protected static class RecycledProcessors<P extends Processor, S> + extends SynchronizedStack<Processor> { private final transient AbstractConnectionHandler<S,P> handler; protected final AtomicInteger size = new AtomicInteger(0); @@ -861,7 +861,7 @@ public abstract class AbstractProtocol<S @SuppressWarnings("sync-override") // Size may exceed cache size a bit @Override - public boolean push(Processor<S> processor) { + public boolean push(Processor processor) { int cacheSize = handler.getProtocol().getProcessorCache(); boolean offer = cacheSize == -1 ? true : size.get() < cacheSize; //avoid over growing our cache or add after we have stopped @@ -878,8 +878,8 @@ public abstract class AbstractProtocol<S @SuppressWarnings("sync-override") // OK if size is too big briefly @Override - public Processor<S> pop() { - Processor<S> result = super.pop(); + public Processor pop() { + Processor result = super.pop(); if (result != null) { size.decrementAndGet(); } @@ -888,7 +888,7 @@ public abstract class AbstractProtocol<S @Override public synchronized void clear() { - Processor<S> next = pop(); + Processor next = pop(); while (next != null) { handler.unregister(next); next = pop(); Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] (original) +++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] Fri Jan 30 10:24:10 2015 @@ -157,10 +157,10 @@ public class AsyncStateMachine { private volatile AsyncState state = AsyncState.DISPATCHED; // Need this to fire listener on complete private AsyncContextCallback asyncCtxt = null; - private final Processor<?> processor; + private final Processor processor; - public AsyncStateMachine(Processor<?> processor) { + public AsyncStateMachine(Processor processor) { this.processor = processor; } Modified: tomcat/trunk/java/org/apache/coyote/Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Processor.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/Processor.java Fri Jan 30 10:24:10 2015 @@ -31,10 +31,10 @@ import org.apache.tomcat.util.net.Socket /** * Common interface for processors of all protocols. */ -public interface Processor<S> { +public interface Processor { Executor getExecutor(); - SocketState process(SocketWrapperBase<S> socketWrapper) throws IOException; + SocketState process(SocketWrapperBase<?> socketWrapper) throws IOException; SocketState asyncDispatch(SocketStatus status); SocketState asyncPostProcess(); Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java Fri Jan 30 10:24:10 2015 @@ -103,7 +103,7 @@ public abstract class AbstractAjpProtoco } } - protected void configureProcessor(AjpProcessor<S> processor) { + protected void configureProcessor(AjpProcessor processor) { processor.setAdapter(getAdapter()); processor.setTomcatAuthentication(getTomcatAuthentication()); processor.setRequiredSecret(requiredSecret); @@ -112,7 +112,7 @@ public abstract class AbstractAjpProtoco } protected abstract static class AbstractAjpConnectionHandler<S> - extends AbstractConnectionHandler<S,AjpProcessor<S>> { + extends AbstractConnectionHandler<S,AjpProcessor> { private final AbstractAjpProtocol<S> proto; @@ -127,28 +127,26 @@ public abstract class AbstractAjpProtoco @Override - protected AjpProcessor<S> createProcessor() { - AjpProcessor<S> processor = - new AjpProcessor<>(proto.getPacketSize(), proto.getEndpoint()); + protected AjpProcessor createProcessor() { + AjpProcessor processor = new AjpProcessor(proto.getPacketSize(), proto.getEndpoint()); proto.configureProcessor(processor); register(processor); return processor; } @Override - protected void initSsl(SocketWrapperBase<S> socket, Processor<S> processor) { + protected void initSsl(SocketWrapperBase<S> socket, Processor processor) { // NOOP for AJP } @Override - protected void longPoll(SocketWrapperBase<S> socket, - Processor<S> processor) { + protected void longPoll(SocketWrapperBase<S> socket, Processor processor) { // Same requirements for all AJP connectors socket.setAsync(true); } @Override - protected AjpProcessor<S> createUpgradeProcessor(SocketWrapperBase<S> socket, + protected AjpProcessor createUpgradeProcessor(SocketWrapperBase<?> socket, ByteBuffer leftoverInput, HttpUpgradeHandler httpUpgradeHandler) { // TODO should fail - throw IOE return null; Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java Fri Jan 30 10:24:10 2015 @@ -86,7 +86,7 @@ public class AjpAprProtocol extends Abst @Override public void release(SocketWrapperBase<Long> socket, - Processor<Long> processor, boolean addToPoller) { + Processor processor, boolean addToPoller) { processor.recycle(); recycledProcessors.push(processor); if (addToPoller) { Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNio2Protocol.java Fri Jan 30 10:24:10 2015 @@ -84,8 +84,7 @@ public class AjpNio2Protocol extends Abs */ @Override public void release(SocketWrapperBase<Nio2Channel> socket) { - Processor<Nio2Channel> processor = - connections.remove(socket.getSocket()); + Processor processor = connections.remove(socket.getSocket()); if (processor != null) { processor.recycle(); recycledProcessors.push(processor); @@ -94,7 +93,7 @@ public class AjpNio2Protocol extends Abs @Override public void release(SocketWrapperBase<Nio2Channel> socket, - Processor<Nio2Channel> processor, boolean addToPoller) { + Processor processor, boolean addToPoller) { if (getLog().isDebugEnabled()) { log.debug("Socket: [" + socket + "], Processor: [" + processor + "], addToPoller: [" + addToPoller + "]"); Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpNioProtocol.java Fri Jan 30 10:24:10 2015 @@ -89,12 +89,12 @@ public class AjpNioProtocol extends Abst if (log.isDebugEnabled()) log.debug(sm.getString("ajpnioprotocol.releaseStart", socket)); boolean released = false; - Iterator<java.util.Map.Entry<NioChannel, Processor<NioChannel>>> it = connections.entrySet().iterator(); + Iterator<java.util.Map.Entry<NioChannel, Processor>> it = connections.entrySet().iterator(); while (it.hasNext()) { - java.util.Map.Entry<NioChannel, Processor<NioChannel>> entry = it.next(); + java.util.Map.Entry<NioChannel, Processor> entry = it.next(); if (entry.getKey().getIOChannel()==socket) { it.remove(); - Processor<NioChannel> result = entry.getValue(); + Processor result = entry.getValue(); result.recycle(); unregister(result); released = true; @@ -113,8 +113,7 @@ public class AjpNioProtocol extends Abst */ @Override public void release(SocketWrapperBase<NioChannel> socket) { - Processor<NioChannel> processor = - connections.remove(socket.getSocket()); + Processor processor = connections.remove(socket.getSocket()); if (processor != null) { processor.recycle(); recycledProcessors.push(processor); @@ -124,7 +123,7 @@ public class AjpNioProtocol extends Abst @Override public void release(SocketWrapperBase<NioChannel> socket, - Processor<NioChannel> processor, boolean addToPoller) { + Processor processor, boolean addToPoller) { processor.recycle(); recycledProcessors.push(processor); if (addToPoller) { 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Jan 30 10:24:10 2015 @@ -56,11 +56,8 @@ import org.apache.tomcat.util.res.String /** * AJP Processor implementation. - * - * @param <S> The socket type of the IO implementation used by this processor - * instance. */ -public class AjpProcessor<S> extends AbstractProcessor<S> { +public class AjpProcessor extends AbstractProcessor { private static final Log log = LogFactory.getLog(AjpProcessor.class); /** @@ -250,7 +247,7 @@ public class AjpProcessor<S> extends Abs // ------------------------------------------------------------ Constructor - public AjpProcessor(int packetSize, AbstractEndpoint<S> endpoint) { + public AjpProcessor(int packetSize, AbstractEndpoint<?> endpoint) { super(endpoint); @@ -498,13 +495,13 @@ public class AjpProcessor<S> extends Abs case ASYNC_COMPLETE: { socketWrapper.clearDispatches(); if (asyncStateMachine.asyncComplete()) { - endpoint.processSocket(socketWrapper, SocketStatus.OPEN_READ, true); + socketWrapper.processSocket(SocketStatus.OPEN_READ, true); } break; } case ASYNC_DISPATCH: { if (asyncStateMachine.asyncDispatch()) { - endpoint.processSocket(socketWrapper, SocketStatus.OPEN_READ, true); + socketWrapper.processSocket(SocketStatus.OPEN_READ, true); } break; } @@ -594,7 +591,7 @@ public class AjpProcessor<S> extends Abs break; } case DISPATCH_EXECUTE: { - getEndpoint().executeNonBlockingDispatches(socketWrapper); + socketWrapper.executeNonBlockingDispatches(); break; } case CLOSE_NOW: { @@ -690,7 +687,7 @@ public class AjpProcessor<S> extends Abs * @throws IOException error during an I/O operation */ @Override - public SocketState process(SocketWrapperBase<S> socket) throws IOException { + public SocketState process(SocketWrapperBase<?> socket) throws IOException { RequestInfo rp = request.getRequestProcessor(); rp.setStage(org.apache.coyote.Constants.STAGE_PARSE); Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Fri Jan 30 10:24:10 2015 @@ -214,7 +214,7 @@ public abstract class AbstractHttp11Prot // ------------------------------------------------------------- Common code // Common configuration required for all new HTTP11 processors - protected void configureProcessor(Http11Processor<S> processor) { + protected void configureProcessor(Http11Processor processor) { processor.setAdapter(getAdapter()); processor.setMaxKeepAliveRequests(getMaxKeepAliveRequests()); processor.setConnectionUploadTimeout(getConnectionUploadTimeout()); 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Fri Jan 30 10:24:10 2015 @@ -212,7 +212,7 @@ public class Http11AprProtocol extends A // -------------------- Connection handler -------------------- protected static class Http11ConnectionHandler - extends AbstractConnectionHandler<Long,Http11Processor<Long>> { + extends AbstractConnectionHandler<Long,Http11Processor> { protected Http11AprProtocol proto; @@ -232,7 +232,7 @@ public class Http11AprProtocol extends A @Override public void release(SocketWrapperBase<Long> socket, - Processor<Long> processor, boolean addToPoller) { + Processor processor, boolean addToPoller) { processor.recycle(); recycledProcessors.push(processor); if (addToPoller && proto.getEndpoint().isRunning()) { @@ -246,7 +246,7 @@ public class Http11AprProtocol extends A public SocketState process(SocketWrapperBase<Long> socket, SocketStatus status) { if (proto.npnHandler != null) { - Processor<Long> processor = null; + Processor processor = null; if (status == SocketStatus.OPEN_READ) { processor = connections.get(socket.getSocket()); @@ -265,7 +265,7 @@ public class Http11AprProtocol extends A } @Override - protected void initSsl(SocketWrapperBase<Long> socket, Processor<Long> processor) { + protected void initSsl(SocketWrapperBase<Long> socket, Processor processor) { if (proto.isSSLEnabled()) { AprSSLSupport sslSupport = new AprSSLSupport(socket, processor.getClientCertProvider()); @@ -276,8 +276,7 @@ public class Http11AprProtocol extends A } @Override - protected void longPoll(SocketWrapperBase<Long> socket, - Processor<Long> processor) { + protected void longPoll(SocketWrapperBase<Long> socket, Processor processor) { if (processor.isAsync()) { // Async @@ -295,8 +294,8 @@ public class Http11AprProtocol extends A } @Override - protected Http11Processor<Long> createProcessor() { - Http11Processor<Long> processor = new Http11Processor<>( + protected Http11Processor createProcessor() { + Http11Processor processor = new Http11Processor( proto.getMaxHttpHeaderSize(), proto.getEndpoint(), proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), proto.getMaxSwallowSize()); @@ -308,11 +307,11 @@ public class Http11AprProtocol extends A } @Override - protected Processor<Long> createUpgradeProcessor( - SocketWrapperBase<Long> socket, ByteBuffer leftoverInput, + protected Processor createUpgradeProcessor( + SocketWrapperBase<?> socket, ByteBuffer leftoverInput, HttpUpgradeHandler httpUpgradeHandler) throws IOException { - return new UpgradeProcessor<>(socket, leftoverInput, httpUpgradeHandler); + return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler); } } } 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Fri Jan 30 10:24:10 2015 @@ -100,7 +100,7 @@ public class Http11Nio2Protocol extends // -------------------- Connection handler -------------------- protected static class Http11ConnectionHandler - extends AbstractConnectionHandler<Nio2Channel,Http11Processor<Nio2Channel>> + extends AbstractConnectionHandler<Nio2Channel,Http11Processor> implements Handler { protected Http11Nio2Protocol proto; @@ -131,8 +131,7 @@ public class Http11Nio2Protocol extends */ @Override public void release(SocketWrapperBase<Nio2Channel> socket) { - Processor<Nio2Channel> processor = - connections.remove(socket.getSocket()); + Processor processor = connections.remove(socket.getSocket()); if (processor != null) { processor.recycle(); recycledProcessors.push(processor); @@ -154,7 +153,7 @@ public class Http11Nio2Protocol extends @Override public void release(SocketWrapperBase<Nio2Channel> socket, - Processor<Nio2Channel> processor, boolean addToPoller) { + Processor processor, boolean addToPoller) { processor.recycle(); recycledProcessors.push(processor); if (socket.isAsync()) { @@ -167,8 +166,7 @@ public class Http11Nio2Protocol extends @Override - protected void initSsl(SocketWrapperBase<Nio2Channel> socket, - Processor<Nio2Channel> processor) { + protected void initSsl(SocketWrapperBase<Nio2Channel> socket, Processor processor) { if (proto.isSSLEnabled() && (proto.sslImplementation != null) && (socket.getSocket() instanceof SecureNio2Channel)) { @@ -183,8 +181,7 @@ public class Http11Nio2Protocol extends } @Override - protected void longPoll(SocketWrapperBase<Nio2Channel> socket, - Processor<Nio2Channel> processor) { + protected void longPoll(SocketWrapperBase<Nio2Channel> socket, Processor processor) { if (processor.isAsync()) { socket.setAsync(true); ((Nio2Endpoint) proto.getEndpoint()).addTimeout(socket); @@ -209,8 +206,8 @@ public class Http11Nio2Protocol extends } @Override - public Http11Processor<Nio2Channel> createProcessor() { - Http11Processor<Nio2Channel> processor = new Http11Processor<>( + public Http11Processor createProcessor() { + Http11Processor processor = new Http11Processor( proto.getMaxHttpHeaderSize(), proto.getEndpoint(), proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), proto.getMaxSwallowSize()); @@ -220,11 +217,11 @@ public class Http11Nio2Protocol extends } @Override - protected Processor<Nio2Channel> createUpgradeProcessor( - SocketWrapperBase<Nio2Channel> socket, ByteBuffer leftoverInput, + protected Processor createUpgradeProcessor( + SocketWrapperBase<?> socket, ByteBuffer leftoverInput, HttpUpgradeHandler httpUpgradeHandler) throws IOException { - return new UpgradeProcessor<>(socket, leftoverInput, httpUpgradeHandler); + return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler); } @Override 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Fri Jan 30 10:24:10 2015 @@ -127,7 +127,7 @@ public class Http11NioProtocol extends A // -------------------- Connection handler -------------------- protected static class Http11ConnectionHandler - extends AbstractConnectionHandler<NioChannel,Http11Processor<NioChannel>> + extends AbstractConnectionHandler<NioChannel,Http11Processor> implements Handler { protected Http11NioProtocol proto; @@ -161,12 +161,12 @@ public class Http11NioProtocol extends A if (log.isDebugEnabled()) log.debug("Iterating through our connections to release a socket channel:"+socket); boolean released = false; - Iterator<java.util.Map.Entry<NioChannel, Processor<NioChannel>>> it = connections.entrySet().iterator(); + Iterator<java.util.Map.Entry<NioChannel, Processor>> it = connections.entrySet().iterator(); while (it.hasNext()) { - java.util.Map.Entry<NioChannel, Processor<NioChannel>> entry = it.next(); + java.util.Map.Entry<NioChannel, Processor> entry = it.next(); if (entry.getKey().getIOChannel()==socket) { it.remove(); - Processor<NioChannel> result = entry.getValue(); + Processor result = entry.getValue(); result.recycle(); unregister(result); released = true; @@ -183,8 +183,7 @@ public class Http11NioProtocol extends A */ @Override public void release(SocketWrapperBase<NioChannel> socket) { - Processor<NioChannel> processor = - connections.remove(socket.getSocket()); + Processor processor = connections.remove(socket.getSocket()); if (processor != null) { processor.recycle(); recycledProcessors.push(processor); @@ -206,7 +205,7 @@ public class Http11NioProtocol extends A @Override public void release(SocketWrapperBase<NioChannel> socket, - Processor<NioChannel> processor, boolean addToPoller) { + Processor processor, boolean addToPoller) { processor.recycle(); recycledProcessors.push(processor); if (addToPoller) { @@ -216,8 +215,7 @@ public class Http11NioProtocol extends A @Override - protected void initSsl(SocketWrapperBase<NioChannel> socket, - Processor<NioChannel> processor) { + protected void initSsl(SocketWrapperBase<NioChannel> socket, Processor processor) { if (proto.isSSLEnabled() && (proto.sslImplementation != null) && (socket.getSocket() instanceof SecureNioChannel)) { @@ -232,8 +230,7 @@ public class Http11NioProtocol extends A } @Override - protected void longPoll(SocketWrapperBase<NioChannel> socket, - Processor<NioChannel> processor) { + protected void longPoll(SocketWrapperBase<NioChannel> socket, Processor processor) { if (processor.isAsync()) { socket.setAsync(true); @@ -247,8 +244,8 @@ public class Http11NioProtocol extends A } @Override - public Http11Processor<NioChannel> createProcessor() { - Http11Processor<NioChannel> processor = new Http11Processor<>( + public Http11Processor createProcessor() { + Http11Processor processor = new Http11Processor( proto.getMaxHttpHeaderSize(), proto.getEndpoint(), proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), proto.getMaxSwallowSize()); @@ -258,11 +255,11 @@ public class Http11NioProtocol extends A } @Override - protected Processor<NioChannel> createUpgradeProcessor( - SocketWrapperBase<NioChannel> socket, ByteBuffer leftoverInput, + protected Processor createUpgradeProcessor( + SocketWrapperBase<?> socket, ByteBuffer leftoverInput, HttpUpgradeHandler httpUpgradeHandler) throws IOException { - return new UpgradeProcessor<>(socket, leftoverInput, httpUpgradeHandler); + return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler); } @Override 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Jan 30 10:24:10 2015 @@ -61,9 +61,9 @@ import org.apache.tomcat.util.net.Socket import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; -public class Http11Processor<S> extends AbstractProcessor<S> { +public class Http11Processor extends AbstractProcessor { - private static final Log log = LogFactory.getLog(Http11AprProtocol.class); + private static final Log log = LogFactory.getLog(Http11Processor.class); /** * The string manager for this package. @@ -238,7 +238,7 @@ public class Http11Processor<S> extends protected SSLSupport sslSupport; - public Http11Processor(int maxHttpHeaderSize, AbstractEndpoint<S> endpoint, + public Http11Processor(int maxHttpHeaderSize, AbstractEndpoint<?> endpoint, int maxTrailerSize, int maxExtensionSize, int maxSwallowSize) { super(endpoint); @@ -841,7 +841,7 @@ public class Http11Processor<S> extends case ASYNC_COMPLETE: { socketWrapper.clearDispatches(); if (asyncStateMachine.asyncComplete()) { - endpoint.processSocket(this.socketWrapper, SocketStatus.OPEN_READ, true); + socketWrapper.processSocket(SocketStatus.OPEN_READ, true); } break; } @@ -855,7 +855,7 @@ public class Http11Processor<S> extends } case ASYNC_DISPATCH: { if (asyncStateMachine.asyncDispatch()) { - endpoint.processSocket(this.socketWrapper, SocketStatus.OPEN_READ, true); + socketWrapper.processSocket(SocketStatus.OPEN_READ, true); } break; } @@ -892,9 +892,9 @@ public class Http11Processor<S> extends break; } case DISPATCH_EXECUTE: { - SocketWrapperBase<S> wrapper = socketWrapper; + SocketWrapperBase<?> wrapper = socketWrapper; if (wrapper != null) { - getEndpoint().executeNonBlockingDispatches(wrapper); + wrapper.executeNonBlockingDispatches(); } break; } @@ -1017,7 +1017,7 @@ public class Http11Processor<S> extends * @throws IOException error during an I/O operation */ @Override - public SocketState process(SocketWrapperBase<S> socketWrapper) + public SocketState process(SocketWrapperBase<?> socketWrapper) throws IOException { RequestInfo rp = request.getRequestProcessor(); rp.setStage(org.apache.coyote.Constants.STAGE_PARSE); @@ -1869,7 +1869,7 @@ public class Http11Processor<S> extends * * @return true if the keep-alive loop should be broken */ - private boolean breakKeepAliveLoop(SocketWrapperBase<S> socketWrapper) { + private boolean breakKeepAliveLoop(SocketWrapperBase<?> socketWrapper) { openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java Fri Jan 30 10:24:10 2015 @@ -35,7 +35,7 @@ import org.apache.tomcat.util.net.Socket import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; -public class UpgradeProcessor<S> implements Processor<S>, WebConnection { +public class UpgradeProcessor implements Processor, WebConnection { private static final int INFINITE_TIMEOUT = -1; @@ -140,7 +140,7 @@ public class UpgradeProcessor<S> impleme @Override - public final SocketState process(SocketWrapperBase<S> socketWrapper) throws IOException { + public final SocketState process(SocketWrapperBase<?> socketWrapper) throws IOException { return null; } Modified: tomcat/trunk/java/org/apache/coyote/spdy/SpdyAprNpnHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/spdy/SpdyAprNpnHandler.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/spdy/SpdyAprNpnHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/spdy/SpdyAprNpnHandler.java Fri Jan 30 10:24:10 2015 @@ -82,7 +82,7 @@ public class SpdyAprNpnHandler implement @Override public void onStream(SpdyConnection con, SpdyStream ch) throws IOException { - SpdyProcessor<Long> sp = new SpdyProcessor<>(con, ep); + SpdyProcessor sp = new SpdyProcessor(con, ep); sp.setAdapter(adapter); sp.onSynStream(ch); } 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Fri Jan 30 10:24:10 2015 @@ -57,7 +57,7 @@ import org.apache.tomcat.util.net.Socket * * Based on the AJP processor. */ -public class SpdyProcessor<S> extends AbstractProcessor<S> implements Runnable { +public class SpdyProcessor extends AbstractProcessor implements Runnable { private static final Log log = LogFactory.getLog(SpdyProcessor.class); @@ -82,7 +82,7 @@ public class SpdyProcessor<S> extends Ab private boolean outCommit = false; - public SpdyProcessor(SpdyConnection spdy, AbstractEndpoint<S> endpoint) { + public SpdyProcessor(SpdyConnection spdy, AbstractEndpoint<?> endpoint) { super(endpoint); this.spdy = spdy; @@ -505,7 +505,7 @@ public class SpdyProcessor<S> extends Ab } @Override - public SocketState process(SocketWrapperBase<S> socket) + public SocketState process(SocketWrapperBase<?> socket) throws IOException { throw new IOException("Unimplemented"); } Modified: tomcat/trunk/java/org/apache/coyote/spdy/SpdyProxyProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/spdy/SpdyProxyProtocol.java?rev=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/spdy/SpdyProxyProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/spdy/SpdyProxyProtocol.java Fri Jan 30 10:24:10 2015 @@ -93,7 +93,7 @@ public class SpdyProxyProtocol extends A spdyContext.setHandler(new SpdyHandler() { @Override public void onStream(SpdyConnection con, SpdyStream ch) throws IOException { - SpdyProcessor<NioChannel> sp = new SpdyProcessor<>(con, getEndpoint()); + SpdyProcessor sp = new SpdyProcessor(con, getEndpoint()); sp.setAdapter(getAdapter()); sp.onSynStream(ch); } 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=1655976&r1=1655975&r2=1655976&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Jan 30 10:24:10 2015 @@ -626,6 +626,29 @@ public abstract class SocketWrapperBase< */ public abstract void doClientAuth(SSLSupport sslSupport); + + /* + * TODO + * Temporary method to aid in some refactoring. + * It is currently expected that this method will be removed in a subsequent + * refactoring. + */ + public void processSocket(SocketStatus socketStatus, boolean dispatch) { + endpoint.processSocket(this, socketStatus, dispatch); + } + + + /* + * TODO + * Temporary method to aid in some refactoring. + * It is currently expected that this method will be removed in a subsequent + * refactoring. + */ + public void executeNonBlockingDispatches() { + endpoint.executeNonBlockingDispatches(this); + } + + // --------------------------------------------------------- Utility methods protected static int transfer(byte[] from, int offset, int length, ByteBuffer to) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org