You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/09/26 21:44:28 UTC
[tomcat] 03/04: Back-port refactoring to remove use of
LifecycleSupport
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org