Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
logger.info("INFO ## stop the otter server");
controller.stop();
} catch (Throwable e) {
logger.warn("WARN ##something goes wrong when stopping Otter Server:\n{}",
ExceptionUtils.getFullStackTrace(e));
} finally {
logger.info("INFO ## otter server is down.");