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.14 by tdb, Mon Mar 5 23:13:22 2001 UTC vs.
Revision 1.19 by ajm, Thu Mar 22 22:07:58 2001 UTC

# Line 1 | Line 1
1   //---PACKAGE DECLARATION---
2 < package uk.ac.ukc.iscream.client.alerters;
2 > package uk.org.iscream.client.alerters;
3  
4   //---IMPORTS---
5 < import uk.ac.ukc.iscream.client.*;
6 < import uk.ac.ukc.iscream.core.*;
7 < import uk.ac.ukc.iscream.util.*;
8 < import uk.ac.ukc.iscream.componentmanager.*;
5 > import uk.org.iscream.client.*;
6 > import uk.org.iscream.core.*;
7 > import uk.org.iscream.util.*;
8 > import uk.org.iscream.componentmanager.*;
9  
10   import java.util.*;
11   import java.io.*;
12 + import java.text.*;
13  
14   /**
15   * This alerter delivers alerts using e-mail.
# Line 16 | Line 17 | import java.io.*;
17   * @author  $Author$
18   * @version $Id$
19   */
20 < public class EMail__Alerter implements PluginAlerter {
20 > public class EMail__Alerter extends Thread implements PluginAlerter {
21  
22   //---FINAL ATTRIBUTES---
23  
# Line 37 | Line 38 | public class EMail__Alerter implements PluginAlerter {
38  
39      public EMail__Alerter() {      
40          _logger.write(toString(), Logger.SYSINIT, "IRC Alerter started");
41 +        this.start();
42      }
43  
44   //---PUBLIC METHODS---
# Line 55 | Line 57 | public class EMail__Alerter implements PluginAlerter {
57          if(((alert.getLevel() == 0) && (alert.getLastLevel() >= level)) || (alert.getLevel() >= level)) {
58              String alertType = Alert.alertLevels[alert.getLevel()];
59              String thresholdType = Alert.thresholdLevels[alert.getThreshold()];
60 +            String timeFirstSince = DateUtils.formatTime((System.currentTimeMillis() - alert.getInitialAlertTime())/1000, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs");
61 +            String timeFirstOccured = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date(alert.getInitialAlertTime()));
62 +
63              // sort out the subject
64              String subject;
65              try {
# Line 69 | Line 74 | public class EMail__Alerter implements PluginAlerter {
74              subject = StringUtils.replaceText(subject, "%value%", alert.getValue());
75              subject = StringUtils.replaceText(subject, "%thresholdValue%", alert.getThresholdValue());
76              subject = StringUtils.replaceText(subject, "%attributeName%", alert.getAttributeName());
77 <            subject = StringUtils.replaceText(subject, "%timeTillNextAlert%",  getTimeString(Long.parseLong(alert.getTimeTillNextAlert())));
77 >            subject = StringUtils.replaceText(subject, "%timeTillNextAlert%",  DateUtils.getTimeString(Long.parseLong(alert.getTimeTillNextAlert())));
78 >            subject = StringUtils.replaceText(subject, "%timeSinceFirstAlert%", timeFirstSince);
79 >            subject = StringUtils.replaceText(subject, "%timeOfFirstAlert%", timeFirstOccured);
80                          
81              // sort out the message body
82              String message;
# Line 85 | Line 92 | public class EMail__Alerter implements PluginAlerter {
92              message = StringUtils.replaceText(message, "%value%", alert.getValue());
93              message = StringUtils.replaceText(message, "%thresholdValue%", alert.getThresholdValue());
94              message = StringUtils.replaceText(message, "%attributeName%", alert.getAttributeName());
95 <            message = StringUtils.replaceText(message, "%timeTillNextAlert%",  getTimeString(Long.parseLong(alert.getTimeTillNextAlert())));
95 >            message = StringUtils.replaceText(message, "%timeTillNextAlert%",  DateUtils.getTimeString(Long.parseLong(alert.getTimeTillNextAlert())));
96 >            message = StringUtils.replaceText(message, "%timeSinceFirstAlert%", timeFirstSince);
97 >            message = StringUtils.replaceText(message, "%timeOfFirstAlert%", timeFirstOccured);
98                          
99              try {
100                  // create SMTP message
# Line 93 | Line 102 | public class EMail__Alerter implements PluginAlerter {
102                  // set our sender
103                  smtp.setSender(cp.getProperty(_name, "Alerter.EMail.sender"));
104                  
105 <                // 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 <                }
105 >                String destList = cp.getProperty("Host."+alert.getSource(), "Alerter.EMail.destList");
106                  
107                  // set the to: list
108                  StringTokenizer st = new StringTokenizer(destList, ";");
# Line 132 | Line 134 | public class EMail__Alerter implements PluginAlerter {
134       * Overrides the {@link java.lang.Object#toString() Object.toString()}
135       * method to provide clean logging (every class should have this).
136       *
137 <     * This uses the uk.ac.ukc.iscream.util.NameFormat class
137 >     * This uses the uk.org.iscream.util.NameFormat class
138       * to format the toString()
139       *
140       * @return the name of this class and its CVS revision
# Line 152 | Line 154 | public class EMail__Alerter implements PluginAlerter {
154      }
155  
156   //---PRIVATE METHODS---
157 +    
158 + //---ACCESSOR/MUTATOR METHODS---
159  
160 <    private String getTimeString(long time) {
161 <        String timeString = null;
158 <        if (time >= 60) {
159 <            timeString = (time / 60) + " minutes";
160 <        } else if (time >= 3600) {
161 <            timeString = ((time/60) / 60) + " hours";
162 <        } else {
163 <            timeString = time + " seconds";
164 <        }
165 <        return timeString;
160 >    protected Queue getQueue() {
161 >        return AlerterManager.getInstance().getQueue();
162      }
163      
164 < //---ACCESSOR/MUTATOR METHODS---
164 >    protected int getQueueId() {
165 >        if (_qID == -1) {
166 >            _qID = getQueue().getQueue();
167 >            _logger.write(toString(), Logger.DEBUG, "Assigned Queue - " + _qID);
168 >        }
169 >        return _qID;
170 >    }
171  
172   //---ATTRIBUTES---
173      
# Line 185 | Line 187 | public class EMail__Alerter implements PluginAlerter {
187       * system logger that is being used.
188       */
189      private Logger _logger = ReferenceManager.getInstance().getLogger();
190 +    
191 +    /**
192 +     * The queue id for this alerters queue in the alert queue
193 +     */
194 +    private int _qID = -1;
195 +    
196 +    /**
197 +     * The running status of the alerter
198 +     */
199 +    private boolean _running = true;
200  
201   //---STATIC ATTRIBUTES---
202  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines