/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/CircuitBreakerListener.java
ViewVC logotype

Diff of /android/TrainInfoService/src/dk/thoerup/traininfoservice/CircuitBreakerListener.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 498 by torben, Wed Nov 4 19:18:29 2009 UTC revision 1867 by torben, Mon Oct 29 10:36:15 2012 UTC
# Line 4  import java.util.logging.Logger; Line 4  import java.util.logging.Logger;
4    
5  import javax.servlet.ServletContextEvent;  import javax.servlet.ServletContextEvent;
6  import javax.servlet.ServletContextListener;  import javax.servlet.ServletContextListener;
7    import javax.servlet.ServletRegistration;
8    import javax.servlet.annotation.WebListener;
9    
10  import dk.thoerup.circuitbreaker.AccountingCircuitBreaker;  import dk.thoerup.circuitbreaker.AccountingCircuitBreaker;
11  import dk.thoerup.circuitbreaker.CircuitBreakerManager;  import dk.thoerup.circuitbreaker.CircuitBreakerManager;
12  import dk.thoerup.circuitbreaker.jmx.JMXWrapper;  import dk.thoerup.circuitbreaker.LoggingCircuitBreaker;
13    import dk.thoerup.circuitbreaker.notification.CompositeNotifier;
14  import dk.thoerup.circuitbreaker.notification.JavaLogNotifier;  import dk.thoerup.circuitbreaker.notification.JavaLogNotifier;
15    import dk.thoerup.circuitbreaker.notification.MailNotifier;
16    
17    
18  /**  /**
19   * Application Lifecycle Listener implementation class JmxListener   * Application Lifecycle Listener implementation class JmxListener
20   *   *
21   */   */
22    @WebListener
23  public class CircuitBreakerListener implements ServletContextListener {  public class CircuitBreakerListener implements ServletContextListener {
24    
25          Logger logger = Logger.getLogger(CircuitBreakerListener.class.getName());          Logger logger = Logger.getLogger(CircuitBreakerListener.class.getName());
# Line 27  public class CircuitBreakerListener impl Line 33  public class CircuitBreakerListener impl
33      public void contextInitialized(ServletContextEvent sce) {      public void contextInitialized(ServletContextEvent sce) {
34          logger.warning("Context Init");          logger.warning("Context Init");
35                    
36            TraininfoSettings settings = SettingsListener.loadSettings( sce.getServletContext() );
37    
38          CircuitBreakerManager mgr = CircuitBreakerManager.getManager();          CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
39                    
40                  AccountingCircuitBreaker banedk = new AccountingCircuitBreaker("banedk", 5, 60000);                  CompositeNotifier notif = new CompositeNotifier();
41                  banedk.setNotifier( new JavaLogNotifier() );                  notif.addNotifier( new JavaLogNotifier() );
42                  mgr.addCircuitBreaker( banedk );                                  
43                    //only send mail on prod server
44                    if (sce.getServletContext().getRealPath("/").startsWith("/home/app/")  ) {
45                            String mailRecipient = settings.getMailRecipient();
46                            
47                            if (mailRecipient != null && (!mailRecipient.isEmpty() ) ) {
48                                    notif.addNotifier( new MailNotifier("traininfo@t-hoerup.dk", mailRecipient, "192.168.10.5") );
49                            }
50            }
51            
52                    LoggingCircuitBreaker banedk = new LoggingCircuitBreaker("banedk", settings);
53                    banedk.setNotifier(notif);
54                    mgr.addCircuitBreaker( banedk );
55                    
56                    
57                    AccountingCircuitBreaker metro = new AccountingCircuitBreaker("metro", settings);
58                    metro.setNotifier(notif);
59                    mgr.addCircuitBreaker( metro );
60                                    
61                  JMXWrapper.registerAllCircuitBreakers();                  LoggingCircuitBreaker tritinfo = new LoggingCircuitBreaker("tritinfo", settings);
62                    tritinfo.setNotifier(notif);
63                    mgr.addCircuitBreaker( tritinfo );
64                    
65                    
66                    ServletRegistration.Dynamic dynconf = sce.getServletContext().addServlet("circuitbreaker", dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase.class );
67                    dynconf.addMapping("/CircuitBreakerServlet");
68                    dynconf.setInitParameter("readonly", "0");
69                    
70                    //JMXWrapper.registerAllCircuitBreakers();
71      }      }
72    
73          /**          /**
# Line 41  public class CircuitBreakerListener impl Line 75  public class CircuitBreakerListener impl
75       */       */
76      public void contextDestroyed(ServletContextEvent sce) {      public void contextDestroyed(ServletContextEvent sce) {
77          logger.warning("Context Destroyed");          logger.warning("Context Destroyed");
78          JMXWrapper.unregisterAllCircuitBreakers();          CircuitBreakerManager.getManager().shutdown();
79    
80            //JMXWrapper.unregisterAllCircuitBreakers();
81      }      }
82                    
83  }  }

Legend:
Removed from v.498  
changed lines
  Added in v.1867

  ViewVC Help
Powered by ViewVC 1.1.20