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