import org.apache.juli.logging.Log;
import org.apache.tomcat.util.net.AbstractEndpoint;
+import org.apache.tomcat.util.net.AbstractEndpoint.Handler;
import org.apache.tomcat.util.res.StringManager;
public abstract class AbstractProtocolHandler implements ProtocolHandler,
protected abstract String getNamePrefix();
+ /**
+ * Obtain the handler associated with the underlying Endpoint
+ */
+ protected abstract Handler getHandler();
+
+
// ----------------------------------------------------- JMX related methods
protected String domain;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.modeler.Registry;
+import org.apache.tomcat.util.net.AbstractEndpoint;
import org.apache.tomcat.util.net.AprEndpoint;
import org.apache.tomcat.util.net.AprEndpoint.Handler;
import org.apache.tomcat.util.net.SocketStatus;
@Override
protected Log getLog() { return log; }
+
+ @Override
+ protected AbstractEndpoint.Handler getHandler() {
+ return cHandler;
+ }
+
+
// ------------------------------------------------------------ Constructor
protected AjpAprProtocol proto;
protected AtomicLong registerCount = new AtomicLong(0);
protected RequestGroupInfo global = new RequestGroupInfo();
+ @Override
+ public RequestGroupInfo getGlobal() {
+ return global;
+ }
protected ConcurrentHashMap<SocketWrapper<Long>, AjpAprProcessor> connections =
new ConcurrentHashMap<SocketWrapper<Long>, AjpAprProcessor>();
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.modeler.Registry;
-import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
+import org.apache.tomcat.util.net.AbstractEndpoint;
import org.apache.tomcat.util.net.JIoEndpoint;
import org.apache.tomcat.util.net.JIoEndpoint.Handler;
import org.apache.tomcat.util.net.SocketStatus;
@Override
protected Log getLog() { return log; }
+
+ @Override
+ protected AbstractEndpoint.Handler getHandler() {
+ return cHandler;
+ }
+
+
// ------------------------------------------------------------ Constructor
protected AjpProtocol proto;
protected AtomicLong registerCount = new AtomicLong(0);
protected RequestGroupInfo global = new RequestGroupInfo();
+ @Override
+ public RequestGroupInfo getGlobal() {
+ return global;
+ }
+
protected ConcurrentHashMap<SocketWrapper<Socket>, AjpProcessor> connections =
new ConcurrentHashMap<SocketWrapper<Socket>, AjpProcessor>();
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.modeler.Registry;
+import org.apache.tomcat.util.net.AbstractEndpoint;
import org.apache.tomcat.util.net.AprEndpoint;
import org.apache.tomcat.util.net.AprEndpoint.Handler;
import org.apache.tomcat.util.net.SocketStatus;
private static final Log log = LogFactory.getLog(Http11AprProtocol.class);
+
@Override
protected Log getLog() { return log; }
+
+ @Override
+ protected AbstractEndpoint.Handler getHandler() {
+ return cHandler;
+ }
+
+
/**
* The string manager for this package.
*/
protected Http11AprProtocol proto;
protected AtomicLong registerCount = new AtomicLong(0);
protected RequestGroupInfo global = new RequestGroupInfo();
+ @Override
+ public RequestGroupInfo getGlobal() {
+ return global;
+ }
protected ConcurrentHashMap<SocketWrapper<Long>, Http11AprProcessor> connections =
new ConcurrentHashMap<SocketWrapper<Long>, Http11AprProcessor>();
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.modeler.Registry;
+import org.apache.tomcat.util.net.AbstractEndpoint;
import org.apache.tomcat.util.net.NioChannel;
import org.apache.tomcat.util.net.NioEndpoint;
import org.apache.tomcat.util.net.NioEndpoint.Handler;
public class Http11NioProtocol extends AbstractHttp11JsseProtocol {
private static final Log log = LogFactory.getLog(Http11NioProtocol.class);
-
+
+
@Override
protected Log getLog() { return log; }
+
+ @Override
+ protected AbstractEndpoint.Handler getHandler() {
+ return cHandler;
+ }
+
+
public Http11NioProtocol() {
endpoint=new NioEndpoint();
cHandler = new Http11ConnectionHandler( this );
protected Http11NioProtocol proto;
protected static int count = 0;
protected RequestGroupInfo global = new RequestGroupInfo();
+ @Override
+ public RequestGroupInfo getGlobal() {
+ return global;
+ }
protected ConcurrentHashMap<NioChannel, Http11NioProcessor> connections =
new ConcurrentHashMap<NioChannel, Http11NioProcessor>();
import org.apache.juli.logging.Log;
import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.modeler.Registry;
-import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
+import org.apache.tomcat.util.net.AbstractEndpoint;
import org.apache.tomcat.util.net.JIoEndpoint;
import org.apache.tomcat.util.net.JIoEndpoint.Handler;
import org.apache.tomcat.util.net.SSLImplementation;
protected Log getLog() { return log; }
+ @Override
+ protected AbstractEndpoint.Handler getHandler() {
+ return cHandler;
+ }
+
+
// ------------------------------------------------------------ Constructor
protected Http11Protocol proto;
protected AtomicLong registerCount = new AtomicLong(0);
protected RequestGroupInfo global = new RequestGroupInfo();
+ @Override
+ public RequestGroupInfo getGlobal() {
+ return global;
+ }
+
protected ConcurrentHashMap<SocketWrapper<Socket>, Http11Processor> connections =
new ConcurrentHashMap<SocketWrapper<Socket>, Http11Processor>();
import javax.net.ssl.KeyManagerFactory;
import org.apache.catalina.Globals;
+import org.apache.coyote.RequestGroupInfo;
import org.apache.juli.logging.Log;
import org.apache.tomcat.util.IntrospectionUtils;
import org.apache.tomcat.util.net.jsse.JSSESocketFactory;
*/
public static final String SESSION_MGR = "javax.servlet.request.ssl_session_mgr";
- /**
- * Different types of socket states to react upon
- */
public static interface Handler {
+ /**
+ * Different types of socket states to react upon
+ */
public enum SocketState {
OPEN, CLOSED, LONG, ASYNC_END
}
+
+
+ /**
+ * Obtain the GlobalRequestProcessor associated with the handler
+ */
+ public RequestGroupInfo getGlobal();
}
// Standard SSL Configuration attributes
* stored in the ThreadWithAttributes extra folders, or alternately in
* thread local fields.
*/
- public interface Handler {
+ public interface Handler extends AbstractEndpoint.Handler {
public SocketState process(SocketWrapper<Socket> socket);
public SocketState process(SocketWrapper<Socket> socket, SocketStatus status);
}