--- android/TrainInfoService/src/dk/thoerup/traininfoservice/CircuitBreakerListener.java 2010/06/20 22:10:29 866 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/CircuitBreakerListener.java 2011/04/19 12:44:01 1304 @@ -4,16 +4,20 @@ import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; import dk.thoerup.circuitbreaker.AccountingCircuitBreaker; +import dk.thoerup.circuitbreaker.LoggingCircuitBreaker; import dk.thoerup.circuitbreaker.CircuitBreakerManager; import dk.thoerup.circuitbreaker.jmx.JMXWrapper; -import dk.thoerup.circuitbreaker.notification.JavaLogNotifier; +import dk.thoerup.circuitbreaker.notification.*; + /** * Application Lifecycle Listener implementation class JmxListener * */ +@WebListener public class CircuitBreakerListener implements ServletContextListener { Logger logger = Logger.getLogger(CircuitBreakerListener.class.getName()); @@ -31,11 +35,21 @@ int timeout = Integer.parseInt( sce.getServletContext().getInitParameter("banedk_timeout") ); CircuitBreakerManager mgr = CircuitBreakerManager.getManager(); - AccountingCircuitBreaker banedk = new AccountingCircuitBreaker("banedk", threshold, timeout); - banedk.setNotifier( new JavaLogNotifier() ); - mgr.addCircuitBreaker( banedk ); + CompositeNotifier notif = new CompositeNotifier(); + notif.addNotifier( new JavaLogNotifier() ); + notif.addNotifier( new MailNotifier("traininfo@t-hoerup.dk", "torben@t-hoerup.dk", "192.168.10.5") ); + + + LoggingCircuitBreaker banedk = new LoggingCircuitBreaker("banedk", threshold, timeout); + banedk.setNotifier(notif); + mgr.addCircuitBreaker( banedk ); + + + AccountingCircuitBreaker metro = new AccountingCircuitBreaker("metro", threshold, timeout); + metro.setNotifier(notif); + mgr.addCircuitBreaker( metro ); - JMXWrapper.registerAllCircuitBreakers(); + //JMXWrapper.registerAllCircuitBreakers(); } /** @@ -43,9 +57,9 @@ */ public void contextDestroyed(ServletContextEvent sce) { logger.warning("Context Destroyed"); - CircuitBreakerManager.getManager().removeCircuitBreaker("banedk"); + CircuitBreakerManager.getManager().shutdown(); - JMXWrapper.unregisterAllCircuitBreakers(); + //JMXWrapper.unregisterAllCircuitBreakers(); } }