You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/30 15:22:56 UTC
svn commit: r1656021 - in /tomcat/trunk/java/org/apache/coyote/http11:
AbstractHttp11Protocol.java Http11AprProtocol.java Http11Nio2Protocol.java
Http11NioProtocol.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org