package dk.thoerup.traininfoservice; import java.util.logging.Logger; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import dk.thoerup.curcuitbreaker.AccountingCircuitBreaker; import dk.thoerup.curcuitbreaker.CircuitBreaker; import dk.thoerup.curcuitbreaker.CircuitBreakerManager; import dk.thoerup.curcuitbreaker.jmx.JMXWrapper; import dk.thoerup.curcuitbreaker.notification.JavaLogNotifier; /** * Application Lifecycle Listener implementation class JmxListener * */ public class CircuitBreakerListener implements ServletContextListener { Logger logger = Logger.getLogger(CircuitBreakerListener.class.getName()); public CircuitBreakerListener() { } /** * @see ServletContextListener#contextInitialized(ServletContextEvent) */ public void contextInitialized(ServletContextEvent sce) { logger.warning("Context Init"); CircuitBreakerManager mgr = CircuitBreakerManager.getManager(); AccountingCircuitBreaker banedk = new AccountingCircuitBreaker("banedk", 5, 20000); banedk.setNotifier( new JavaLogNotifier() ); mgr.addCircuitBreaker( banedk ); JMXWrapper.registerAllCircuitBreakers(); } /** * @see ServletContextListener#contextDestroyed(ServletContextEvent) */ public void contextDestroyed(ServletContextEvent sce) { logger.warning("Context Destroyed"); JMXWrapper.unregisterAllCircuitBreakers(); } }