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 2016/12/14 11:04:04 UTC
svn commit: r1774168 - in /tomcat/trunk/java/org/apache/coyote:
AbstractProcessor.java ajp/AbstractAjpProtocol.java ajp/AjpProcessor.java
http11/AbstractHttp11Protocol.java http11/Http11Processor.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org