Author: markt Date: Wed Dec 14 11:04:03 2016 New Revision: 1774168 URL: http://svn.apache.org/viewvc?rev=1774168&view=rev Log: Refactoring to simplify code
Provide Processor with access to the associated Protocol Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1774168&r1=1774167&r2=1774168&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Dec 14 11:04:03 2016 @@ -59,8 +59,8 @@ public abstract class AbstractProcessor private ErrorState errorState = ErrorState.NONE; - public AbstractProcessor(AbstractEndpoint<?,?> endpoint) { - this(endpoint, new Request(), new Response()); + public AbstractProcessor(AbstractProtocol<?> protocol) { + this(protocol.getEndpoint(), new Request(), new Response()); } 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=1774168&r1=1774167&r2=1774168&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java Wed Dec 14 11:04:03 2016 @@ -184,7 +184,7 @@ public abstract class AbstractAjpProtoco @Override protected Processor createProcessor() { - AjpProcessor processor = new AjpProcessor(getPacketSize(), getEndpoint()); + AjpProcessor processor = new AjpProcessor(this); processor.setAdapter(getAdapter()); processor.setAjpFlush(getAjpFlush()); processor.setTomcatAuthentication(getTomcatAuthentication()); Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1774168&r1=1774167&r2=1774168&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Dec 14 11:04:03 2016 @@ -41,7 +41,6 @@ import org.apache.tomcat.util.buf.ByteCh import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.http.MimeHeaders; -import org.apache.tomcat.util.net.AbstractEndpoint; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.ApplicationBufferHandler; import org.apache.tomcat.util.net.SSLSupport; @@ -243,10 +242,11 @@ public class AjpProcessor extends Abstra // ------------------------------------------------------------ Constructor - public AjpProcessor(int packetSize, AbstractEndpoint<?,?> endpoint) { + public AjpProcessor(AbstractAjpProtocol<?> protocol) { - super(endpoint); + super(protocol); + int packetSize = protocol.getPacketSize(); // Calculate maximum chunk size as packetSize may have been changed from // the default (Constants.MAX_PACKET_SIZE) this.outputMaxChunkSize = 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=1774168&r1=1774167&r2=1774168&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Protocol.java Wed Dec 14 11:04:03 2016 @@ -272,6 +272,9 @@ public abstract class AbstractHttp11Prot allowedTrailerHeaders.removeAll(toRemove); } } + protected Set<String> getAllowedTrailerHeadersInternal() { + return allowedTrailerHeaders; + } public String getAllowedTrailerHeaders() { // Chances of a size change between these lines are small enough that a // sync is unnecessary. @@ -636,9 +639,7 @@ public abstract class AbstractHttp11Prot @Override protected Processor createProcessor() { - Http11Processor processor = new Http11Processor(getMaxHttpHeaderSize(), getEndpoint(), - getMaxTrailerSize(), allowedTrailerHeaders, getMaxExtensionSize(), - getMaxSwallowSize(), httpUpgradeProtocols); + Http11Processor processor = new Http11Processor(this); processor.setAdapter(getAdapter()); processor.setMaxKeepAliveRequests(getMaxKeepAliveRequests()); processor.setConnectionUploadTimeout(getConnectionUploadTimeout()); Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1774168&r1=1774167&r2=1774168&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Dec 14 11:04:03 2016 @@ -21,8 +21,6 @@ import java.io.InterruptedIOException; import java.nio.ByteBuffer; import java.util.Enumeration; import java.util.Locale; -import java.util.Map; -import java.util.Set; import java.util.regex.Pattern; import javax.servlet.http.HttpServletResponse; @@ -54,7 +52,6 @@ import org.apache.tomcat.util.buf.Messag import org.apache.tomcat.util.http.FastHttpDateFormat; import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.log.UserDataHelper; -import org.apache.tomcat.util.net.AbstractEndpoint; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SendfileDataBase; @@ -71,6 +68,8 @@ public class Http11Processor extends Abs private static final StringManager sm = StringManager.getManager(Http11Processor.class); + private final AbstractHttp11Protocol<?> protocol; + private final UserDataHelper userDataHelper; /** @@ -215,32 +214,27 @@ public class Http11Processor extends Abs protected SendfileDataBase sendfileData = null; - /** - * UpgradeProtocol information - */ - private final Map<String,UpgradeProtocol> httpUpgradeProtocols; + public Http11Processor(AbstractHttp11Protocol<?> protocol) { + super(protocol); + this.protocol = protocol; - public Http11Processor(int maxHttpHeaderSize, AbstractEndpoint<?,?> endpoint,int maxTrailerSize, - Set<String> allowedTrailerHeaders, int maxExtensionSize, int maxSwallowSize, - Map<String,UpgradeProtocol> httpUpgradeProtocols) { - - super(endpoint); userDataHelper = new UserDataHelper(log); - inputBuffer = new Http11InputBuffer(request, maxHttpHeaderSize); + inputBuffer = new Http11InputBuffer(request, protocol.getMaxHttpHeaderSize()); request.setInputBuffer(inputBuffer); - outputBuffer = new Http11OutputBuffer(response, maxHttpHeaderSize); + outputBuffer = new Http11OutputBuffer(response, protocol.getMaxHttpHeaderSize()); response.setOutputBuffer(outputBuffer); // Create and add the identity filters. - inputBuffer.addFilter(new IdentityInputFilter(maxSwallowSize)); + inputBuffer.addFilter(new IdentityInputFilter(protocol.getMaxSwallowSize())); outputBuffer.addFilter(new IdentityOutputFilter()); // Create and add the chunked filters. - inputBuffer.addFilter(new ChunkedInputFilter(maxTrailerSize, allowedTrailerHeaders, - maxExtensionSize, maxSwallowSize)); + inputBuffer.addFilter(new ChunkedInputFilter(protocol.getMaxTrailerSize(), + protocol.getAllowedTrailerHeadersInternal(), protocol.getMaxExtensionSize(), + protocol.getMaxSwallowSize())); outputBuffer.addFilter(new ChunkedOutputFilter()); // Create and add the void filters. @@ -255,8 +249,6 @@ public class Http11Processor extends Abs outputBuffer.addFilter(new GzipOutputFilter()); pluggableFilterIndex = inputBuffer.getFilters().length; - - this.httpUpgradeProtocols = httpUpgradeProtocols; } @@ -731,7 +723,7 @@ public class Http11Processor extends Abs // Check the protocol String requestedProtocol = request.getHeader("Upgrade"); - UpgradeProtocol upgradeProtocol = httpUpgradeProtocols.get(requestedProtocol); + UpgradeProtocol upgradeProtocol = protocol.getUpgradeProtocol(requestedProtocol); if (upgradeProtocol != null) { if (upgradeProtocol.accept(request)) { // TODO Figure out how to handle request bodies at this --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org