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

Annotation of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/ContextListener.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3067 - (hide annotations) (download)
Thu Jul 21 11:47:57 2016 UTC (7 years, 10 months ago) by torben
File size: 4138 byte(s)
Various small corrections and bump findBugs-maven
1 torben 2274 package dk.daoas.daoadresseservice;
2    
3 torben 2617 import java.io.FileInputStream;
4 torben 2393 import java.io.IOException;
5 torben 2617 import java.io.InputStreamReader;
6     import java.io.Reader;
7     import java.nio.charset.Charset;
8 torben 2393 import java.util.Properties;
9    
10 torben 2274 import javax.servlet.ServletContext;
11     import javax.servlet.ServletContextEvent;
12     import javax.servlet.ServletContextListener;
13 torben 2346 import javax.servlet.ServletRegistration;
14 torben 2274 import javax.servlet.annotation.WebListener;
15    
16 torben 2393 import org.apache.commons.lang3.SystemUtils;
17    
18 torben 2605 import com.jcabi.manifests.Manifests;
19     import com.jcabi.manifests.ServletMfs;
20    
21 torben 2346 import dk.daoas.daoadresseservice.admin.ServiceConfig;
22 torben 2571 import dk.thoerup.circuitbreaker.CircuitBreaker;
23 torben 2352 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
24 torben 2571 import dk.thoerup.circuitbreaker.statistics.AccountingStatistics;
25 torben 2352 import dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase;
26 torben 2346 import dk.thoerup.webconfig.ConfigServlet;
27 torben 2393 import dk.thoerup.webconfig.PropertiesConfigLoader;
28 torben 2346
29 torben 2274 /**
30     * Application Lifecycle Listener implementation class ContextListener
31     *
32     */
33     @WebListener
34     public class ContextListener implements ServletContextListener {
35 torben 2281
36 torben 2393
37 torben 2274
38    
39     public ContextListener() {
40     }
41    
42     public void contextDestroyed(ServletContextEvent ctxtEvt) {
43     }
44 torben 3067
45 torben 2274
46 torben 2608 @Override
47 torben 2274 public void contextInitialized(ServletContextEvent ctxtEvt) {
48     System.out.println("Starting DAO Context");
49    
50 torben 2605
51    
52 torben 2274 ServletContext ctxt = ctxtEvt.getServletContext();
53 torben 2346
54 torben 2393 ServiceConfig conf = null;
55     try {
56     conf = initConfig(ctxt);
57     } catch (IOException e) {
58     System.out.println("Error loading config " + e.getMessage());
59     throw new RuntimeException(e);
60     }
61 torben 2346
62 torben 2352 initDataLoader(ctxt, conf);
63 torben 2351
64 torben 2352 initCircuitBreakers(ctxt, conf);
65 torben 2605
66 torben 2351
67 torben 2605 try {
68     Manifests.DEFAULT.append(new ServletMfs(ctxt));
69     } catch (Exception e) {
70     System.out.println("Error loading config " + e.getMessage());
71     }
72 torben 2352
73 torben 2346 System.out.println("DAO Context done");
74     }
75    
76 torben 2393
77 torben 2346
78    
79 torben 2393 private ServiceConfig initConfig(ServletContext ctxt) throws IOException {
80    
81     final String CONF_FILE_NAME = "daoadresseservice.conf";
82    
83    
84 torben 2346 ServiceConfig conf = new ServiceConfig();
85 torben 2274
86 torben 2393 String file = null;
87     if (SystemUtils.IS_OS_WINDOWS) {
88     file = "C:\\" + CONF_FILE_NAME;
89     } else {
90     file = "/etc/" + CONF_FILE_NAME;
91     }
92    
93     Properties propsFile = new Properties();
94 torben 2617 try ( Reader reader = new InputStreamReader(new FileInputStream(file), Charset.forName("UTF-8")) ) {
95 torben 2393 propsFile.load(reader);
96     }
97    
98 torben 2274
99 torben 2393 new PropertiesConfigLoader(propsFile).loadConfig(conf);
100    
101    
102 torben 2346 ctxt.setAttribute("config", conf);
103 torben 2337
104 torben 2346 // /////////////////////////////////////
105     ConfigServlet servlet = new ConfigServlet();
106     servlet.setConfigObject( conf );
107     ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet );
108     dynconf.addMapping("/ConfigServlet");
109 torben 2351
110 torben 2393 return conf;
111 torben 2274 }
112 torben 2346
113 torben 2393 private void initDataLoader(ServletContext ctxt, ServiceConfig conf) {
114     DataLoader load = new DataLoader(ctxt,conf);
115     ctxt.setAttribute("dataloader", load);
116 torben 2769 load.doLoad( "(re) deploy" );
117 torben 2393 }
118    
119 torben 2352 private void initCircuitBreakers(ServletContext ctxt, ServiceConfig conf) {
120     CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
121    
122 torben 2571 CircuitBreaker osm = new CircuitBreaker("osm", conf);
123     osm.setStatistics( new AccountingStatistics() );
124 torben 2352 mgr.addCircuitBreaker( osm );
125    
126 torben 2571 CircuitBreaker google = new CircuitBreaker("google", conf);
127     google.setStatistics( new AccountingStatistics() );
128 torben 2352 mgr.addCircuitBreaker( google );
129    
130    
131     //
132     CircuitBreakerServletBase servlet = new CircuitBreakerServletBase();
133     ServletRegistration.Dynamic dynconf = ctxt.addServlet("circuitbreaker", servlet);
134     dynconf.addMapping("/CircuitBreakerServlet");
135     dynconf.setInitParameter("readonly", "1");
136    
137     }
138    
139 torben 2274
140     }

  ViewVC Help
Powered by ViewVC 1.1.20