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

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

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

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/ContextListener.java revision 2352 by torben, Mon Feb 23 15:49:00 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/ContextListener.java revision 2605 by torben, Tue Jul 14 08:32:56 2015 UTC
# Line 1  Line 1 
1  package dk.daoas.daoadresseservice;  package dk.daoas.daoadresseservice;
2    
3    import java.io.FileReader;
4    import java.io.IOException;
5    import java.util.Properties;
6    
7  import javax.servlet.ServletContext;  import javax.servlet.ServletContext;
8  import javax.servlet.ServletContextEvent;  import javax.servlet.ServletContextEvent;
9  import javax.servlet.ServletContextListener;  import javax.servlet.ServletContextListener;
10  import javax.servlet.ServletRegistration;  import javax.servlet.ServletRegistration;
11  import javax.servlet.annotation.WebListener;  import javax.servlet.annotation.WebListener;
12    
13    import org.apache.commons.lang3.SystemUtils;
14    
15    import com.jcabi.manifests.Manifests;
16    import com.jcabi.manifests.ServletMfs;
17    
18  import dk.daoas.daoadresseservice.admin.ServiceConfig;  import dk.daoas.daoadresseservice.admin.ServiceConfig;
19  import dk.thoerup.circuitbreaker.AccountingCircuitBreaker;  import dk.thoerup.circuitbreaker.CircuitBreaker;
20  import dk.thoerup.circuitbreaker.CircuitBreakerManager;  import dk.thoerup.circuitbreaker.CircuitBreakerManager;
21    import dk.thoerup.circuitbreaker.statistics.AccountingStatistics;
22  import dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase;  import dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase;
23  import dk.thoerup.webconfig.ConfigServlet;  import dk.thoerup.webconfig.ConfigServlet;
24  import dk.thoerup.webconfig.ContextConfigLoader;  import dk.thoerup.webconfig.PropertiesConfigLoader;
25    
26  /**  /**
27   * Application Lifecycle Listener implementation class ContextListener   * Application Lifecycle Listener implementation class ContextListener
# Line 20  import dk.thoerup.webconfig.ContextConfi Line 30  import dk.thoerup.webconfig.ContextConfi
30  @WebListener  @WebListener
31  public class ContextListener implements ServletContextListener {  public class ContextListener implements ServletContextListener {
32                    
33            
34    
35    
36      public ContextListener() {      public ContextListener() {
# Line 31  public class ContextListener implements Line 41  public class ContextListener implements
41           // TODO Auto-generated method stub           // TODO Auto-generated method stub
42      }      }
43    
44      @Override      @SuppressWarnings("deprecation")
45            @Override
46      public void contextInitialized(ServletContextEvent ctxtEvt)  {      public void contextInitialized(ServletContextEvent ctxtEvt)  {
47          System.out.println("Starting DAO Context");          System.out.println("Starting DAO Context");
48                    
49            
50            
51          ServletContext ctxt = ctxtEvt.getServletContext();          ServletContext ctxt = ctxtEvt.getServletContext();
52                    
53          ServiceConfig conf = initConfig(ctxt);          ServiceConfig conf = null;
54            try {
55                    conf = initConfig(ctxt);
56            } catch (IOException e) {
57                    System.out.println("Error loading config " + e.getMessage());                  
58                    throw new RuntimeException(e);
59            }
60                    
61          initDataLoader(ctxt, conf);          initDataLoader(ctxt, conf);
62                    
63          initCircuitBreakers(ctxt, conf);          initCircuitBreakers(ctxt, conf);
64    
65                    
66            try {
67                    Manifests.DEFAULT.append(new ServletMfs(ctxt));
68            } catch (Exception e) {
69                    System.out.println("Error loading config " + e.getMessage());
70            }
71                    
72          System.out.println("DAO Context done");          System.out.println("DAO Context done");
73      }      }
74            
75      private void initDataLoader(ServletContext ctxt, ServiceConfig conf) {  
         DataLoader load = new DataLoader(ctxt,conf);              
         ctxt.setAttribute("dataloader", load);  
         load.doLoad();  
     }  
76                    
77            
78      private ServiceConfig initConfig(ServletContext ctxt) {      private ServiceConfig initConfig(ServletContext ctxt) throws IOException {
79            
80            final String CONF_FILE_NAME = "daoadresseservice.conf";
81            
82            
83          ServiceConfig conf = new ServiceConfig();          ServiceConfig conf = new ServiceConfig();
84                    
85          new ContextConfigLoader(ctxt).loadConfig(conf);          String file = null;
86            if (SystemUtils.IS_OS_WINDOWS) {
87                    file = "C:\\" + CONF_FILE_NAME;
88            } else {
89                    file = "/etc/" + CONF_FILE_NAME;
90            }
91        
92            Properties propsFile = new Properties();
93            try (FileReader reader = new FileReader(file) ) {
94                    propsFile.load(reader);
95            }
96            
97            
98            new PropertiesConfigLoader(propsFile).loadConfig(conf);
99            
100                    
101          ctxt.setAttribute("config", conf);          ctxt.setAttribute("config", conf);
102                    
# Line 67  public class ContextListener implements Line 106  public class ContextListener implements
106          ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet );          ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet );
107          dynconf.addMapping("/ConfigServlet");          dynconf.addMapping("/ConfigServlet");
108                    
109          return conf;              return conf;            
110                }
111        
112        private void initDataLoader(ServletContext ctxt, ServiceConfig conf) {
113            DataLoader load = new DataLoader(ctxt,conf);            
114            ctxt.setAttribute("dataloader", load);
115            load.doLoad();
116      }      }
117            
118      private void initCircuitBreakers(ServletContext ctxt, ServiceConfig conf) {      private void initCircuitBreakers(ServletContext ctxt, ServiceConfig conf) {
119          CircuitBreakerManager mgr = CircuitBreakerManager.getManager();          CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
120                    
121          AccountingCircuitBreaker osm = new AccountingCircuitBreaker("osm", conf);          CircuitBreaker osm = new CircuitBreaker("osm", conf);
122            osm.setStatistics( new AccountingStatistics() );
123          mgr.addCircuitBreaker( osm );          mgr.addCircuitBreaker( osm );
124                    
125          AccountingCircuitBreaker google = new AccountingCircuitBreaker("google", conf);          CircuitBreaker google = new CircuitBreaker("google", conf);
126            google.setStatistics( new AccountingStatistics() );
127          mgr.addCircuitBreaker( google );          mgr.addCircuitBreaker( google );
128                    
129                    

Legend:
Removed from v.2352  
changed lines
  Added in v.2605

  ViewVC Help
Powered by ViewVC 1.1.20