in jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/Deployer.java [577:617]
public void lifeCycleChanged(LifeCycleEvent event) throws JBIException {
if (event.getLifeCycleMBean() instanceof ComponentImpl) {
ComponentImpl comp = (ComponentImpl) event.getLifeCycleMBean();
switch (event.getType()) {
case Stopping:
if (comp.getState() == AbstractLifecycleJbiArtifact.State.Started) {
// Stop deployed SAs
for (ServiceAssemblyImpl sa : comp.getServiceAssemblies()) {
if (sa.getState() == ServiceAssemblyImpl.State.Started) {
sa.stop(false);
pendingAssemblies.add(sa);
}
}
}
break;
case ShuttingDown:
if (comp.getState() == AbstractLifecycleJbiArtifact.State.Stopped) {
// Shutdown deployed SAs
for (ServiceAssemblyImpl sa : comp.getServiceAssemblies()) {
if (sa.getState() == ServiceAssemblyImpl.State.Stopped) {
sa.shutDown(false, event.isForced());
pendingAssemblies.add(sa);
}
}
}
break;
case Started:
checkPendingInstallers();
checkPendingAssemblies();
break;
}
}
// propagate lifecycle event to management strategy
//
try {
getEnvironment().notify(event);
} catch (Exception e) {
// ignore
}
}