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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1832 - (hide annotations) (download)
Mon Aug 20 21:15:37 2012 UTC (11 years, 9 months ago) by torben
File size: 2797 byte(s)
First attempt at tritinfo integration
1 torben 421 package dk.thoerup.traininfoservice;
2    
3     import java.util.logging.Logger;
4    
5     import javax.servlet.ServletContextEvent;
6     import javax.servlet.ServletContextListener;
7 torben 1308 import javax.servlet.ServletRegistration;
8 torben 959 import javax.servlet.annotation.WebListener;
9 torben 421
10 torben 468 import dk.thoerup.circuitbreaker.AccountingCircuitBreaker;
11 torben 1308 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
12 torben 1286 import dk.thoerup.circuitbreaker.LoggingCircuitBreaker;
13 torben 1308 import dk.thoerup.circuitbreaker.notification.CompositeNotifier;
14     import dk.thoerup.circuitbreaker.notification.JavaLogNotifier;
15     import dk.thoerup.circuitbreaker.notification.MailNotifier;
16 torben 421
17 torben 1156
18 torben 421 /**
19     * Application Lifecycle Listener implementation class JmxListener
20     *
21     */
22 torben 959 @WebListener
23 torben 421 public class CircuitBreakerListener implements ServletContextListener {
24    
25     Logger logger = Logger.getLogger(CircuitBreakerListener.class.getName());
26    
27     public CircuitBreakerListener() {
28     }
29    
30     /**
31     * @see ServletContextListener#contextInitialized(ServletContextEvent)
32     */
33     public void contextInitialized(ServletContextEvent sce) {
34     logger.warning("Context Init");
35    
36 torben 1316 TraininfoSettings settings = SettingsListener.loadSettings( sce.getServletContext() );
37    
38 torben 421 CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
39    
40 torben 1162 CompositeNotifier notif = new CompositeNotifier();
41     notif.addNotifier( new JavaLogNotifier() );
42 torben 1399
43     //only send mail on prod server
44 torben 1607 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 torben 1399 }
51 torben 1156
52 torben 1316 LoggingCircuitBreaker banedk = new LoggingCircuitBreaker("banedk", settings);
53 torben 1156 banedk.setNotifier(notif);
54 torben 1042 mgr.addCircuitBreaker( banedk );
55 torben 421
56 torben 1162
57 torben 1316 AccountingCircuitBreaker metro = new AccountingCircuitBreaker("metro", settings);
58 torben 1162 metro.setNotifier(notif);
59 torben 1042 mgr.addCircuitBreaker( metro );
60    
61 torben 1832 AccountingCircuitBreaker tritinfo = new AccountingCircuitBreaker("tritinfo", settings);
62     tritinfo.setNotifier(notif);
63     mgr.addCircuitBreaker( tritinfo );
64 torben 1308
65 torben 1832
66 torben 1308 ServletRegistration.Dynamic dynconf = sce.getServletContext().addServlet("circuitbreaker", dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase.class );
67     dynconf.addMapping("/CircuitBreakerServlet");
68     dynconf.setInitParameter("readonly", "0");
69    
70 torben 1304 //JMXWrapper.registerAllCircuitBreakers();
71 torben 421 }
72    
73     /**
74     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
75     */
76     public void contextDestroyed(ServletContextEvent sce) {
77     logger.warning("Context Destroyed");
78 torben 1156 CircuitBreakerManager.getManager().shutdown();
79 torben 866
80 torben 1304 //JMXWrapper.unregisterAllCircuitBreakers();
81 torben 421 }
82    
83     }

  ViewVC Help
Powered by ViewVC 1.1.20