/[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 2351 by torben, Mon Feb 23 15:20:10 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/ContextListener.java revision 2571 by torben, Tue Jun 9 09:14:28 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 dk.daoas.daoadresseservice.admin.ServiceConfig;  import dk.daoas.daoadresseservice.admin.ServiceConfig;
16    import dk.thoerup.circuitbreaker.CircuitBreaker;
17    import dk.thoerup.circuitbreaker.CircuitBreakerManager;
18    import dk.thoerup.circuitbreaker.statistics.AccountingStatistics;
19    import dk.thoerup.circuitbreaker.web.CircuitBreakerServletBase;
20  import dk.thoerup.webconfig.ConfigServlet;  import dk.thoerup.webconfig.ConfigServlet;
21  import dk.thoerup.webconfig.ContextConfigLoader;  import dk.thoerup.webconfig.PropertiesConfigLoader;
22    
23  /**  /**
24   * Application Lifecycle Listener implementation class ContextListener   * Application Lifecycle Listener implementation class ContextListener
# Line 17  import dk.thoerup.webconfig.ContextConfi Line 27  import dk.thoerup.webconfig.ContextConfi
27  @WebListener  @WebListener
28  public class ContextListener implements ServletContextListener {  public class ContextListener implements ServletContextListener {
29                    
30            
31    
32    
33      public ContextListener() {      public ContextListener() {
# Line 34  public class ContextListener implements Line 44  public class ContextListener implements
44                    
45          ServletContext ctxt = ctxtEvt.getServletContext();          ServletContext ctxt = ctxtEvt.getServletContext();
46                    
47          ServiceConfig conf = initConfig(ctxt);          ServiceConfig conf = null;
48            try {
49                    conf = initConfig(ctxt);
50            } catch (IOException e) {
51                    System.out.println("Error loading config " + e.getMessage());                  
52                    throw new RuntimeException(e);
53            }
54                    
55          initDataLoader(ctxt,conf);          initDataLoader(ctxt, conf);
56            
57            initCircuitBreakers(ctxt, conf);
58                    
59                    
60          System.out.println("DAO Context done");          System.out.println("DAO Context done");
61      }      }
62            
63      private void initDataLoader(ServletContext ctxt, ServiceConfig conf) {  
         DataLoader load = new DataLoader(ctxt,conf);              
         ctxt.setAttribute("dataloader", load);  
         load.doLoad();  
     }  
64                    
65            
66      private ServiceConfig initConfig(ServletContext ctxt) {      private ServiceConfig initConfig(ServletContext ctxt) throws IOException {
67            
68            final String CONF_FILE_NAME = "daoadresseservice.conf";
69            
70            
71          ServiceConfig conf = new ServiceConfig();          ServiceConfig conf = new ServiceConfig();
72                    
73          new ContextConfigLoader(ctxt).loadConfig(conf);          String file = null;
74            if (SystemUtils.IS_OS_WINDOWS) {
75                    file = "C:\\" + CONF_FILE_NAME;
76            } else {
77                    file = "/etc/" + CONF_FILE_NAME;
78            }
79        
80            Properties propsFile = new Properties();
81            try (FileReader reader = new FileReader(file) ) {
82                    propsFile.load(reader);
83            }
84            
85            
86            new PropertiesConfigLoader(propsFile).loadConfig(conf);
87            
88                    
89          ctxt.setAttribute("config", conf);          ctxt.setAttribute("config", conf);
90                    
# Line 62  public class ContextListener implements Line 94  public class ContextListener implements
94          ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet );          ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet );
95          dynconf.addMapping("/ConfigServlet");          dynconf.addMapping("/ConfigServlet");
96                    
97          return conf;              return conf;            
98                }
99        
100        private void initDataLoader(ServletContext ctxt, ServiceConfig conf) {
101            DataLoader load = new DataLoader(ctxt,conf);            
102            ctxt.setAttribute("dataloader", load);
103            load.doLoad();
104      }      }
105            
106        private void initCircuitBreakers(ServletContext ctxt, ServiceConfig conf) {
107            CircuitBreakerManager mgr = CircuitBreakerManager.getManager();
108            
109            CircuitBreaker osm = new CircuitBreaker("osm", conf);
110            osm.setStatistics( new AccountingStatistics() );
111            mgr.addCircuitBreaker( osm );
112            
113            CircuitBreaker google = new CircuitBreaker("google", conf);
114            google.setStatistics( new AccountingStatistics() );
115            mgr.addCircuitBreaker( google );
116            
117            
118            //
119            CircuitBreakerServletBase servlet = new CircuitBreakerServletBase();
120            ServletRegistration.Dynamic dynconf = ctxt.addServlet("circuitbreaker", servlet);
121            dynconf.addMapping("/CircuitBreakerServlet");
122            dynconf.setInitParameter("readonly", "1");
123    
124        }
125            
126                    
127  }  }

Legend:
Removed from v.2351  
changed lines
  Added in v.2571

  ViewVC Help
Powered by ViewVC 1.1.20