package ilarkesto.di.app; import ilarkesto.concurrent.TaskManager; import ilarkesto.core.logging.Log; public abstract class ACommandLineApplication extends AApplication { private static final Log LOG = Log.get(ACommandLineApplication.class); protected abstract int execute(String[] args); @Override protected final void onStart() { int rc; try { rc = execute(getArguments()); } catch (Throwable ex) { LOG.fatal(ex); rc = 1; } Log.flush(); System.exit(rc); } @Override public void ensureIntegrity() {} @Override protected final void onShutdown() {} @Override protected final void scheduleTasks(TaskManager tm) {} }