/[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

revision 2281 by torben, Fri Feb 13 15:12:28 2015 UTC revision 2352 by torben, Mon Feb 23 15:49:00 2015 UTC
# Line 1  Line 1 
1  package dk.daoas.daoadresseservice;  package dk.daoas.daoadresseservice;
2    
 import java.sql.SQLException;  
   
3  import javax.servlet.ServletContext;  import javax.servlet.ServletContext;
4  import javax.servlet.ServletContextEvent;  import javax.servlet.ServletContextEvent;
5  import javax.servlet.ServletContextListener;  import javax.servlet.ServletContextListener;
6    import javax.servlet.ServletRegistration;
7  import javax.servlet.annotation.WebListener;  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   * Application Lifecycle Listener implementation class ContextListener
18   *   *
# Line 14  import javax.servlet.annotation.WebListe Line 20  import javax.servlet.annotation.WebListe
20  @WebListener  @WebListener
21  public class ContextListener implements ServletContextListener {  public class ContextListener implements ServletContextListener {
22                    
         public static class DataLoader implements Runnable {  
                 ServletContext ctxt;  
                 public DataLoader(ServletContext ctxt) {  
                         this.ctxt = ctxt;  
                 }  
                   
   
                 @Override  
                 public void run() {  
                   
                 AdressSearch search = new AdressSearch();  
                 try {  
                         search.buildSearchStructures();  
                         ctxt.setAttribute("search", search);  
                 } catch (SQLException e) {  
                         System.out.println("Error loading data: " + e.getMessage());  
                 }  
                 }  
                   
23    
         }  
24    
25    
26      public ContextListener() {      public ContextListener() {
# Line 45  public class ContextListener implements Line 31  public class ContextListener implements
31           // TODO Auto-generated method stub           // TODO Auto-generated method stub
32      }      }
33    
34        @Override
35      public void contextInitialized(ServletContextEvent ctxtEvt)  {      public void contextInitialized(ServletContextEvent ctxtEvt)  {
36          System.out.println("Starting DAO Context");          System.out.println("Starting DAO Context");
37                    
38          ServletContext ctxt = ctxtEvt.getServletContext();          ServletContext ctxt = ctxtEvt.getServletContext();
39                    
40          Thread t = new Thread( new DataLoader(ctxt));          ServiceConfig conf = initConfig(ctxt);
41          t.start();                
42            initDataLoader(ctxt, conf);
43            
44            initCircuitBreakers(ctxt, conf);
45            
46                    
47          System.out.println("DAO Context done");          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  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20