package ee.telekom.workflow.util; import org.springframework.context.SmartLifecycle; public abstract class SimpleLifeCycleBean implements SmartLifecycle{ private static final int DEFAULT_PHASE = 1; private final int phase = DEFAULT_PHASE; private boolean running = false; public abstract void doStart(); public abstract void doStop(); @Override public final void start(){ doStart(); running = true; } @Override public final void stop(){ doStop(); running = false; } @Override public boolean isRunning(){ return running; } @Override public int getPhase(){ return phase; } @Override public boolean isAutoStartup(){ return true; } @Override public void stop( Runnable callback ){ stop(); callback.run(); } }