ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/client/alerters/EMail__Alerter.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/client/alerters/EMail__Alerter.java (file contents):
Revision 1.9 by ajm, Sun Mar 4 02:41:16 2001 UTC vs.
Revision 1.14 by tdb, Mon Mar 5 23:13:22 2001 UTC

# Line 27 | Line 27 | public class EMail__Alerter implements PluginAlerter {
27      
28      public final String DESC = "Sends alerts over e-mail.";
29      
30 +    public final String DEFAULT_LEVEL = Alert.alertLevels[0];
31 +    
32 +    public final String NOT_CONFIGURED = "<NOT CONFIGURED>";
33 +    
34   //---STATIC METHODS---
35  
36   //---CONSTRUCTORS---
# Line 39 | Line 43 | public class EMail__Alerter implements PluginAlerter {
43  
44      public void sendAlert(Alert alert) {
45          ConfigurationProxy cp = ConfigurationProxy.getInstance();
46 <        String levelName = cp.getProperty(_name, "Alerter.EMail.level");
46 >        String levelName;
47 >        try {
48 >            levelName = cp.getProperty(_name, "Alerter.EMail.level");
49 >        } catch (PropertyNotFoundException e) {
50 >            levelName = DEFAULT_LEVEL;
51 >            _logger.write(toString(), Logger.WARNING, "Alerter.EMail.level value unavailable using default of " + levelName);
52 >        }
53          int level = StringUtils.getStringPos(levelName, Alert.alertLevels);
54          // only send if it's equal (or above) our level
55 <        if(alert.getLevel() >= level) {
55 >        if(((alert.getLevel() == 0) && (alert.getLastLevel() >= level)) || (alert.getLevel() >= level)) {
56              String alertType = Alert.alertLevels[alert.getLevel()];
57              String thresholdType = Alert.thresholdLevels[alert.getThreshold()];
58              // sort out the subject
59 <            String subject = cp.getProperty(_name, "Alerter.EMail.subject");
59 >            String subject;
60 >            try {
61 >                subject = cp.getProperty(_name, "Alerter.EMail.subject");
62 >            } catch (PropertyNotFoundException e) {
63 >                subject = NOT_CONFIGURED;
64 >                _logger.write(toString(), Logger.WARNING, "Alerter.EMail.subject value unavailable using default of " + subject);
65 >            }
66              subject = StringUtils.replaceText(subject, "%level%", alertType);
67              subject = StringUtils.replaceText(subject, "%threshold%", thresholdType);
68              subject = StringUtils.replaceText(subject, "%source%", alert.getSource());
# Line 56 | Line 72 | public class EMail__Alerter implements PluginAlerter {
72              subject = StringUtils.replaceText(subject, "%timeTillNextAlert%",  getTimeString(Long.parseLong(alert.getTimeTillNextAlert())));
73                          
74              // sort out the message body
75 <            String message = cp.getProperty(_name, "Alerter.EMail.message");
75 >            String message;
76 >            try {
77 >                message = cp.getProperty(_name, "Alerter.EMail.message");
78 >            } catch (PropertyNotFoundException e) {
79 >                message = NOT_CONFIGURED;
80 >                _logger.write(toString(), Logger.WARNING, "Alerter.EMail.message value unavailable using default of " + message);
81 >            }
82              message = StringUtils.replaceText(message, "%level%", alertType);
83              message = StringUtils.replaceText(message, "%threshold%", thresholdType);
84              message = StringUtils.replaceText(message, "%source%", alert.getSource());
# Line 71 | Line 93 | public class EMail__Alerter implements PluginAlerter {
93                  // set our sender
94                  smtp.setSender(cp.getProperty(_name, "Alerter.EMail.sender"));
95                  
96 <                // set the to list
97 <                StringTokenizer st = new StringTokenizer(cp.getProperty(_name, "Alerter.EMail.destList"), ";");
96 >                // get the default destination list
97 >                String destList = cp.getProperty(_name, "Alerter.EMail.defaultDestList");
98 >                // check if the source we're alerting about has a specific destination
99 >                String sourceDestList = cp.getProperty("Host."+alert.getSource(), "Alerter.EMail.destList");
100 >                if(sourceDestList != null) {
101 >                    // if there is a source destination list, use it
102 >                    destList = sourceDestList;
103 >                }
104 >                
105 >                // set the to: list
106 >                StringTokenizer st = new StringTokenizer(destList, ";");
107                  while (st.hasMoreTokens()) {
108                      smtp.setTo(st.nextToken());
109                  }
# Line 86 | Line 117 | public class EMail__Alerter implements PluginAlerter {
117                  out.println(message);
118                  smtp.sendMessage();
119                  smtp.close();
120 <                _logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ levelName + " level");
120 >                _logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ alertType + " level");
121              }
122              catch(IOException e) {
123                  _logger.write(toString(), Logger.ERROR, "Error whilst sending message: "+e);
124 +            }
125 +            catch(PropertyNotFoundException e) {
126 +                _logger.write(toString(), Logger.ERROR, "Error obtaining essential configuration: "+e);
127              }
128          }
129      }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines