* <br>
* The valid state transitions for components that support Lifecycle are:
* <pre>
- * --------------------<-----------------------
- * | |
- * 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() | | | |
* ||----------->-------------------- | | |
/**
- * 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";
/**
*/
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),
*/
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) {
*/
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",
@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()
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();
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 {
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);
}