/[projects]/miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/notification/MailNotifier.java
ViewVC logotype

Annotation of /miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/notification/MailNotifier.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2569 - (hide annotations) (download)
Tue Jun 9 08:55:10 2015 UTC (8 years, 11 months ago) by torben
File size: 1534 byte(s)
Statistics should be added by composition instead of inheritance
1 torben 1148 package dk.thoerup.circuitbreaker.notification;
2    
3     import java.util.Properties;
4 torben 2569 import java.util.logging.Logger;
5 torben 1148
6     import javax.mail.Message;
7     import javax.mail.Session;
8     import javax.mail.Transport;
9     import javax.mail.internet.InternetAddress;
10     import javax.mail.internet.MimeMessage;
11    
12     import dk.thoerup.circuitbreaker.CircuitBreaker;
13 torben 2569 import dk.thoerup.circuitbreaker.Event;
14 torben 1148
15     public class MailNotifier extends AsyncNotifier {
16    
17    
18     Logger logger = Logger.getLogger(MailNotifier.class.getName());
19    
20     private String recipient;
21     private String from;
22    
23     Properties props;
24    
25 torben 1161 public MailNotifier(String from, String recipient, String mailhost) {
26 torben 1148
27     this.from = from;
28     this.recipient = recipient;
29    
30     props = new Properties();
31     props.put("mail.smtp.host", mailhost);
32     }
33    
34 torben 1155
35 torben 1148 @Override
36 torben 1161 public void sendAsync(CircuitBreaker breaker, Event evnt) {
37 torben 1148 try {
38 torben 1155 if (evnt == Event.BreakerTripped || evnt == Event.BreakerReset) {
39     // create some properties and get the default Session
40     Session session = Session.getDefaultInstance(props, null);
41 torben 1157 session.setDebug(false);
42 torben 1155
43    
44     // create a message
45    
46     MimeMessage msg = new MimeMessage(session);
47     msg.setFrom( new InternetAddress(from) );
48    
49     msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient) );
50 torben 1161 msg.setSubject("Circuitbreaker " + breaker.getName() + " : " + evnt.toString());
51 torben 1155 msg.setText("--");
52    
53     Transport.send(msg);
54     }
55 torben 1148 } catch (Exception e) {
56     logger.warning("Unable to send CircuitBreaker notification mail " + e );
57     }
58     }
59    
60     }

  ViewVC Help
Powered by ViewVC 1.1.20