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

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

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

dao/DaoAdresseService/src/dk/daoas/daoadresseservice/DataLoader.java revision 2351 by torben, Mon Feb 23 15:20:10 2015 UTC dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/DataLoader.java revision 2833 by torben, Tue Jan 19 17:34:59 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.daoadresseservice;  package dk.daoas.daoadresseservice;
2    
3  import java.sql.SQLException;  import java.sql.SQLException;
4    import java.util.Properties;
5    import java.util.logging.Logger;
6    
7    import javax.mail.Message;
8    import javax.mail.MessagingException;
9    import javax.mail.Session;
10    import javax.mail.Transport;
11    import javax.mail.internet.InternetAddress;
12    import javax.mail.internet.MimeMessage;
13  import javax.servlet.ServletContext;  import javax.servlet.ServletContext;
14    
15  import dk.daoas.daoadresseservice.admin.ServiceConfig;  import dk.daoas.daoadresseservice.admin.ServiceConfig;
16    import dk.daoas.daoadresseservice.beans.DataStatisticsBean;
17    import dk.daoas.daoadresseservice.db.DatabaseLayerImplementation;
18    
19  public class DataLoader {  public class DataLoader {
20                    
# Line 19  public class DataLoader { Line 29  public class DataLoader {
29                  config = conf;                  config = conf;
30          }          }
31                    
32          public void doLoad() {          public void doLoad(String trigger) {
33                  synchronized(this) {                  synchronized(this) {
34                          if (isRunning == false) {                          if (isRunning == false) {
35                                  isRunning = true;                                  isRunning = true;
36                                                                    
37                                  Thread t = new Thread( new DataLoadWorker(this), "SearchDataLoader");                                  Thread t = new Thread( new DataLoadWorker(this, trigger), "SearchDataLoader");
38                                  t.start();                                  t.start();
39                          }                          }
40                  }                  }
# Line 46  public class DataLoader { Line 56  public class DataLoader {
56                    
57                    
58          public static class DataLoadWorker implements Runnable {          public static class DataLoadWorker implements Runnable {
59                    
60                    static final Logger logger = Logger.getLogger(DataLoadWorker.class.getName());
61                    
62                  DataLoader loader;                  DataLoader loader;
63                  public DataLoadWorker(DataLoader ld) {                  String trigger;
64                    public DataLoadWorker(DataLoader ld, String trigger) {
65                          this.loader = ld;                          this.loader = ld;
66                            this.trigger = trigger;
67                  }                  }
68                                    
69    
# Line 57  public class DataLoader { Line 72  public class DataLoader {
72                    
73                                    
74                  try {                  try {
75                          AdressSearch search = new AdressSearch(loader.config);                          AddressSearch search = new AddressSearch(new DatabaseLayerImplementation(), loader.config);
76                          search.buildSearchStructures();                          search.buildSearchStructures();
77                                                    
78                          AdressSearch oldSearch = (AdressSearch) loader.ctxt.getAttribute("search");                          AddressSearch oldSearch = (AddressSearch) loader.ctxt.getAttribute("search");
79                          loader.ctxt.setAttribute("search", search);                          loader.ctxt.setAttribute("search", search);
80                                                    
81                            if (loader.config.notifyEmail != null && loader.config.notifyEmail.length() > 0) {
82                                    DataStatisticsBean oldStats = oldSearch != null ? oldSearch.getStatistics() : null;
83                                    sendStatusEmail(search.getStatistics(), oldStats);
84                            }
85                            
86                          if (oldSearch != null) {                          if (oldSearch != null) {
87                                  oldSearch.clear();                                  oldSearch.clear();
88                          }                          }
# Line 75  public class DataLoader { Line 95  public class DataLoader {
95                                    
96                  }                  }
97                                    
98                    protected void sendStatusEmail(DataStatisticsBean newStats, DataStatisticsBean oldStats) {
99                            Properties props = new Properties();
100                            props.put("mail.smtp.host", "10.30.1.28");
101                            
102                            try {
103                                            // create some properties and get the default Session
104                                            Session session = Session.getDefaultInstance(props, null);
105                                            session.setDebug(false);
106                                            
107                                            
108                                            String body = "Trigger: " + trigger + "\r\n\r\n";
109                                            body += "New stats:\r\n";
110                                            
111                                            body += "Direkte:      " + newStats.direkteCount + "\r\n";
112                                            body += "Extended:     " + newStats.extendedCount + "\r\n";
113                                            body += "100%:         " + newStats.hundredePctCount + "\r\n";
114                                            body += "Ikke-daekket: " + newStats.ikkeDaekketCount + "\r\n";
115                                            body += "Total:        " + newStats.totalCount + "\r\n";                                        
116                                            body += "Elapsed:      " + newStats.elapsed + "\r\n";
117                                            
118                                            if (oldStats != null) {
119                                                    body += "\r\n";
120                                                    body += "Delta to previous\r\n";
121                                                    body += "Direkte:      " + (newStats.direkteCount-oldStats.direkteCount) + "\r\n";
122                                                    body += "Extended:     " + (newStats.extendedCount-oldStats.extendedCount) + "\r\n";
123                                                    body += "100:          " + (newStats.hundredePctCount-oldStats.hundredePctCount) + "\r\n";
124                                                    body += "Ikke-daekket: " + (newStats.ikkeDaekketCount-oldStats.ikkeDaekketCount) + "\r\n";
125                                                    body += "Total:        " + (newStats.totalCount-oldStats.totalCount) + "\r\n";
126                                                    
127                                            }
128                                                            
129                                            
130                                            // create a message
131                                            
132                                            MimeMessage msg = new MimeMessage(session);
133                                            msg.setFrom( new InternetAddress("no-reply@daoas.dk") );
134                                            
135                                            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(loader.config.notifyEmail) );
136                                            msg.setSubject("DaoAdresseService load, trigger: " + trigger);                  
137                                            msg.setText(body);
138                                            
139                                            Transport.send(msg);
140                            } catch (MessagingException e) {
141                                    logger.warning("Unable to send CircuitBreaker notification mail " + e );
142                            }
143                    }
144                    
145    
146          }          }
147    

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

  ViewVC Help
Powered by ViewVC 1.1.20