From dd935c7acbe983c29e66de8e748b8dc55dc6869e Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 6 Dec 2010 13:36:48 +0000 Subject: [PATCH] Re-factoring in support of https://issues.apache.org/bugzilla/show_bug.cgi?id=50360 Implement a common base class for ProtocolHandler implementations that will handle life-cycle/mbean issues (once more re-factoring has been completed) git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1042639 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/coyote/AbstractProtocolHandler.java | 30 ++++++++++++++++++++++ .../org/apache/coyote/ajp/AbstractAjpProtocol.java | 10 +++----- .../coyote/http11/AbstractHttp11Protocol.java | 8 ++---- 3 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 java/org/apache/coyote/AbstractProtocolHandler.java diff --git a/java/org/apache/coyote/AbstractProtocolHandler.java b/java/org/apache/coyote/AbstractProtocolHandler.java new file mode 100644 index 000000000..8cec9bb6c --- /dev/null +++ b/java/org/apache/coyote/AbstractProtocolHandler.java @@ -0,0 +1,30 @@ +/* + * 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 javax.management.MBeanRegistration; + +import org.apache.juli.logging.Log; + +public abstract class AbstractProtocolHandler implements ProtocolHandler, + MBeanRegistration { + + // Concrete implementations need to provide access to their logger to be + // used by the abstract classes. + protected abstract Log getLog(); + +} diff --git a/java/org/apache/coyote/ajp/AbstractAjpProtocol.java b/java/org/apache/coyote/ajp/AbstractAjpProtocol.java index eb3efb503..46ca78b3a 100644 --- a/java/org/apache/coyote/ajp/AbstractAjpProtocol.java +++ b/java/org/apache/coyote/ajp/AbstractAjpProtocol.java @@ -22,25 +22,21 @@ import java.util.HashMap; import java.util.Iterator; import java.util.concurrent.Executor; -import javax.management.MBeanRegistration; import javax.management.MBeanServer; import javax.management.ObjectName; +import org.apache.coyote.AbstractProtocolHandler; import org.apache.coyote.Adapter; -import org.apache.coyote.ProtocolHandler; -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.res.StringManager; -public abstract class AbstractAjpProtocol implements ProtocolHandler, MBeanRegistration { +public abstract class AbstractAjpProtocol extends AbstractProtocolHandler { /** * The string manager for this package. */ protected static final StringManager sm = StringManager.getManager(Constants.Package); - - protected abstract Log getLog(); - + protected ObjectName tpOname = null; protected ObjectName rgOname = null; diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java index 6ba937575..74c2eb205 100644 --- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java +++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java @@ -22,26 +22,22 @@ import java.util.HashMap; import java.util.Iterator; import java.util.concurrent.Executor; -import javax.management.MBeanRegistration; import javax.management.MBeanServer; import javax.management.ObjectName; +import org.apache.coyote.AbstractProtocolHandler; import org.apache.coyote.Adapter; -import org.apache.coyote.ProtocolHandler; -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.SSLImplementation; import org.apache.tomcat.util.res.StringManager; -public abstract class AbstractHttp11Protocol implements ProtocolHandler, MBeanRegistration { +public abstract class AbstractHttp11Protocol extends AbstractProtocolHandler { /** * The string manager for this package. */ protected static final StringManager sm = StringManager.getManager(Constants.Package); - protected abstract Log getLog(); - protected ObjectName tpOname = null; protected ObjectName rgOname = null; -- 2.11.0