Author: markt Date: Sat Jun 4 20:41:39 2011 New Revision: 1131490 URL: http://svn.apache.org/viewvc?rev=1131490&view=rev Log: Create an AbstractProcessor. Start to pull common code from AJP and HTTP processors to this abstract class.
Added: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java 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/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Added: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1131490&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (added) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Sat Jun 4 20:41:39 2011 @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.coyote; + +import org.apache.tomcat.util.net.AbstractEndpoint; + +public abstract class AbstractProcessor implements ActionHook, Processor { + + protected AbstractEndpoint endpoint; + + protected AbstractEndpoint getEndpoint() { + return endpoint; + } +} Propchange: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java?rev=1131490&r1=1131489&r2=1131490&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProcessor.java Sat Jun 4 20:41:39 2011 @@ -26,13 +26,12 @@ import java.security.cert.X509Certificat import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.coyote.AbstractProcessor; import org.apache.coyote.ActionCode; -import org.apache.coyote.ActionHook; import org.apache.coyote.Adapter; import org.apache.coyote.AsyncContextCallback; import org.apache.coyote.AsyncStateMachine; import org.apache.coyote.InputBuffer; -import org.apache.coyote.Processor; import org.apache.coyote.Request; import org.apache.coyote.Response; import org.apache.juli.logging.Log; @@ -41,7 +40,6 @@ import org.apache.tomcat.util.buf.HexUti import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.http.HttpMessages; 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.SSLSupport; import org.apache.tomcat.util.res.StringManager; @@ -49,7 +47,7 @@ import org.apache.tomcat.util.res.String /** * Base class for AJP Processor implementations. */ -public abstract class AbstractAjpProcessor implements ActionHook, Processor { +public abstract class AbstractAjpProcessor extends AbstractProcessor { protected abstract Log getLog(); @@ -69,12 +67,6 @@ public abstract class AbstractAjpProcess /** - * Associated endpoint. - */ - protected AbstractEndpoint endpoint; - - - /** * Request object. */ protected Request request = null; Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1131490&r1=1131489&r2=1131490&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Sat Jun 4 20:41:39 2011 @@ -22,12 +22,11 @@ import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Pattern; +import org.apache.coyote.AbstractProcessor; import org.apache.coyote.ActionCode; -import org.apache.coyote.ActionHook; import org.apache.coyote.Adapter; import org.apache.coyote.AsyncContextCallback; import org.apache.coyote.AsyncStateMachine; -import org.apache.coyote.Processor; import org.apache.coyote.Request; import org.apache.coyote.Response; import org.apache.coyote.http11.filters.BufferedInputFilter; @@ -46,11 +45,10 @@ import org.apache.tomcat.util.buf.ByteCh import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.http.FastHttpDateFormat; 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.res.StringManager; -public abstract class AbstractHttp11Processor implements ActionHook, Processor { +public abstract class AbstractHttp11Processor extends AbstractProcessor { protected abstract Log getLog(); @@ -968,7 +966,6 @@ public abstract class AbstractHttp11Proc } - abstract AbstractEndpoint getEndpoint(); abstract boolean prepareSendfile(OutputFilter[] outputFilters); public void endRequest() { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1131490&r1=1131489&r2=1131490&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Sat Jun 4 20:41:39 2011 @@ -42,7 +42,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.AprEndpoint; import org.apache.tomcat.util.net.SSLSupport; @@ -131,16 +130,6 @@ public class Http11AprProcessor extends /** - * Associated endpoint. - */ - protected AprEndpoint endpoint; - @Override - protected AbstractEndpoint getEndpoint() { - return endpoint; - } - - - /** * When client certificate information is presented in a form other than * instances of {@link java.security.cert.X509Certificate} it needs to be * converted before it can be used and this property controls which JSSE @@ -246,7 +235,7 @@ public class Http11AprProcessor extends // and the method should return true openSocket = true; // Add the socket to the poller - endpoint.getPoller().add(socketRef); + ((AprEndpoint)endpoint).getPoller().add(socketRef); if (endpoint.isPaused()) { // 503 - Service unavailable response.setStatus(503); @@ -353,7 +342,7 @@ public class Http11AprProcessor extends if (sendfileData != null && !error) { sendfileData.socket = socketRef; sendfileData.keepAlive = keepAlive; - if (!endpoint.getSendfile().add(sendfileData)) { + if (!((AprEndpoint)endpoint).getSendfile().add(sendfileData)) { openSocket = true; break; } @@ -594,7 +583,7 @@ public class Http11AprProcessor extends try { // Configure connection to require a certificate SSLSocket.setVerify(socketRef, SSL.SSL_CVERIFY_REQUIRE, - endpoint.getSSLVerifyDepth()); + ((AprEndpoint)endpoint).getSSLVerifyDepth()); // Renegotiate certificates if (SSLSocket.renegotiate(socketRef) == 0) { // Don't look for certs unless we know renegotiation worked. @@ -628,12 +617,14 @@ public class Http11AprProcessor extends } else if (actionCode == ActionCode.COMET_END) { comet = false; } else if (actionCode == ActionCode.COMET_CLOSE) { - endpoint.processSocketAsync(this.socket, SocketStatus.OPEN); + ((AprEndpoint)endpoint).processSocketAsync(this.socket, + SocketStatus.OPEN); } else if (actionCode == ActionCode.COMET_SETTIMEOUT) { //no op } else if (actionCode == ActionCode.ASYNC_COMPLETE) { if (asyncStateMachine.asyncComplete()) { - endpoint.processSocketAsync(this.socket, SocketStatus.OPEN); + ((AprEndpoint)endpoint).processSocketAsync(this.socket, + SocketStatus.OPEN); } } else if (actionCode == ActionCode.ASYNC_SETTIMEOUT) { if (param==null) return; @@ -641,7 +632,8 @@ public class Http11AprProcessor extends socket.setTimeout(timeout); } else if (actionCode == ActionCode.ASYNC_DISPATCH) { if (asyncStateMachine.asyncDispatch()) { - endpoint.processSocketAsync(this.socket, SocketStatus.OPEN); + ((AprEndpoint)endpoint).processSocketAsync(this.socket, + SocketStatus.OPEN); } } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1131490&r1=1131489&r2=1131490&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Sat Jun 4 20:41:39 2011 @@ -38,7 +38,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.NioChannel; import org.apache.tomcat.util.net.NioEndpoint; @@ -138,23 +137,6 @@ public class Http11NioProcessor extends protected NioChannel socket = null; - /** - * Associated endpoint. - */ - protected NioEndpoint endpoint; - - - // ------------------------------------------------------------- Properties - - /** - * Expose the endpoint. - */ - @Override - protected AbstractEndpoint getEndpoint() { - return endpoint; - } - - // --------------------------------------------------------- Public Methods @@ -288,8 +270,8 @@ public class Http11NioProcessor extends this.socket = socket; inputBuffer.setSocket(socket); outputBuffer.setSocket(socket); - inputBuffer.setSelectorPool(endpoint.getSelectorPool()); - outputBuffer.setSelectorPool(endpoint.getSelectorPool()); + inputBuffer.setSelectorPool(((NioEndpoint)endpoint).getSelectorPool()); + outputBuffer.setSelectorPool(((NioEndpoint)endpoint).getSelectorPool()); // Error flag error = false; @@ -636,9 +618,9 @@ public class Http11NioProcessor extends engine.setNeedClientAuth(true); try { sslChannel.rehandshake(endpoint.getSoTimeout()); - sslSupport = - endpoint.getHandler().getSslImplementation().getSSLSupport( - engine.getSession()); + sslSupport = ((NioEndpoint)endpoint).getHandler() + .getSslImplementation().getSSLSupport( + engine.getSession()); } catch (IOException ioe) { log.warn(sm.getString("http11processor.socket.sslreneg",ioe)); } @@ -682,7 +664,8 @@ public class Http11NioProcessor extends attach.setTimeout(timeout); } else if (actionCode == ActionCode.ASYNC_COMPLETE) { if (asyncStateMachine.asyncComplete()) { - endpoint.processSocket(this.socket, SocketStatus.OPEN, true); + ((NioEndpoint)endpoint).processSocket(this.socket, + SocketStatus.OPEN, true); } } else if (actionCode == ActionCode.ASYNC_SETTIMEOUT) { if (param==null) return; @@ -693,7 +676,8 @@ public class Http11NioProcessor extends attach.setTimeout(timeout); } else if (actionCode == ActionCode.ASYNC_DISPATCH) { if (asyncStateMachine.asyncDispatch()) { - endpoint.processSocket(this.socket, SocketStatus.OPEN, true); + ((NioEndpoint)endpoint).processSocket(this.socket, + SocketStatus.OPEN, true); } } } 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=1131490&r1=1131489&r2=1131490&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Sat Jun 4 20:41:39 2011 @@ -37,7 +37,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.JIoEndpoint; import org.apache.tomcat.util.net.SSLSupport; @@ -113,12 +112,6 @@ public class Http11Processor extends Abs /** - * Associated endpoint. - */ - protected JIoEndpoint endpoint; - - - /** * The percentage of threads that have to be in use before keep-alive is * disabled to aid scalability. */ @@ -128,14 +121,6 @@ public class Http11Processor extends Abs /** - * Expose the endpoint. - */ - @Override - protected AbstractEndpoint getEndpoint() { - return this.endpoint; - } - - /** * Set the SSL information for this HTTP connection. */ public void setSSLSupport(SSLSupport sslSupport) { @@ -584,7 +569,8 @@ public class Http11Processor extends Abs } } else if (actionCode == ActionCode.ASYNC_COMPLETE) { if (asyncStateMachine.asyncComplete()) { - endpoint.processSocketAsync(this.socket, SocketStatus.OPEN); + ((JIoEndpoint) endpoint).processSocketAsync(this.socket, + SocketStatus.OPEN); } } else if (actionCode == ActionCode.ASYNC_SETTIMEOUT) { if (param == null) return; @@ -593,7 +579,8 @@ public class Http11Processor extends Abs socket.setTimeout(timeout); } else if (actionCode == ActionCode.ASYNC_DISPATCH) { if (asyncStateMachine.asyncDispatch()) { - endpoint.processSocketAsync(this.socket, SocketStatus.OPEN); + ((JIoEndpoint) endpoint).processSocketAsync(this.socket, + SocketStatus.OPEN); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org