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.webconfig.ConfigServlet; |
11 |
|
import dk.thoerup.webconfig.ContextConfigLoader; |
12 |
|
|
13 |
/** |
/** |
14 |
* Application Lifecycle Listener implementation class ContextListener |
* Application Lifecycle Listener implementation class ContextListener |
15 |
* |
* |
17 |
@WebListener |
@WebListener |
18 |
public class ContextListener implements ServletContextListener { |
public class ContextListener implements ServletContextListener { |
19 |
|
|
|
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()); |
|
|
} |
|
|
} |
|
|
|
|
20 |
|
|
|
} |
|
21 |
|
|
22 |
|
|
23 |
public ContextListener() { |
public ContextListener() { |
28 |
// TODO Auto-generated method stub |
// TODO Auto-generated method stub |
29 |
} |
} |
30 |
|
|
31 |
|
@Override |
32 |
public void contextInitialized(ServletContextEvent ctxtEvt) { |
public void contextInitialized(ServletContextEvent ctxtEvt) { |
33 |
System.out.println("Starting DAO Context"); |
System.out.println("Starting DAO Context"); |
34 |
|
|
35 |
ServletContext ctxt = ctxtEvt.getServletContext(); |
ServletContext ctxt = ctxtEvt.getServletContext(); |
36 |
|
|
37 |
Thread t = new Thread( new DataLoader(ctxt)); |
ServiceConfig conf = initConfig(ctxt); |
38 |
t.start(); |
|
39 |
|
initDataLoader(ctxt,conf); |
40 |
|
|
41 |
|
|
42 |
System.out.println("DAO Context done"); |
System.out.println("DAO Context done"); |
43 |
} |
} |
44 |
|
|
45 |
|
private void initDataLoader(ServletContext ctxt, ServiceConfig conf) { |
46 |
|
DataLoader load = new DataLoader(ctxt,conf); |
47 |
|
ctxt.setAttribute("dataloader", load); |
48 |
|
load.doLoad(); |
49 |
|
} |
50 |
|
|
51 |
|
|
52 |
|
private ServiceConfig initConfig(ServletContext ctxt) { |
53 |
|
ServiceConfig conf = new ServiceConfig(); |
54 |
|
|
55 |
|
new ContextConfigLoader(ctxt).loadConfig(conf); |
56 |
|
|
57 |
|
ctxt.setAttribute("config", conf); |
58 |
|
|
59 |
|
// ///////////////////////////////////// |
60 |
|
ConfigServlet servlet = new ConfigServlet(); |
61 |
|
servlet.setConfigObject( conf ); |
62 |
|
ServletRegistration.Dynamic dynconf = ctxt.addServlet("webconfig", servlet ); |
63 |
|
dynconf.addMapping("/ConfigServlet"); |
64 |
|
|
65 |
|
return conf; |
66 |
|
|
67 |
|
} |
68 |
|
|
69 |
|
|
70 |
} |
} |