This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 247c8c32c44f65ce7bf3035541eedb8ffc97d5d0 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Sep 26 22:41:12 2019 +0100 Back-port refactoring to remove use of LifecycleSupport --- java/org/apache/catalina/util/LifecycleBase.java | 25 +++++++++++++--------- .../org/apache/catalina/util/LifecycleSupport.java | 3 +++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/java/org/apache/catalina/util/LifecycleBase.java b/java/org/apache/catalina/util/LifecycleBase.java index c9739ca..6195768 100644 --- a/java/org/apache/catalina/util/LifecycleBase.java +++ b/java/org/apache/catalina/util/LifecycleBase.java @@ -16,7 +16,11 @@ */ package org.apache.catalina.util; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + import org.apache.catalina.Lifecycle; +import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; import org.apache.catalina.LifecycleState; @@ -32,17 +36,15 @@ import org.apache.tomcat.util.res.StringManager; */ public abstract class LifecycleBase implements Lifecycle { - private static Log log = LogFactory.getLog(LifecycleBase.class); + private static final Log log = LogFactory.getLog(LifecycleBase.class); - private static StringManager sm = - StringManager.getManager("org.apache.catalina.util"); + private static final StringManager sm = StringManager.getManager(LifecycleBase.class); /** - * Used to handle firing lifecycle events. - * TODO: Consider merging LifecycleSupport into this class. + * The list of registered LifecycleListeners for event notifications. */ - private LifecycleSupport lifecycle = new LifecycleSupport(this); + private final List<LifecycleListener> lifecycleListeners = new CopyOnWriteArrayList<LifecycleListener>(); /** @@ -56,7 +58,7 @@ public abstract class LifecycleBase implements Lifecycle { */ @Override public void addLifecycleListener(LifecycleListener listener) { - lifecycle.addLifecycleListener(listener); + lifecycleListeners.add(listener); } @@ -65,7 +67,7 @@ public abstract class LifecycleBase implements Lifecycle { */ @Override public LifecycleListener[] findLifecycleListeners() { - return lifecycle.findLifecycleListeners(); + return lifecycleListeners.toArray(new LifecycleListener[0]); } @@ -74,7 +76,7 @@ public abstract class LifecycleBase implements Lifecycle { */ @Override public void removeLifecycleListener(LifecycleListener listener) { - lifecycle.removeLifecycleListener(listener); + lifecycleListeners.remove(listener); } @@ -85,7 +87,10 @@ public abstract class LifecycleBase implements Lifecycle { * @param data Data associated with event. */ protected void fireLifecycleEvent(String type, Object data) { - lifecycle.fireLifecycleEvent(type, data); + LifecycleEvent event = new LifecycleEvent(this, type, data); + for (LifecycleListener listener : lifecycleListeners) { + listener.lifecycleEvent(event); + } } diff --git a/java/org/apache/catalina/util/LifecycleSupport.java b/java/org/apache/catalina/util/LifecycleSupport.java index 8dd7409..737c07e 100644 --- a/java/org/apache/catalina/util/LifecycleSupport.java +++ b/java/org/apache/catalina/util/LifecycleSupport.java @@ -29,7 +29,10 @@ import org.apache.catalina.LifecycleListener; * registered LifecycleListeners. * * @author Craig R. McClanahan + * + * @deprecated Unused. This class will be removed in Tomcat 8.5.x. */ +@Deprecated public final class LifecycleSupport { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org