/[projects]/dao/DaoAdresseService/src/dk/daoas/daoadresseservice/ContextListener.java
ViewVC logotype

Contents of /dao/DaoAdresseService/src/dk/daoas/daoadresseservice/ContextListener.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2352 - (show annotations) (download)
Mon Feb 23 15:49:00 2015 UTC (9 years, 2 months ago) by torben
File size: 2885 byte(s)
Implement circuitbreakers around webservices
1 package dk.daoas.daoadresseservice;
2
3 import javax.servlet.ServletContext;
4 import javax.servlet.ServletContextEvent;
5 import javax.servlet.ServletContextListener;
6 import javax.servlet.ServletRegistration;
7 import javax.servlet.annotation.WebListener;
8
9 import dk.daoas.daoadresseservice.admin.ServiceConfig;
10 import dk.thoerup.circuitbreaker.AccountingCircuitBreaker;
11 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
12 import dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase;
13 import dk.thoerup.webconfig.ConfigServlet;
14 import dk.thoerup.webconfig.ContextConfigLoader;
15
16 /**
17 * Application Lifecycle Listener implementation class ContextListener
18 *
19 */
20 @WebListener
21 public class ContextListener implements ServletContextListener {
22
23
24
25
26 public ContextListener() {
27 // TODO Auto-generated constructor stub
28 }
29
30 public void contextDestroyed(ServletContextEvent ctxtEvt) {
31 // TODO Auto-generated method stub
32 }
33
34 @Override
35 public void contextInitialized(ServletContextEvent ctxtEvt) {
36 System.out.println("Starting DAO Context");
37
38 ServletContext ctxt = ctxtEvt.getServletContext();
39
40 ServiceConfig conf = initConfig(ctxt);
41
42 initDataLoader(ctxt, conf);
43
44 initCircuitBreakers(ctxt, conf);
45
46
47 System.out.println("DAO Context done");
48 }
49
50 private void initDataLoader(ServletContext ctxt, ServiceConfig conf) {
51 DataLoader load = new DataLoader(ctxt,conf);
52 ctxt.setAttribute("dataloader", load);
53 load.doLoad();
54 }
55
56
57 private ServiceConfig initConfig(ServletContext ctxt) {
58 ServiceConfig conf = new ServiceConfig();
59
60 new ContextConfigLoader(ctxt).loadConfig(conf);
61
62 ctxt.setAttribute("config", conf);
63
64 // /////////////////////////////////////
65 ConfigServlet servlet = new ConfigServlet();
66 servlet.setConfigObject( conf );
67 ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet );
68 dynconf.addMapping("/ConfigServlet");
69
70 return conf;
71
72 }
73
74 private void initCircuitBreakers(ServletContext ctxt, ServiceConfig conf) {
75 CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
76
77 AccountingCircuitBreaker osm = new AccountingCircuitBreaker("osm", conf);
78 mgr.addCircuitBreaker( osm );
79
80 AccountingCircuitBreaker google = new AccountingCircuitBreaker("google", conf);
81 mgr.addCircuitBreaker( google );
82
83
84 //
85 CircuitBreakerServletBase servlet = new CircuitBreakerServletBase();
86 ServletRegistration.Dynamic dynconf = ctxt.addServlet("circuitbreaker", servlet);
87 dynconf.addMapping("/CircuitBreakerServlet");
88 dynconf.setInitParameter("readonly", "1");
89
90 }
91
92
93 }

  ViewVC Help
Powered by ViewVC 1.1.20