Rename for consistency
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 5 Jun 2011 12:36:25 +0000 (12:36 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 5 Jun 2011 12:36:25 +0000 (12:36 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1132385 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/AbstractProtocol.java [new file with mode: 0644]
java/org/apache/coyote/AbstractProtocolHandler.java [deleted file]
java/org/apache/coyote/ajp/AbstractAjpProtocol.java
java/org/apache/coyote/http11/AbstractHttp11Protocol.java

diff --git a/java/org/apache/coyote/AbstractProtocol.java b/java/org/apache/coyote/AbstractProtocol.java
new file mode 100644 (file)
index 0000000..d547bd0
--- /dev/null
@@ -0,0 +1,445 @@
+/*
+ *  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 java.net.InetAddress;
+import java.util.concurrent.Executor;
+
+import javax.management.MBeanRegistration;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
+import org.apache.juli.logging.Log;
+import org.apache.tomcat.util.modeler.Registry;
+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 AbstractProtocol implements ProtocolHandler,
+        MBeanRegistration {
+
+    /**
+     * The string manager for this package.
+     */
+    protected static final StringManager sm =
+        StringManager.getManager(Constants.Package);
+
+
+    /**
+     * Name of MBean for the Global Request Processor.
+     */
+    protected ObjectName rgOname = null;
+
+    
+    /**
+     * Name of MBean for the ThreadPool.
+     */
+    protected ObjectName tpOname = null;
+
+    
+    /**
+     * Endpoint that provides low-level network I/O - must be matched to the
+     * ProtocolHandler implementation (ProtocolHandler using BIO, requires BIO
+     * Endpoint etc.).
+     */
+    protected AbstractEndpoint endpoint = null;
+
+    
+    // ----------------------------------------------- Generic property handling
+
+    /**
+     * Generic property setter used by the digester. Other code should not need
+     * to use this. The digester will only use this method if it can't find a
+     * more specific setter. That means the property belongs to the Endpoint,
+     * the ServerSocketFactory or some other lower level component. This method
+     * ensures that it is visible to both.
+     */
+    public boolean setProperty(String name, String value) {
+        return endpoint.setProperty(name, value);
+    }
+
+
+    /**
+     * Generic property getter used by the digester. Other code should not need
+     * to use this.
+     */
+    public String getProperty(String name) {
+        return endpoint.getProperty(name);
+    }
+
+
+    // ------------------------------- Properties managed by the ProtocolHandler
+    
+    /**
+     * The adapter provides the link between the ProtocolHandler and the
+     * connector.
+     */
+    protected Adapter adapter;
+    @Override
+    public void setAdapter(Adapter adapter) { this.adapter = adapter; }
+    @Override
+    public Adapter getAdapter() { return adapter; }
+
+
+    /**
+     * The maximum number of idle processors that will be retained in the cache
+     * and re-used with a subsequent request. The default is 200. A value of -1
+     * means unlimited. In the unlimited case, the theoretical maximum number of
+     * cached Processor objects is {@link #getMaxConnections()} although it will
+     * usually be closer to {@link #getMaxThreads()}.
+     */
+    protected int processorCache = 200;
+    public int getProcessorCache() { return this.processorCache; }
+    public void setProcessorCache(int processorCache) {
+        this.processorCache = processorCache;
+    }
+
+
+    /**
+     * 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
+     * provider is used to perform the conversion. For example it is used with
+     * the AJP connectors, the HTTP APR connector and with the
+     * {@link org.apache.catalina.valves.SSLValve}. If not specified, the
+     * default provider will be used. 
+     */
+    protected String clientCertProvider = null;
+    public String getClientCertProvider() { return clientCertProvider; }
+    public void setClientCertProvider(String s) { this.clientCertProvider = s; }
+
+
+    // ---------------------- Properties that are passed through to the EndPoint
+
+    @Override
+    public Executor getExecutor() { return endpoint.getExecutor(); }
+    public void setExecutor(Executor executor) {
+        endpoint.setExecutor(executor);
+    }
+
+
+    public int getMaxThreads() { return endpoint.getMaxThreads(); }
+    public void setMaxThreads(int maxThreads) {
+        endpoint.setMaxThreads(maxThreads);
+    }
+    
+    public int getMaxConnections() { return endpoint.getMaxConnections(); }
+    public void setMaxConnections(int maxConnections) {
+        endpoint.setMaxConnections(maxConnections);
+    }
+
+
+    public int getMinSpareThreads() { return endpoint.getMinSpareThreads(); }
+    public void setMinSpareThreads(int minSpareThreads) {
+        endpoint.setMinSpareThreads(minSpareThreads);
+    }
+
+
+    public int getThreadPriority() { return endpoint.getThreadPriority(); }
+    public void setThreadPriority(int threadPriority) {
+        endpoint.setThreadPriority(threadPriority);
+    }
+
+
+    public int getBacklog() { return endpoint.getBacklog(); }
+    public void setBacklog(int backlog) { endpoint.setBacklog(backlog); }
+
+
+    public boolean getTcpNoDelay() { return endpoint.getTcpNoDelay(); }
+    public void setTcpNoDelay(boolean tcpNoDelay) {
+        endpoint.setTcpNoDelay(tcpNoDelay);
+    }
+
+
+    public int getSoLinger() { return endpoint.getSoLinger(); }
+    public void setSoLinger(int soLinger) { endpoint.setSoLinger(soLinger); }
+
+
+    public int getKeepAliveTimeout() { return endpoint.getKeepAliveTimeout(); }
+    public void setKeepAliveTimeout(int keepAliveTimeout) {
+        endpoint.setKeepAliveTimeout(keepAliveTimeout);
+    }
+
+    public InetAddress getAddress() { return endpoint.getAddress(); }
+    public void setAddress(InetAddress ia) {
+        endpoint.setAddress(ia);
+    }
+
+
+    public int getPort() { return endpoint.getPort(); }
+    public void setPort(int port) {
+        endpoint.setPort(port);
+    }
+
+
+    /*
+     * When Tomcat expects data from the client, this is the time Tomcat will
+     * wait for that data to arrive before closing the connection.
+     */
+    public int getConnectionTimeout() {
+        // Note that the endpoint uses the alternative name
+        return endpoint.getSoTimeout();
+    }
+    public void setConnectionTimeout(int timeout) {
+        // Note that the endpoint uses the alternative name
+        endpoint.setSoTimeout(timeout);
+    }
+
+    /*
+     * Alternative name for connectionTimeout property
+     */
+    public int getSoTimeout() {
+        return getConnectionTimeout();
+    }
+    public void setSoTimeout(int timeout) {
+        setConnectionTimeout(timeout);
+    }
+
+
+    // ---------------------------------------------------------- Public methods
+
+    /**
+     * The name will be prefix-address-port if address is non-null and
+     * prefix-port if the address is null. The name will be appropriately quoted
+     * so it can be used directly in an ObjectName.
+     */
+    public String getName() {
+        StringBuilder name = new StringBuilder(getNamePrefix());
+        name.append('-');
+        if (getAddress() != null) {
+            name.append(getAddress());
+            name.append('-');
+        }
+        name.append(endpoint.getPort());
+        return ObjectName.quote(name.toString());
+    }
+
+    
+    // -------------------------------------------------------- Abstract methods
+    
+    /**
+     * Concrete implementations need to provide access to their logger to be
+     * used by the abstract classes.
+     */
+    protected abstract Log getLog();
+    
+    
+    /**
+     * Obtain the prefix to be used when construction a name for this protocol
+     * handler. The name will be prefix-address-port.
+     */
+    protected abstract String getNamePrefix();
+
+
+    /**
+     * Obtain the handler associated with the underlying Endpoint
+     */
+    protected abstract Handler getHandler();
+
+
+    // ----------------------------------------------------- JMX related methods
+
+    protected String domain;
+    protected ObjectName oname;
+    protected MBeanServer mserver;
+
+    public ObjectName getObjectName() {
+        return oname;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    @Override
+    public ObjectName preRegister(MBeanServer server, ObjectName name)
+            throws Exception {
+        oname = name;
+        mserver = server;
+        domain = name.getDomain();
+        return name;
+    }
+
+    @Override
+    public void postRegister(Boolean registrationDone) {
+        // NOOP
+    }
+
+    @Override
+    public void preDeregister() throws Exception {
+        // NOOP
+    }
+
+    @Override
+    public void postDeregister() {
+        // NOOP
+    }
+
+    private ObjectName createObjectName() throws MalformedObjectNameException {
+        // Use the same domain as the connector
+        domain = adapter.getDomain();
+        
+        if (domain == null) {
+            return null;
+        }
+
+        StringBuilder name = new StringBuilder(getDomain());
+        name.append(":type=ProtocolHandler,port=");
+        name.append(getPort());
+        InetAddress address = getAddress();
+        if (address != null) {
+            name.append(",address=");
+            name.append(ObjectName.quote(address.toString()));
+        }
+        return new ObjectName(name.toString());
+    }
+
+    // ------------------------------------------------------- Lifecycle methods
+
+    /*
+     * NOTE: There is no maintenance of state or checking for valid transitions
+     * within this class. It is expected that the connector will maintain state
+     * and prevent invalid state transitions.
+     */
+
+    @Override
+    public void init() throws Exception {
+        if (getLog().isInfoEnabled())
+            getLog().info(sm.getString("abstractProtocolHandler.init",
+                    getName()));
+
+        if (oname == null) {
+            // Component not pre-registered so register it
+            oname = createObjectName();
+            if (oname != null) {
+                Registry.getRegistry(null, null).registerComponent(this, oname,
+                    null);
+            }
+        }
+
+        if (this.domain != null) {
+            try {
+                tpOname = new ObjectName(domain + ":" +
+                        "type=ThreadPool,name=" + getName());
+                Registry.getRegistry(null, null).registerComponent(endpoint,
+                        tpOname, null);
+            } catch (Exception e) {
+                getLog().error(sm.getString(
+                        "abstractProtocolHandler.mbeanRegistrationFailed",
+                        tpOname, getName()), e);
+            }
+            rgOname=new ObjectName(domain +
+                    ":type=GlobalRequestProcessor,name=" + getName());
+            Registry.getRegistry(null, null).registerComponent(
+                    getHandler().getGlobal(), rgOname, null );
+        }
+
+        endpoint.setName(getName());
+
+        try {
+            endpoint.init();
+        } catch (Exception ex) {
+            getLog().error(sm.getString("abstractProtocolHandler.initError",
+                    getName()), ex);
+            throw ex;
+        }
+    }
+
+
+    @Override
+    public void start() throws Exception {
+        if (getLog().isInfoEnabled())
+            getLog().info(sm.getString("abstractProtocolHandler.start",
+                    getName()));
+        try {
+            endpoint.start();
+        } catch (Exception ex) {
+            getLog().error(sm.getString("abstractProtocolHandler.startError",
+                    getName()), ex);
+            throw ex;
+        }
+    }
+
+
+    @Override
+    public void pause() throws Exception {
+        if(getLog().isInfoEnabled())
+            getLog().info(sm.getString("abstractProtocolHandler.pause",
+                    getName()));
+        try {
+            endpoint.pause();
+        } catch (Exception ex) {
+            getLog().error(sm.getString("abstractProtocolHandler.pauseError",
+                    getName()), ex);
+            throw ex;
+        }
+    }
+
+    @Override
+    public void resume() throws Exception {
+        if(getLog().isInfoEnabled())
+            getLog().info(sm.getString("abstractProtocolHandler.resume",
+                    getName()));
+        try {
+            endpoint.resume();
+        } catch (Exception ex) {
+            getLog().error(sm.getString("abstractProtocolHandler.resumeError",
+                    getName()), ex);
+            throw ex;
+        }
+    }
+
+
+    @Override
+    public void stop() throws Exception {
+        if(getLog().isInfoEnabled())
+            getLog().info(sm.getString("abstractProtocolHandler.stop",
+                    getName()));
+        try {
+            endpoint.stop();
+        } catch (Exception ex) {
+            getLog().error(sm.getString("abstractProtocolHandler.stopError",
+                    getName()), ex);
+            throw ex;
+        }
+    }
+
+
+    @Override
+    public void destroy() {
+        if(getLog().isInfoEnabled()) {
+            getLog().info(sm.getString("abstractProtocolHandler.destroy",
+                    getName()));
+        }
+        try {
+            endpoint.destroy();
+        } catch (Exception e) {
+            getLog().error(sm.getString("abstractProtocolHandler.destroyError",
+                    getName()), e);
+        }
+        
+        if (oname != null) {
+            Registry.getRegistry(null, null).unregisterComponent(oname);
+        }
+
+        if (tpOname != null)
+            Registry.getRegistry(null, null).unregisterComponent(tpOname);
+        if (rgOname != null)
+            Registry.getRegistry(null, null).unregisterComponent(rgOname);
+    }
+}
diff --git a/java/org/apache/coyote/AbstractProtocolHandler.java b/java/org/apache/coyote/AbstractProtocolHandler.java
deleted file mode 100644 (file)
index 50d4e85..0000000
+++ /dev/null
@@ -1,445 +0,0 @@
-/*
- *  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 java.net.InetAddress;
-import java.util.concurrent.Executor;
-
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-
-import org.apache.juli.logging.Log;
-import org.apache.tomcat.util.modeler.Registry;
-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,
-        MBeanRegistration {
-
-    /**
-     * The string manager for this package.
-     */
-    protected static final StringManager sm =
-        StringManager.getManager(Constants.Package);
-
-
-    /**
-     * Name of MBean for the Global Request Processor.
-     */
-    protected ObjectName rgOname = null;
-
-    
-    /**
-     * Name of MBean for the ThreadPool.
-     */
-    protected ObjectName tpOname = null;
-
-    
-    /**
-     * Endpoint that provides low-level network I/O - must be matched to the
-     * ProtocolHandler implementation (ProtocolHandler using BIO, requires BIO
-     * Endpoint etc.).
-     */
-    protected AbstractEndpoint endpoint = null;
-
-    
-    // ----------------------------------------------- Generic property handling
-
-    /**
-     * Generic property setter used by the digester. Other code should not need
-     * to use this. The digester will only use this method if it can't find a
-     * more specific setter. That means the property belongs to the Endpoint,
-     * the ServerSocketFactory or some other lower level component. This method
-     * ensures that it is visible to both.
-     */
-    public boolean setProperty(String name, String value) {
-        return endpoint.setProperty(name, value);
-    }
-
-
-    /**
-     * Generic property getter used by the digester. Other code should not need
-     * to use this.
-     */
-    public String getProperty(String name) {
-        return endpoint.getProperty(name);
-    }
-
-
-    // ------------------------------- Properties managed by the ProtocolHandler
-    
-    /**
-     * The adapter provides the link between the ProtocolHandler and the
-     * connector.
-     */
-    protected Adapter adapter;
-    @Override
-    public void setAdapter(Adapter adapter) { this.adapter = adapter; }
-    @Override
-    public Adapter getAdapter() { return adapter; }
-
-
-    /**
-     * The maximum number of idle processors that will be retained in the cache
-     * and re-used with a subsequent request. The default is 200. A value of -1
-     * means unlimited. In the unlimited case, the theoretical maximum number of
-     * cached Processor objects is {@link #getMaxConnections()} although it will
-     * usually be closer to {@link #getMaxThreads()}.
-     */
-    protected int processorCache = 200;
-    public int getProcessorCache() { return this.processorCache; }
-    public void setProcessorCache(int processorCache) {
-        this.processorCache = processorCache;
-    }
-
-
-    /**
-     * 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
-     * provider is used to perform the conversion. For example it is used with
-     * the AJP connectors, the HTTP APR connector and with the
-     * {@link org.apache.catalina.valves.SSLValve}. If not specified, the
-     * default provider will be used. 
-     */
-    protected String clientCertProvider = null;
-    public String getClientCertProvider() { return clientCertProvider; }
-    public void setClientCertProvider(String s) { this.clientCertProvider = s; }
-
-
-    // ---------------------- Properties that are passed through to the EndPoint
-
-    @Override
-    public Executor getExecutor() { return endpoint.getExecutor(); }
-    public void setExecutor(Executor executor) {
-        endpoint.setExecutor(executor);
-    }
-
-
-    public int getMaxThreads() { return endpoint.getMaxThreads(); }
-    public void setMaxThreads(int maxThreads) {
-        endpoint.setMaxThreads(maxThreads);
-    }
-    
-    public int getMaxConnections() { return endpoint.getMaxConnections(); }
-    public void setMaxConnections(int maxConnections) {
-        endpoint.setMaxConnections(maxConnections);
-    }
-
-
-    public int getMinSpareThreads() { return endpoint.getMinSpareThreads(); }
-    public void setMinSpareThreads(int minSpareThreads) {
-        endpoint.setMinSpareThreads(minSpareThreads);
-    }
-
-
-    public int getThreadPriority() { return endpoint.getThreadPriority(); }
-    public void setThreadPriority(int threadPriority) {
-        endpoint.setThreadPriority(threadPriority);
-    }
-
-
-    public int getBacklog() { return endpoint.getBacklog(); }
-    public void setBacklog(int backlog) { endpoint.setBacklog(backlog); }
-
-
-    public boolean getTcpNoDelay() { return endpoint.getTcpNoDelay(); }
-    public void setTcpNoDelay(boolean tcpNoDelay) {
-        endpoint.setTcpNoDelay(tcpNoDelay);
-    }
-
-
-    public int getSoLinger() { return endpoint.getSoLinger(); }
-    public void setSoLinger(int soLinger) { endpoint.setSoLinger(soLinger); }
-
-
-    public int getKeepAliveTimeout() { return endpoint.getKeepAliveTimeout(); }
-    public void setKeepAliveTimeout(int keepAliveTimeout) {
-        endpoint.setKeepAliveTimeout(keepAliveTimeout);
-    }
-
-    public InetAddress getAddress() { return endpoint.getAddress(); }
-    public void setAddress(InetAddress ia) {
-        endpoint.setAddress(ia);
-    }
-
-
-    public int getPort() { return endpoint.getPort(); }
-    public void setPort(int port) {
-        endpoint.setPort(port);
-    }
-
-
-    /*
-     * When Tomcat expects data from the client, this is the time Tomcat will
-     * wait for that data to arrive before closing the connection.
-     */
-    public int getConnectionTimeout() {
-        // Note that the endpoint uses the alternative name
-        return endpoint.getSoTimeout();
-    }
-    public void setConnectionTimeout(int timeout) {
-        // Note that the endpoint uses the alternative name
-        endpoint.setSoTimeout(timeout);
-    }
-
-    /*
-     * Alternative name for connectionTimeout property
-     */
-    public int getSoTimeout() {
-        return getConnectionTimeout();
-    }
-    public void setSoTimeout(int timeout) {
-        setConnectionTimeout(timeout);
-    }
-
-
-    // ---------------------------------------------------------- Public methods
-
-    /**
-     * The name will be prefix-address-port if address is non-null and
-     * prefix-port if the address is null. The name will be appropriately quoted
-     * so it can be used directly in an ObjectName.
-     */
-    public String getName() {
-        StringBuilder name = new StringBuilder(getNamePrefix());
-        name.append('-');
-        if (getAddress() != null) {
-            name.append(getAddress());
-            name.append('-');
-        }
-        name.append(endpoint.getPort());
-        return ObjectName.quote(name.toString());
-    }
-
-    
-    // -------------------------------------------------------- Abstract methods
-    
-    /**
-     * Concrete implementations need to provide access to their logger to be
-     * used by the abstract classes.
-     */
-    protected abstract Log getLog();
-    
-    
-    /**
-     * Obtain the prefix to be used when construction a name for this protocol
-     * handler. The name will be prefix-address-port.
-     */
-    protected abstract String getNamePrefix();
-
-
-    /**
-     * Obtain the handler associated with the underlying Endpoint
-     */
-    protected abstract Handler getHandler();
-
-
-    // ----------------------------------------------------- JMX related methods
-
-    protected String domain;
-    protected ObjectName oname;
-    protected MBeanServer mserver;
-
-    public ObjectName getObjectName() {
-        return oname;
-    }
-
-    public String getDomain() {
-        return domain;
-    }
-
-    @Override
-    public ObjectName preRegister(MBeanServer server, ObjectName name)
-            throws Exception {
-        oname = name;
-        mserver = server;
-        domain = name.getDomain();
-        return name;
-    }
-
-    @Override
-    public void postRegister(Boolean registrationDone) {
-        // NOOP
-    }
-
-    @Override
-    public void preDeregister() throws Exception {
-        // NOOP
-    }
-
-    @Override
-    public void postDeregister() {
-        // NOOP
-    }
-
-    private ObjectName createObjectName() throws MalformedObjectNameException {
-        // Use the same domain as the connector
-        domain = adapter.getDomain();
-        
-        if (domain == null) {
-            return null;
-        }
-
-        StringBuilder name = new StringBuilder(getDomain());
-        name.append(":type=ProtocolHandler,port=");
-        name.append(getPort());
-        InetAddress address = getAddress();
-        if (address != null) {
-            name.append(",address=");
-            name.append(ObjectName.quote(address.toString()));
-        }
-        return new ObjectName(name.toString());
-    }
-
-    // ------------------------------------------------------- Lifecycle methods
-
-    /*
-     * NOTE: There is no maintenance of state or checking for valid transitions
-     * within this class. It is expected that the connector will maintain state
-     * and prevent invalid state transitions.
-     */
-
-    @Override
-    public void init() throws Exception {
-        if (getLog().isInfoEnabled())
-            getLog().info(sm.getString("abstractProtocolHandler.init",
-                    getName()));
-
-        if (oname == null) {
-            // Component not pre-registered so register it
-            oname = createObjectName();
-            if (oname != null) {
-                Registry.getRegistry(null, null).registerComponent(this, oname,
-                    null);
-            }
-        }
-
-        if (this.domain != null) {
-            try {
-                tpOname = new ObjectName(domain + ":" +
-                        "type=ThreadPool,name=" + getName());
-                Registry.getRegistry(null, null).registerComponent(endpoint,
-                        tpOname, null);
-            } catch (Exception e) {
-                getLog().error(sm.getString(
-                        "abstractProtocolHandler.mbeanRegistrationFailed",
-                        tpOname, getName()), e);
-            }
-            rgOname=new ObjectName(domain +
-                    ":type=GlobalRequestProcessor,name=" + getName());
-            Registry.getRegistry(null, null).registerComponent(
-                    getHandler().getGlobal(), rgOname, null );
-        }
-
-        endpoint.setName(getName());
-
-        try {
-            endpoint.init();
-        } catch (Exception ex) {
-            getLog().error(sm.getString("abstractProtocolHandler.initError",
-                    getName()), ex);
-            throw ex;
-        }
-    }
-
-
-    @Override
-    public void start() throws Exception {
-        if (getLog().isInfoEnabled())
-            getLog().info(sm.getString("abstractProtocolHandler.start",
-                    getName()));
-        try {
-            endpoint.start();
-        } catch (Exception ex) {
-            getLog().error(sm.getString("abstractProtocolHandler.startError",
-                    getName()), ex);
-            throw ex;
-        }
-    }
-
-
-    @Override
-    public void pause() throws Exception {
-        if(getLog().isInfoEnabled())
-            getLog().info(sm.getString("abstractProtocolHandler.pause",
-                    getName()));
-        try {
-            endpoint.pause();
-        } catch (Exception ex) {
-            getLog().error(sm.getString("abstractProtocolHandler.pauseError",
-                    getName()), ex);
-            throw ex;
-        }
-    }
-
-    @Override
-    public void resume() throws Exception {
-        if(getLog().isInfoEnabled())
-            getLog().info(sm.getString("abstractProtocolHandler.resume",
-                    getName()));
-        try {
-            endpoint.resume();
-        } catch (Exception ex) {
-            getLog().error(sm.getString("abstractProtocolHandler.resumeError",
-                    getName()), ex);
-            throw ex;
-        }
-    }
-
-
-    @Override
-    public void stop() throws Exception {
-        if(getLog().isInfoEnabled())
-            getLog().info(sm.getString("abstractProtocolHandler.stop",
-                    getName()));
-        try {
-            endpoint.stop();
-        } catch (Exception ex) {
-            getLog().error(sm.getString("abstractProtocolHandler.stopError",
-                    getName()), ex);
-            throw ex;
-        }
-    }
-
-
-    @Override
-    public void destroy() {
-        if(getLog().isInfoEnabled()) {
-            getLog().info(sm.getString("abstractProtocolHandler.destroy",
-                    getName()));
-        }
-        try {
-            endpoint.destroy();
-        } catch (Exception e) {
-            getLog().error(sm.getString("abstractProtocolHandler.destroyError",
-                    getName()), e);
-        }
-        
-        if (oname != null) {
-            Registry.getRegistry(null, null).unregisterComponent(oname);
-        }
-
-        if (tpOname != null)
-            Registry.getRegistry(null, null).unregisterComponent(tpOname);
-        if (rgOname != null)
-            Registry.getRegistry(null, null).unregisterComponent(rgOname);
-    }
-}
index 3b1cba0..ffb07b6 100644 (file)
  */
 package org.apache.coyote.ajp;
 
-import org.apache.coyote.AbstractProtocolHandler;
+import org.apache.coyote.AbstractProtocol;
 import org.apache.tomcat.util.res.StringManager;
 
-public abstract class AbstractAjpProtocol extends AbstractProtocolHandler {
+public abstract class AbstractAjpProtocol extends AbstractProtocol {
     
     /**
      * The string manager for this package.
index cf62f0c..d5de4da 100644 (file)
  */
 package org.apache.coyote.http11;
 
-import org.apache.coyote.AbstractProtocolHandler;
+import org.apache.coyote.AbstractProtocol;
 import org.apache.tomcat.util.res.StringManager;
 
-public abstract class AbstractHttp11Protocol extends AbstractProtocolHandler {
+public abstract class AbstractHttp11Protocol extends AbstractProtocol {
 
     /**
      * The string manager for this package.