Author: markt Date: Fri Jan 30 14:22:56 2015 New Revision: 1656021 URL: http://svn.apache.org/r1656021 Log: Pull up common Http11ConnectionHandler methods.
Modified: 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 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=1656021&r1=1656020&r2=1656021&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Fri Jan 30 14:22:56 2015 @@ -16,9 +16,16 @@ */ package org.apache.coyote.http11; -import org.apache.coyote.AbstractProtocol; +import java.io.IOException; +import java.nio.ByteBuffer; + +import javax.servlet.http.HttpUpgradeHandler; +import org.apache.coyote.AbstractProtocol; +import org.apache.coyote.Processor; +import org.apache.coyote.http11.upgrade.UpgradeProcessor; import org.apache.tomcat.util.net.AbstractEndpoint; +import org.apache.tomcat.util.net.SocketWrapperBase; public abstract class AbstractHttp11Protocol<S> extends AbstractProtocol<S> { @@ -34,6 +41,17 @@ public abstract class AbstractHttp11Prot } + /** + * {@inheritDoc} + * <p> + * Over-ridden here to make the method visible to nested classes. + */ + @Override + protected AbstractEndpoint<S> getEndpoint() { + return super.getEndpoint(); + } + + // ------------------------------------------------ HTTP specific properties // ------------------------------------------ managed in the ProtocolHandler @@ -234,5 +252,38 @@ public abstract class AbstractHttp11Prot protected abstract static class AbstractHttp11ConnectionHandler<S> extends AbstractConnectionHandler<S,Http11Processor> { + private final AbstractHttp11Protocol<S> proto; + + + protected AbstractHttp11ConnectionHandler(AbstractHttp11Protocol<S> proto) { + this.proto = proto; + } + + + @Override + protected AbstractHttp11Protocol<S> getProtocol() { + return proto; + } + + + @Override + public Http11Processor createProcessor() { + Http11Processor processor = new Http11Processor( + proto.getMaxHttpHeaderSize(), proto.getEndpoint(), + proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), + proto.getMaxSwallowSize()); + proto.configureProcessor(processor); + register(processor); + return processor; + } + + + @Override + protected Processor createUpgradeProcessor( + SocketWrapperBase<?> socket, ByteBuffer leftoverInput, + HttpUpgradeHandler httpUpgradeHandler) + throws IOException { + return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler); + } } } 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=1656021&r1=1656020&r2=1656021&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Fri Jan 30 14:22:56 2015 @@ -16,14 +16,7 @@ */ package org.apache.coyote.http11; -import java.io.IOException; -import java.nio.ByteBuffer; - -import javax.servlet.http.HttpUpgradeHandler; - -import org.apache.coyote.AbstractProtocol; import org.apache.coyote.Processor; -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.AprEndpoint; @@ -214,15 +207,8 @@ public class Http11AprProtocol extends A protected static class Http11ConnectionHandler extends AbstractHttp11ConnectionHandler<Long> { - protected Http11AprProtocol proto; - Http11ConnectionHandler(Http11AprProtocol proto) { - this.proto = proto; - } - - @Override - protected AbstractProtocol<Long> getProtocol() { - return proto; + super(proto); } @Override @@ -235,17 +221,17 @@ public class Http11AprProtocol extends A Processor processor, boolean addToPoller) { processor.recycle(); recycledProcessors.push(processor); - if (addToPoller && proto.getEndpoint().isRunning()) { - ((AprEndpoint)proto.getEndpoint()).getPoller().add( + if (addToPoller && getProtocol().getEndpoint().isRunning()) { + ((AprEndpoint)getProtocol().getEndpoint()).getPoller().add( socket.getSocket().longValue(), - proto.getEndpoint().getKeepAliveTimeout(), true, false); + getProtocol().getEndpoint().getKeepAliveTimeout(), true, false); } } @Override public SocketState process(SocketWrapperBase<Long> socket, SocketStatus status) { - if (proto.npnHandler != null) { + if (getProtocol().npnHandler != null) { Processor processor = null; if (status == SocketStatus.OPEN_READ) { processor = connections.get(socket.getSocket()); @@ -253,7 +239,7 @@ public class Http11AprProtocol extends A } if (processor == null) { // if not null - handled by http11 - SocketState socketState = proto.npnHandler.process(socket, status); + SocketState socketState = getProtocol().npnHandler.process(socket, status); // handled by npn protocol. if (socketState == SocketState.CLOSED || socketState == SocketState.LONG) { @@ -266,7 +252,7 @@ public class Http11AprProtocol extends A @Override protected void initSsl(SocketWrapperBase<Long> socket, Processor processor) { - if (proto.isSSLEnabled()) { + if (getProtocol().isSSLEnabled()) { AprSSLSupport sslSupport = new AprSSLSupport(socket, processor.getClientCertProvider()); processor.setSslSupport(sslSupport); @@ -283,7 +269,7 @@ public class Http11AprProtocol extends A socket.setAsync(true); } else { // Upgraded - Poller p = ((AprEndpoint) proto.getEndpoint()).getPoller(); + Poller p = ((AprEndpoint) getProtocol().getEndpoint()).getPoller(); if (p == null) { // Connector has been stopped release(socket, processor, false); @@ -292,24 +278,5 @@ public class Http11AprProtocol extends A } } } - - @Override - protected Http11Processor createProcessor() { - Http11Processor processor = new Http11Processor( - proto.getMaxHttpHeaderSize(), proto.getEndpoint(), - proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), - proto.getMaxSwallowSize()); - proto.configureProcessor(processor); - register(processor); - return processor; - } - - @Override - protected Processor createUpgradeProcessor( - SocketWrapperBase<?> socket, ByteBuffer leftoverInput, - HttpUpgradeHandler httpUpgradeHandler) - throws IOException { - 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=1656021&r1=1656020&r2=1656021&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Fri Jan 30 14:22:56 2015 @@ -16,16 +16,11 @@ */ package org.apache.coyote.http11; -import java.io.IOException; -import java.nio.ByteBuffer; import java.nio.channels.ReadPendingException; import javax.net.ssl.SSLEngine; -import javax.servlet.http.HttpUpgradeHandler; -import org.apache.coyote.AbstractProtocol; import org.apache.coyote.Processor; -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.Nio2Channel; @@ -67,6 +62,7 @@ public class Http11Nio2Protocol extends } + // -------------------- Pool setup -------------------- public void setAcceptorThreadPriority(int threadPriority) { @@ -103,15 +99,8 @@ public class Http11Nio2Protocol extends extends AbstractHttp11ConnectionHandler<Nio2Channel> implements Handler { - protected Http11Nio2Protocol proto; - Http11ConnectionHandler(Http11Nio2Protocol proto) { - this.proto = proto; - } - - @Override - protected AbstractProtocol<Nio2Channel> getProtocol() { - return proto; + super(proto); } @Override @@ -122,7 +111,7 @@ public class Http11Nio2Protocol extends @Override public SSLImplementation getSslImplementation() { - return proto.sslImplementation; + return ((Http11Nio2Protocol) getProtocol()).sslImplementation; } /** @@ -141,8 +130,8 @@ public class Http11Nio2Protocol extends @Override public SocketState process(SocketWrapperBase<Nio2Channel> socket, SocketStatus status) { - if (proto.npnHandler != null) { - SocketState ss = proto.npnHandler.process(socket, status); + if (getProtocol().npnHandler != null) { + SocketState ss = getProtocol().npnHandler.process(socket, status); if (ss != SocketState.OPEN) { return ss; } @@ -157,7 +146,7 @@ public class Http11Nio2Protocol extends processor.recycle(); recycledProcessors.push(processor); if (socket.isAsync()) { - ((Nio2Endpoint) proto.getEndpoint()).removeTimeout(socket); + ((Nio2Endpoint) getProtocol().getEndpoint()).removeTimeout(socket); } if (addToPoller) { ((Nio2SocketWrapper) socket).awaitBytes(); @@ -167,13 +156,11 @@ public class Http11Nio2Protocol extends @Override protected void initSsl(SocketWrapperBase<Nio2Channel> socket, Processor processor) { - if (proto.isSSLEnabled() && - (proto.sslImplementation != null) + if (getProtocol().isSSLEnabled() && getSslImplementation() != null && (socket.getSocket() instanceof SecureNio2Channel)) { SecureNio2Channel ch = (SecureNio2Channel)socket.getSocket(); - processor.setSslSupport( - proto.sslImplementation.getSSLSupport( - ch.getSslEngine().getSession())); + processor.setSslSupport(getSslImplementation().getSSLSupport( + ch.getSslEngine().getSession())); } else { processor.setSslSupport(null); } @@ -184,7 +171,7 @@ public class Http11Nio2Protocol extends protected void longPoll(SocketWrapperBase<Nio2Channel> socket, Processor processor) { if (processor.isAsync()) { socket.setAsync(true); - ((Nio2Endpoint) proto.getEndpoint()).addTimeout(socket); + ((Nio2Endpoint) getProtocol().getEndpoint()).addTimeout(socket); } else if (processor.isUpgrade()) { if (((Nio2SocketWrapper) socket).isUpgradeInit()) { try { @@ -206,35 +193,16 @@ public class Http11Nio2Protocol extends } @Override - public Http11Processor createProcessor() { - Http11Processor processor = new Http11Processor( - proto.getMaxHttpHeaderSize(), proto.getEndpoint(), - proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), - proto.getMaxSwallowSize()); - proto.configureProcessor(processor); - register(processor); - return processor; - } - - @Override - protected Processor createUpgradeProcessor( - SocketWrapperBase<?> socket, ByteBuffer leftoverInput, - HttpUpgradeHandler httpUpgradeHandler) - throws IOException { - return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler); - } - - @Override public void onCreateSSLEngine(SSLEngine engine) { - if (proto.npnHandler != null) { - proto.npnHandler.onCreateEngine(engine); + if (getProtocol().npnHandler != null) { + getProtocol().npnHandler.onCreateEngine(engine); } } @Override public void closeAll() { for (Nio2Channel channel : connections.keySet()) { - ((Nio2Endpoint) proto.getEndpoint()).closeSocket(channel.getSocket()); + ((Nio2Endpoint) getProtocol().getEndpoint()).closeSocket(channel.getSocket()); } } } 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=1656021&r1=1656020&r2=1656021&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Fri Jan 30 14:22:56 2015 @@ -16,17 +16,12 @@ */ package org.apache.coyote.http11; -import java.io.IOException; -import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; import java.util.Iterator; import javax.net.ssl.SSLEngine; -import javax.servlet.http.HttpUpgradeHandler; -import org.apache.coyote.AbstractProtocol; import org.apache.coyote.Processor; -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.NioChannel; @@ -130,15 +125,8 @@ public class Http11NioProtocol extends A extends AbstractHttp11ConnectionHandler<NioChannel> implements Handler { - protected Http11NioProtocol proto; - Http11ConnectionHandler(Http11NioProtocol proto) { - this.proto = proto; - } - - @Override - protected AbstractProtocol<NioChannel> getProtocol() { - return proto; + super(proto); } @Override @@ -149,7 +137,7 @@ public class Http11NioProtocol extends A @Override public SSLImplementation getSslImplementation() { - return proto.sslImplementation; + return ((Http11NioProtocol) getProtocol()).sslImplementation; } /** @@ -193,8 +181,8 @@ public class Http11NioProtocol extends A @Override public SocketState process(SocketWrapperBase<NioChannel> socket, SocketStatus status) { - if (proto.npnHandler != null) { - SocketState ss = proto.npnHandler.process(socket, status); + if (getProtocol().npnHandler != null) { + SocketState ss = getProtocol().npnHandler.process(socket, status); if (ss != SocketState.OPEN) { return ss; } @@ -216,12 +204,12 @@ public class Http11NioProtocol extends A @Override protected void initSsl(SocketWrapperBase<NioChannel> socket, Processor processor) { - if (proto.isSSLEnabled() && - (proto.sslImplementation != null) + if (getProtocol().isSSLEnabled() && + (getSslImplementation() != null) && (socket.getSocket() instanceof SecureNioChannel)) { SecureNioChannel ch = (SecureNioChannel)socket.getSocket(); processor.setSslSupport( - proto.sslImplementation.getSSLSupport( + getSslImplementation().getSSLSupport( ch.getSslEngine().getSession())); } else { processor.setSslSupport(null); @@ -244,28 +232,9 @@ public class Http11NioProtocol extends A } @Override - public Http11Processor createProcessor() { - Http11Processor processor = new Http11Processor( - proto.getMaxHttpHeaderSize(), proto.getEndpoint(), - proto.getMaxTrailerSize(), proto.getMaxExtensionSize(), - proto.getMaxSwallowSize()); - proto.configureProcessor(processor); - register(processor); - return processor; - } - - @Override - protected Processor createUpgradeProcessor( - SocketWrapperBase<?> socket, ByteBuffer leftoverInput, - HttpUpgradeHandler httpUpgradeHandler) - throws IOException { - return new UpgradeProcessor(socket, leftoverInput, httpUpgradeHandler); - } - - @Override public void onCreateSSLEngine(SSLEngine engine) { - if (proto.npnHandler != null) { - proto.npnHandler.onCreateEngine(engine); + if (getProtocol().npnHandler != null) { + getProtocol().npnHandler.onCreateEngine(engine); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org