package com.dianping.puma.alarm.deploy;
import com.dianping.puma.common.config.ConfigManager;
import com.dianping.puma.common.config.ConfigManagerLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
/**
* Created by xiaotian.li on 16/3/25.
* Email: lixiaotian07@gmail.com
*/
public class PumaAlarmServerLauncher {
private static final Logger logger = LoggerFactory.getLogger(PumaAlarmServerLauncher.class);
private static final String PROPERTIES_FILE_PATH = "puma-alarm.properties";
public static void main(String[] args) throws IOException {
final ConfigManager configManager = ConfigManagerLoader.getConfigManager(PROPERTIES_FILE_PATH);
String springXml = configManager.getConfig(PumaAlarmServerConstant.PUMA_ALARM_SPRING_XML);
final ConfigurableApplicationContext context
= new ClassPathXmlApplicationContext(springXml);
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
try {
logger.info("Shutting down puma alarm server launcher...");
context.close();
} catch (Throwable t) {
logger.warn("Something went wrong when shutting down puma alarm server launcher.", t);
} finally {
logger.info("Puma alarm server launcher is down.");
}
}
}));
}
}