Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 52135 invoked from network); 22 Jul 2010 16:33:11 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 22 Jul 2010 16:33:11 -0000 Received: (qmail 77460 invoked by uid 500); 22 Jul 2010 16:33:10 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 77233 invoked by uid 500); 22 Jul 2010 16:33:09 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 77224 invoked by uid 99); 22 Jul 2010 16:33:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Jul 2010 16:33:09 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Jul 2010 16:33:05 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 64CAC238899C; Thu, 22 Jul 2010 16:32:12 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r966735 - in /tomcat/trunk/java/org/apache/catalina: ./ core/ startup/ util/ Date: Thu, 22 Jul 2010 16:32:12 -0000 To: dev@tomcat.apache.org From: markt@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100722163212.64CAC238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: markt Date: Thu Jul 22 16:32:11 2010 New Revision: 966735 URL: http://svn.apache.org/viewvc?rev=966735&view=rev Log: Extend Lifecycle state machine so global listeners can start before everything else without impacting the context and TLD config listeners Modified: tomcat/trunk/java/org/apache/catalina/Lifecycle.java tomcat/trunk/java/org/apache/catalina/LifecycleState.java tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java tomcat/trunk/java/org/apache/catalina/core/JasperListener.java tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java Modified: tomcat/trunk/java/org/apache/catalina/Lifecycle.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Lifecycle.java?rev=966735&r1=966734&r2=966735&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Lifecycle.java (original) +++ tomcat/trunk/java/org/apache/catalina/Lifecycle.java Thu Jul 22 16:32:11 2010 @@ -27,10 +27,12 @@ package org.apache.catalina; *
* The valid state transitions for components that support Lifecycle are: *
- *                                  --------------------<-----------------------
- *                                  |                                          |
- *    init()           start()      |        auto          auto         stop() |
- * NEW ->-- INITIALIZED -->-- STARTING_PREP -->- STARTING -->- STARTED -->---  |
+ *    init()
+ * NEW ->-- INITIALIZING
+ * |||           |                  --------------------<-----------------------
+ * |||           |auto              |                                          |
+ * |||           |     start()      |        auto          auto         stop() |
+ * |||      INITIALIZED -->-- STARTING_PREP -->- STARTING -->- STARTED -->---  |
  * |||                              ^                             |         |  |
  * |||        start()               |                             |         |  |
  * ||----------->--------------------                             |         |  |
@@ -99,9 +101,15 @@ public interface Lifecycle {
 
 
     /**
-     * The LifecycleEvent type for the "component init" event.
+     * The LifecycleEvent type for the "component after init" event.
      */
-    public static final String INIT_EVENT = "init";
+    public static final String BEFORE_INIT_EVENT = "before_init";
+
+
+    /**
+     * The LifecycleEvent type for the "component after init" event.
+     */
+    public static final String AFTER_INIT_EVENT = "after_init";
 
 
     /**

Modified: tomcat/trunk/java/org/apache/catalina/LifecycleState.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/LifecycleState.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/LifecycleState.java (original)
+++ tomcat/trunk/java/org/apache/catalina/LifecycleState.java Thu Jul 22 16:32:11 2010
@@ -23,7 +23,8 @@ package org.apache.catalina;
  */
 public enum LifecycleState {
     NEW(false, null),
-    INITIALIZED(false, Lifecycle.INIT_EVENT),
+    INITIALIZING(false, Lifecycle.BEFORE_INIT_EVENT),
+    INITIALIZED(false, Lifecycle.AFTER_INIT_EVENT),
     STARTING_PREP(false, Lifecycle.BEFORE_START_EVENT),
     STARTING(true, Lifecycle.START_EVENT),
     STARTED(true, Lifecycle.AFTER_START_EVENT),

Modified: tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java Thu Jul 22 16:32:11 2010
@@ -97,7 +97,7 @@ public class AprLifecycleListener
      */
     public void lifecycleEvent(LifecycleEvent event) {
 
-        if (Lifecycle.INIT_EVENT.equals(event.getType())) {
+        if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) {
             synchronized (lock) {
                 init();
                 if (aprAvailable) {

Modified: tomcat/trunk/java/org/apache/catalina/core/JasperListener.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JasperListener.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/JasperListener.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/JasperListener.java Thu Jul 22 16:32:11 2010
@@ -57,7 +57,7 @@ public class JasperListener
      */
     public void lifecycleEvent(LifecycleEvent event) {
 
-        if (Lifecycle.INIT_EVENT.equals(event.getType())) {
+        if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) {
             try {
                 // Set JSP factory
                 Class.forName("org.apache.jasper.compiler.JspRuntimeContext",

Modified: tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java Thu Jul 22 16:32:11 2010
@@ -136,7 +136,7 @@ public class JreMemoryLeakPreventionList
     @Override
     public void lifecycleEvent(LifecycleEvent event) {
         // Initialise these classes when Tomcat starts
-        if (Lifecycle.INIT_EVENT.equals(event.getType())) {
+        if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) {
             /*
              * Several components end up calling:
              * sun.awt.AppContext.getAppContext()

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Thu Jul 22 16:32:11 2010
@@ -327,7 +327,7 @@ public class ContextConfig
                 originalDocBase = docBase;
             }
             configureStop();
-        } else if (event.getType().equals(Lifecycle.INIT_EVENT)) {
+        } else if (event.getType().equals(Lifecycle.AFTER_INIT_EVENT)) {
             init();
         } else if (event.getType().equals(Lifecycle.DESTROY_EVENT)) {
             destroy();

Modified: tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/TldConfig.java Thu Jul 22 16:32:11 2010
@@ -577,7 +577,7 @@ public final class TldConfig  implements
             return;
         }
         
-        if (event.getType().equals(Lifecycle.INIT_EVENT)) {
+        if (event.getType().equals(Lifecycle.AFTER_INIT_EVENT)) {
             init();
         } else if (event.getType().equals(Lifecycle.CONFIGURE_START_EVENT)) {
             try {

Modified: tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java?rev=966735&r1=966734&r2=966735&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/util/LifecycleBase.java Thu Jul 22 16:32:11 2010
@@ -92,11 +92,12 @@ public abstract class LifecycleBase impl
     
     public synchronized final void init() throws LifecycleException {
         if (!state.equals(LifecycleState.NEW)) {
-            invalidTransition(Lifecycle.INIT_EVENT);
+            invalidTransition(Lifecycle.BEFORE_INIT_EVENT);
         }
+        setState(LifecycleState.INITIALIZING);
 
         initInternal();
-        
+
         setState(LifecycleState.INITIALIZED);
     }
     



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org