The SimpleContextLifecycleListener class represents a listener class for the SimpleContext class.
The SimpleContext class implements the Lifecycle interface. The SimpleContext class uses the following variable to reference a LifecycleSupport instance.
protected LifecycleSupport lifecycle = new LifecycleSupport(this);
Methods from the Lifecycle interface.
public synchronized void start() throws LifecycleException{
if(started)
throw new LifecycleException("SimpleContext has already started");
//notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(BEFORE_START_EVENT,null);
started = true;
try{
//Start our subordinate components, if any
if((loader != null) && (loader instanceof Lifecycle))
((Lifecycle)loader).start();
//Start our child containers, if any
Container children[] = findChildren();
for(int i = 0; i<children.length;i++){
if(children[i] instanceof Lifecycle)
((Lifecycle)children[i]).start();
//Start the Valves in our pipeline
//if any
if(pipeline instanceof Lifecycle)
((Lifecycle)pipeline).start();
//notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(TART_EVENT,null);
}
catch(Exception e){
}
lifecycle.fireLifecycleEvent(AFTER_START_EVENT,null);
}
public void stop() throws LifecycleException{
if(!started)
throw new LifecycleException("SimpeContext has not been started");
lifecycle.fireLifecycleEvent(BEFORE_STOP_EVENT,null);
lifecycle.fireLifecycleEvent(STOP_EVENT, null);
started = false;
try{
if(pipline instanceof Lifecycle){
pipeline.stop();
}
Container children[] = findChildren();
for(int i=0;i<children.length;i++){
if(children[i] instanceof Lifecycle){
children[i].stop();
}
}
if(loader!=null && (loader instanceof Lifecycle))
loader.stop();
}catch(Exception e){
}
lifecycle.fireLifecycleEvent(AFTER_STOP_EVENT,null);
}