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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1867 - (show annotations) (download)
Mon Oct 29 10:36:15 2012 UTC (11 years, 6 months ago) by torben
File size: 2791 byte(s)
switch trininfo to a Logging circuit breaker
1 package dk.thoerup.traininfoservice;
2
3 import java.util.logging.Logger;
4
5 import javax.servlet.ServletContextEvent;
6 import javax.servlet.ServletContextListener;
7 import javax.servlet.ServletRegistration;
8 import javax.servlet.annotation.WebListener;
9
10 import dk.thoerup.circuitbreaker.AccountingCircuitBreaker;
11 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
12 import dk.thoerup.circuitbreaker.LoggingCircuitBreaker;
13 import dk.thoerup.circuitbreaker.notification.CompositeNotifier;
14 import dk.thoerup.circuitbreaker.notification.JavaLogNotifier;
15 import dk.thoerup.circuitbreaker.notification.MailNotifier;
16
17
18 /**
19 * Application Lifecycle Listener implementation class JmxListener
20 *
21 */
22 @WebListener
23 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 TraininfoSettings settings = SettingsListener.loadSettings( sce.getServletContext() );
37
38 CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
39
40 CompositeNotifier notif = new CompositeNotifier();
41 notif.addNotifier( new JavaLogNotifier() );
42
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 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 /**
74 * @see ServletContextListener#contextDestroyed(ServletContextEvent)
75 */
76 public void contextDestroyed(ServletContextEvent sce) {
77 logger.warning("Context Destroyed");
78 CircuitBreakerManager.getManager().shutdown();
79
80 //JMXWrapper.unregisterAllCircuitBreakers();
81 }
82
83 }

  ViewVC Help
Powered by ViewVC 1.1.20