Author: markt
Date: Sun Nov 8 16:53:16 2015
New Revision: 1713254
URL: http://svn.apache.org/viewvc?rev=1713254&view=rev
Log:
Move Processor creation from the ConnectionHandler to the Protocol
Modified:
tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1713254&r1=1713253&r2=1713254&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Sun Nov 8
16:53:16 2015
@@ -419,6 +419,15 @@ public abstract class AbstractProtocol<S
protected abstract UpgradeProtocol getNegotiatedProtocol(String name);
+ /**
+ * Create and configure a new Processor instance for the current protocol
+ * implementation.
+ *
+ * @return A fully configured Processor instance that is ready to use
+ */
+ protected abstract Processor createProcessor();
+
+
// ----------------------------------------------------- JMX related
methods
protected String domain;
@@ -722,7 +731,8 @@ public abstract class AbstractProtocol<S
processor = recycledProcessors.pop();
}
if (processor == null) {
- processor = createProcessor();
+ processor = getProtocol().createProcessor();
+ register(processor);
}
processor.setSslSupport(
@@ -867,8 +877,6 @@ public abstract class AbstractProtocol<S
return SocketState.CLOSED;
}
- protected abstract P createProcessor();
-
protected void longPoll(SocketWrapperBase<?> socket, Processor
processor) {
if (!processor.isAsync()) {
@@ -930,7 +938,7 @@ public abstract class AbstractProtocol<S
UpgradeToken upgradeToken) throws IOException;
- protected void register(AbstractProcessor processor) {
+ protected void register(Processor processor) {
if (getProtocol().getDomain() != null) {
synchronized (this) {
try {
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=1713254&r1=1713253&r2=1713254&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java Sun Nov 8
16:53:16 2015
@@ -19,6 +19,7 @@ package org.apache.coyote.ajp;
import java.nio.ByteBuffer;
import org.apache.coyote.AbstractProtocol;
+import org.apache.coyote.Processor;
import org.apache.coyote.UpgradeProtocol;
import org.apache.coyote.UpgradeToken;
import org.apache.tomcat.util.net.AbstractEndpoint;
@@ -155,15 +156,19 @@ public abstract class AbstractAjpProtoco
}
- protected void configureProcessor(AjpProcessor processor) {
+ @Override
+ protected Processor createProcessor() {
+ AjpProcessor processor = new AjpProcessor(getPacketSize(),
getEndpoint());
processor.setAdapter(getAdapter());
processor.setTomcatAuthentication(getTomcatAuthentication());
processor.setTomcatAuthorization(getTomcatAuthorization());
processor.setRequiredSecret(requiredSecret);
processor.setKeepAliveTimeout(getKeepAliveTimeout());
processor.setClientCertProvider(getClientCertProvider());
+ return processor;
}
+
protected static class AjpConnectionHandler<S>
extends AbstractConnectionHandler<S,AjpProcessor> {
@@ -179,15 +184,6 @@ public abstract class AbstractAjpProtoco
}
- @Override
- protected AjpProcessor createProcessor() {
- AjpProcessor processor = new AjpProcessor(proto.getPacketSize(),
proto.getEndpoint());
- proto.configureProcessor(processor);
- register(processor);
- return processor;
- }
-
-
@Override
protected AjpProcessor createUpgradeProcessor(SocketWrapperBase<?>
socket,
ByteBuffer leftoverInput, UpgradeToken upgradeToken) {
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=1713254&r1=1713253&r2=1713254&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Sun
Nov 8 16:53:16 2015
@@ -618,8 +618,11 @@ public abstract class AbstractHttp11Prot
// ------------------------------------------------------------- Common
code
- // Common configuration required for all new HTTP11 processors
- protected void configureProcessor(Http11Processor processor) {
+ @Override
+ protected Processor createProcessor() {
+ Http11Processor processor = new
Http11Processor(getMaxHttpHeaderSize(), getEndpoint(),
+ getMaxTrailerSize(), allowedTrailerHeaders,
getMaxExtensionSize(),
+ getMaxSwallowSize(), httpUpgradeProtocols);
processor.setAdapter(getAdapter());
processor.setMaxKeepAliveRequests(getMaxKeepAliveRequests());
processor.setConnectionUploadTimeout(getConnectionUploadTimeout());
@@ -631,6 +634,7 @@ public abstract class AbstractHttp11Prot
processor.setRestrictedUserAgents(getRestrictedUserAgents());
processor.setMaxSavePostSize(getMaxSavePostSize());
processor.setServer(getServer());
+ return processor;
}
@@ -651,18 +655,6 @@ public abstract class AbstractHttp11Prot
}
- @Override
- public Http11Processor createProcessor() {
- Http11Processor processor = new Http11Processor(
- proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
proto.getMaxTrailerSize(),
- proto.allowedTrailerHeaders, proto.getMaxExtensionSize(),
- proto.getMaxSwallowSize(), proto.httpUpgradeProtocols);
- proto.configureProcessor(processor);
- register(processor);
- return processor;
- }
-
-
@Override
protected Processor createUpgradeProcessor(
SocketWrapperBase<?> socket, ByteBuffer leftoverInput,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]