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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to