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 10:46:28 UTC

svn commit: r1655973 - /tomcat/trunk/java/org/apache/coyote/http11/

Author: markt
Date: Fri Jan 30 09:46:27 2015
New Revision: 1655973

URL: http://svn.apache.org/r1655973
Log:
No longer require per I/O implementation Processor implementations for HTTP

Added:
    tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
      - copied, changed from r1655972, tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
Removed:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
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=1655973&r1=1655972&r2=1655973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Fri Jan 30 09:46:27 2015
@@ -214,7 +214,7 @@ public abstract class AbstractHttp11Prot
     // ------------------------------------------------------------- Common code
 
     // Common configuration required for all new HTTP11 processors
-    protected void configureProcessor(AbstractHttp11Processor<S> processor) {
+    protected void configureProcessor(Http11Processor<S> 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=1655973&r1=1655972&r2=1655973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Fri Jan 30 09:46:27 2015
@@ -212,7 +212,7 @@ public class Http11AprProtocol extends A
     // --------------------  Connection handler --------------------
 
     protected static class Http11ConnectionHandler
-            extends AbstractConnectionHandler<Long,Http11AprProcessor> {
+            extends AbstractConnectionHandler<Long,Http11Processor<Long>> {
 
         protected Http11AprProtocol proto;
 
@@ -295,8 +295,8 @@ public class Http11AprProtocol extends A
         }
 
         @Override
-        protected Http11AprProcessor createProcessor() {
-            Http11AprProcessor processor = new Http11AprProcessor(
+        protected Http11Processor<Long> createProcessor() {
+            Http11Processor<Long> processor = new Http11Processor<>(
                     proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
                     proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
                     proto.getMaxSwallowSize());

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=1655973&r1=1655972&r2=1655973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Fri Jan 30 09:46:27 2015
@@ -100,7 +100,7 @@ public class Http11Nio2Protocol extends
     // --------------------  Connection handler --------------------
 
     protected static class Http11ConnectionHandler
-            extends AbstractConnectionHandler<Nio2Channel,Http11Nio2Processor>
+            extends AbstractConnectionHandler<Nio2Channel,Http11Processor<Nio2Channel>>
             implements Handler {
 
         protected Http11Nio2Protocol proto;
@@ -209,8 +209,8 @@ public class Http11Nio2Protocol extends
         }
 
         @Override
-        public Http11Nio2Processor createProcessor() {
-            Http11Nio2Processor processor = new Http11Nio2Processor(
+        public Http11Processor<Nio2Channel> createProcessor() {
+            Http11Processor<Nio2Channel> processor = new Http11Processor<>(
                     proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
                     proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
                     proto.getMaxSwallowSize());

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=1655973&r1=1655972&r2=1655973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Fri Jan 30 09:46:27 2015
@@ -127,7 +127,7 @@ public class Http11NioProtocol extends A
     // --------------------  Connection handler --------------------
 
     protected static class Http11ConnectionHandler
-            extends AbstractConnectionHandler<NioChannel,Http11NioProcessor>
+            extends AbstractConnectionHandler<NioChannel,Http11Processor<NioChannel>>
             implements Handler {
 
         protected Http11NioProtocol proto;
@@ -247,8 +247,8 @@ public class Http11NioProtocol extends A
         }
 
         @Override
-        public Http11NioProcessor createProcessor() {
-            Http11NioProcessor processor = new Http11NioProcessor(
+        public Http11Processor<NioChannel> createProcessor() {
+            Http11Processor<NioChannel> processor = new Http11Processor<>(
                     proto.getMaxHttpHeaderSize(), proto.getEndpoint(),
                     proto.getMaxTrailerSize(), proto.getMaxExtensionSize(),
                     proto.getMaxSwallowSize());

Copied: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (from r1655972, tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java)
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?p2=tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java&p1=tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java&r1=1655972&r2=1655973&rev=1655973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Jan 30 09:46:27 2015
@@ -42,6 +42,8 @@ import org.apache.coyote.http11.filters.
 import org.apache.coyote.http11.filters.SavedRequestInputFilter;
 import org.apache.coyote.http11.filters.VoidInputFilter;
 import org.apache.coyote.http11.filters.VoidOutputFilter;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.buf.Ascii;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -59,18 +61,18 @@ import org.apache.tomcat.util.net.Socket
 import org.apache.tomcat.util.net.SocketWrapperBase;
 import org.apache.tomcat.util.res.StringManager;
 
-public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
-
-    private final UserDataHelper userDataHelper;
+public class Http11Processor<S> extends AbstractProcessor<S> {
 
+    private static final Log log = LogFactory.getLog(Http11AprProtocol.class);
 
     /**
      * The string manager for this package.
      */
-    protected static final StringManager sm =
-        StringManager.getManager(Constants.Package);
+    private static final StringManager sm = StringManager.getManager(Http11AprProtocol.class);
 
 
+    private final UserDataHelper userDataHelper;
+
     /**
      * Input.
      */
@@ -236,11 +238,11 @@ public abstract class AbstractHttp11Proc
     protected SSLSupport sslSupport;
 
 
-    public AbstractHttp11Processor(int maxHttpHeaderSize, AbstractEndpoint<S> endpoint,
+    public Http11Processor(int maxHttpHeaderSize, AbstractEndpoint<S> endpoint,
             int maxTrailerSize, int maxExtensionSize, int maxSwallowSize) {
 
         super(endpoint);
-        userDataHelper = new UserDataHelper(getLog());
+        userDataHelper = new UserDataHelper(log);
 
         inputBuffer = new Http11InputBuffer(request, maxHttpHeaderSize);
         request.setInputBuffer(getInputBuffer());
@@ -689,8 +691,8 @@ public abstract class AbstractHttp11Proc
             // 501 - Unimplemented
             response.setStatus(501);
             setErrorState(ErrorState.CLOSE_CLEAN, null);
-            if (getLog().isDebugEnabled()) {
-                getLog().debug(sm.getString("http11processor.request.prepare") +
+            if (log.isDebugEnabled()) {
+                log.debug(sm.getString("http11processor.request.prepare") +
                           " Unsupported transfer encoding [" + encodingName + "]");
             }
         }
@@ -976,7 +978,7 @@ public abstract class AbstractHttp11Proc
                     request.setAttribute(SSLSupport.SESSION_MGR, sslSupport);
                 }
             } catch (Exception e) {
-                getLog().warn(sm.getString("http11processor.socket.ssl"), e);
+                log.warn(sm.getString("http11processor.socket.ssl"), e);
             }
             break;
         }
@@ -996,7 +998,7 @@ public abstract class AbstractHttp11Proc
                         request.setAttribute(SSLSupport.CERTIFICATE_KEY, sslO);
                     }
                 } catch (IOException ioe) {
-                    getLog().warn(sm.getString("http11processor.socket.ssl"), ioe);
+                    log.warn(sm.getString("http11processor.socket.ssl"), ioe);
                 }
             }
             break;
@@ -1004,8 +1006,6 @@ public abstract class AbstractHttp11Proc
         }
     }
 
-    abstract void actionInternal(ActionCode actionCode, Object param);
-
 
     /**
      * Process pipelined HTTP requests using the specified input and output
@@ -1065,9 +1065,8 @@ public abstract class AbstractHttp11Proc
                     }
                 }
             } catch (IOException e) {
-                if (getLog().isDebugEnabled()) {
-                    getLog().debug(
-                            sm.getString("http11processor.header.parse"), e);
+                if (log.isDebugEnabled()) {
+                    log.debug(sm.getString("http11processor.header.parse"), e);
                 }
                 setErrorState(ErrorState.CLOSE_NOW, e);
                 break;
@@ -1075,18 +1074,16 @@ public abstract class AbstractHttp11Proc
                 ExceptionUtils.handleThrowable(t);
                 UserDataHelper.Mode logMode = userDataHelper.getNextMode();
                 if (logMode != null) {
-                    String message = sm.getString(
-                            "http11processor.header.parse");
+                    String message = sm.getString("http11processor.header.parse");
                     switch (logMode) {
                         case INFO_THEN_DEBUG:
-                            message += sm.getString(
-                                    "http11processor.fallToDebug");
+                            message += sm.getString("http11processor.fallToDebug");
                             //$FALL-THROUGH$
                         case INFO:
-                            getLog().info(message);
+                            log.info(message);
                             break;
                         case DEBUG:
-                            getLog().debug(message);
+                            log.debug(message);
                     }
                 }
                 // 400 - Bad Request
@@ -1102,9 +1099,8 @@ public abstract class AbstractHttp11Proc
                     prepareRequest();
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
-                    if (getLog().isDebugEnabled()) {
-                        getLog().debug(sm.getString(
-                                "http11processor.request.prepare"), t);
+                    if (log.isDebugEnabled()) {
+                        log.debug(sm.getString("http11processor.request.prepare"), t);
                     }
                     // 500 - Internal Server Error
                     response.setStatus(500);
@@ -1151,8 +1147,7 @@ public abstract class AbstractHttp11Proc
                     }
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
-                    getLog().error(sm.getString(
-                            "http11processor.request.process"), t);
+                    log.error(sm.getString("http11processor.request.process"), t);
                     // 500 - Internal Server Error
                     response.setStatus(500);
                     setErrorState(ErrorState.CLOSE_CLEAN, t);
@@ -1316,8 +1311,8 @@ public abstract class AbstractHttp11Proc
             // Send 505; Unsupported HTTP version
             response.setStatus(505);
             setErrorState(ErrorState.CLOSE_CLEAN, null);
-            if (getLog().isDebugEnabled()) {
-                getLog().debug(sm.getString("http11processor.request.prepare")+
+            if (log.isDebugEnabled()) {
+                log.debug(sm.getString("http11processor.request.prepare")+
                           " Unsupported HTTP version \""+protocolMB+"\"");
             }
         }
@@ -1447,8 +1442,8 @@ public abstract class AbstractHttp11Proc
             // 400 - Bad request
             response.setStatus(400);
             setErrorState(ErrorState.CLOSE_CLEAN, null);
-            if (getLog().isDebugEnabled()) {
-                getLog().debug(sm.getString("http11processor.request.prepare")+
+            if (log.isDebugEnabled()) {
+                log.debug(sm.getString("http11processor.request.prepare")+
                           " host header missing");
             }
         }
@@ -1750,8 +1745,8 @@ public abstract class AbstractHttp11Proc
             } catch (IOException | IllegalStateException x) {
                 // IOE - Problem writing to socket
                 // ISE - Request/Response not in correct state for async write
-                if (getLog().isDebugEnabled()) {
-                    getLog().debug("Unable to write async data.",x);
+                if (log.isDebugEnabled()) {
+                    log.debug("Unable to write async data.",x);
                 }
                 status = SocketStatus.ASYNC_WRITE_ERROR;
                 request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, x);
@@ -1764,8 +1759,8 @@ public abstract class AbstractHttp11Proc
                 }
             } catch (IllegalStateException x) {
                 // ISE - Request/Response not in correct state for async read
-                if (getLog().isDebugEnabled()) {
-                    getLog().debug("Unable to read async data.",x);
+                if (log.isDebugEnabled()) {
+                    log.debug("Unable to read async data.",x);
                 }
                 status = SocketStatus.ASYNC_READ_ERROR;
                 request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, x);
@@ -1783,7 +1778,7 @@ public abstract class AbstractHttp11Proc
         } catch (Throwable t) {
             ExceptionUtils.handleThrowable(t);
             setErrorState(ErrorState.CLOSE_NOW, t);
-            getLog().error(sm.getString("http11processor.request.process"), t);
+            log.error(sm.getString("http11processor.request.process"), t);
         }
 
         rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
@@ -1829,6 +1824,12 @@ public abstract class AbstractHttp11Proc
     }
 
 
+    @Override
+    protected Log getLog() {
+        return log;
+    }
+
+
     public void endRequest() {
 
         // Finish the handling of the request
@@ -1844,7 +1845,7 @@ public abstract class AbstractHttp11Proc
                 // written in the Adapter.service method.
                 response.setStatus(500);
                 setErrorState(ErrorState.CLOSE_NOW, t);
-                getLog().error(sm.getString("http11processor.request.finish"), t);
+                log.error(sm.getString("http11processor.request.finish"), t);
             }
         }
         if (getErrorState().isIoAllowed()) {
@@ -1855,7 +1856,7 @@ public abstract class AbstractHttp11Proc
             } catch (Throwable t) {
                 ExceptionUtils.handleThrowable(t);
                 setErrorState(ErrorState.CLOSE_NOW, t);
-                getLog().error(sm.getString("http11processor.response.finish"), t);
+                log.error(sm.getString("http11processor.response.finish"), t);
             }
         }
     }
@@ -1882,8 +1883,8 @@ public abstract class AbstractHttp11Proc
                 return true;
             case ERROR:
                 // Write failed
-                if (getLog().isDebugEnabled()) {
-                    getLog().debug(sm.getString("http11processor.sendfile.error"));
+                if (log.isDebugEnabled()) {
+                    log.debug(sm.getString("http11processor.sendfile.error"));
                 }
                 setErrorState(ErrorState.CLOSE_NOW, null);
                 return true;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org