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/IRC__Alerter.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/client/alerters/IRC__Alerter.java (file contents):
Revision 1.23 by tdb, Fri Mar 16 17:13:49 2001 UTC vs.
Revision 1.26 by tdb, Sat Mar 24 03:47:50 2001 UTC

# Line 6 | Line 6 | import uk.org.iscream.client.*;
6   import uk.org.iscream.core.*;
7   import uk.org.iscream.util.*;
8   import uk.org.iscream.componentmanager.*;
9
9   import java.io.*;
10   import java.net.*;
11   import java.util.*;
12 < import java.text.*;
12 > import java.text.DateFormat;
13  
14   /**
15   * This Alert sends an IRC message.
# Line 21 | Line 20 | import java.text.*;
20   * @author  $Author$
21   * @version $Id$
22   */
23 < public class IRC__Alerter implements PluginAlerter {
23 > public class IRC__Alerter extends AlerterSkeleton {
24  
25   //---FINAL ATTRIBUTES---
26  
# Line 40 | Line 39 | public class IRC__Alerter implements PluginAlerter {
39       */
40      public final int DEFAULT_RECONNECT_DELAY = 30;
41      
43    public final String DEFAULT_LEVEL = Alert.alertLevels[0];
44    
45    public final String NOT_CONFIGURED = "<NOT CONFIGURED>";
46    
42   //---STATIC METHODS---
43  
44   //---CONSTRUCTORS---
45  
46      public IRC__Alerter() {
47 <                        
47 >        super();
48          // connect to the IRC server
49          _ircbot = new IRCBot();
50          // set it's name and start it
51          _ircbot.setName("client.IRC__Alerter$IRCBot");
52          _ircbot.start();
53          _startTime = System.currentTimeMillis();
59        
54          _logger.write(toString(), Logger.SYSINIT, "IRC Alerter started");
55      }
56  
57   //---PUBLIC METHODS---
58  
59 +    /**
60 +     * Implements the abstract method from the skeleton class.
61 +     * This method will attempt to send an alert
62 +     * message over the IRC channel.
63 +     *
64 +     * @param alert the alert to send
65 +     */
66      public void sendAlert(Alert alert) {
67          // only send alerts if we're active
68          if(_active) {
69 <            ConfigurationProxy cp = ConfigurationProxy.getInstance();
70 <            
71 <            String levelName;
69 >            // sort out the message      
70 >            String alertType = Alert.alertLevels[alert.getLevel()];        
71 >            String message;
72              try {
73 <                levelName = cp.getProperty(_name, "Alerter.IRC.level");
73 >                message = _cp.getProperty(_name, "Alerter.IRC.message");
74              } catch (PropertyNotFoundException e) {
75 <                levelName = DEFAULT_LEVEL;
76 <                _logger.write(toString(), Logger.WARNING, "Alerter.IRC.level value unavailable using default of " + levelName);
75 >                message = NOT_CONFIGURED;
76 >                _logger.write(toString(), Logger.WARNING, "Alerter.IRC.message value unavailable using default of " + message);
77              }
78 <            int level = StringUtils.getStringPos(levelName, Alert.alertLevels);
79 <            // only send if it's equal (or above) our level
80 <            if(((alert.getLevel() == 0) && (alert.getLastLevel() >= level)) || (alert.getLevel() >= level)) {
81 <                String alertType = Alert.alertLevels[alert.getLevel()];
82 <                String thresholdType = Alert.thresholdLevels[alert.getThreshold()];
83 <                String timeFirstSince = DateUtils.formatTime((System.currentTimeMillis() - alert.getInitialAlertTime())/1000, "%DAYS% days, %HOURS% hours, %MINS% mins, and %SECS% secs");
84 <                String timeFirstOccured = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).format(new Date(alert.getInitialAlertTime()));
85 <                // sort out the message              
86 <                String message;
87 <                try {
87 <                    message = cp.getProperty(_name, "Alerter.IRC.message");
88 <                } catch (PropertyNotFoundException e) {
89 <                    message = NOT_CONFIGURED;
90 <                    _logger.write(toString(), Logger.WARNING, "Alerter.IRC.message value unavailable using default of " + message);
91 <                }
92 <                
93 <                message = StringUtils.replaceText(message, "%level%", alertType);
94 <                message = StringUtils.replaceText(message, "%threshold%", thresholdType);
95 <                message = StringUtils.replaceText(message, "%source%", alert.getSource());
96 <                message = StringUtils.replaceText(message, "%value%", alert.getValue());
97 <                message = StringUtils.replaceText(message, "%thresholdValue%", alert.getThresholdValue());
98 <                message = StringUtils.replaceText(message, "%attributeName%", alert.getAttributeName());
99 <                message = StringUtils.replaceText(message, "%timeTillNextAlert%",  DateUtils.getTimeString(Long.parseLong(alert.getTimeTillNextAlert())));
100 <                message = StringUtils.replaceText(message, "%timeSinceFirstAlert%", timeFirstSince);
101 <                message = StringUtils.replaceText(message, "%timeOfFirstAlert%", timeFirstOccured);
102 <                
103 <                // send the message
104 <                _logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ alertType + " level");
105 <                _ircbot.sendMsg(message);
106 <                _lastAlert = message;
107 <                _lastAlertTime = System.currentTimeMillis();
108 <                _alertCount ++;
109 <            }
78 >            message = processAlertMessage(message, alert);                
79 >            
80 >            // send the message
81 >            _logger.write(toString(), Logger.DEBUG, "Sending " + _name + " at "+ alertType + " level");
82 >            _ircbot.sendMsg(message);
83 >            // count sent alerts
84 >            _alertCount++;
85 >        } else {
86 >            // don't send, but keep a count that we ignored it
87 >            _ignoredCount++;
88          }
89 <        else {
90 <            _ignoredCount ++;
91 <        }
89 >        // we'll always store the "last alert", regardless
90 >        // of whether we actually display it or not
91 >        _lastAlert = message;
92 >        _lastAlertTime = System.currentTimeMillis();
93      }
94  
95      /**
# Line 129 | Line 108 | public class IRC__Alerter implements PluginAlerter {
108              REVISION);
109      }
110  
111 <    /**
112 <     * return the String representation of what the filter does
111 >    /**
112 >     * Return the String representation of what the alerter does
113 >     *
114 >     * @return the description
115       */
116      public String getDescription(){
117          return DESC;
# Line 186 | Line 167 | public class IRC__Alerter implements PluginAlerter {
167       * can be placed here.  This name could also
168       * be changed to null for utility classes.
169       */
170 <    private String _name = "IRC Alert";
170 >    private String _name = "IRC";
171  
191    /**
192     * This holds a reference to the
193     * system logger that is being used.
194     */
195    private Logger _logger = ReferenceManager.getInstance().getLogger();
196
172   //---STATIC ATTRIBUTES---
173  
174   //---INNER CLASSES---
# Line 653 | Line 628 | public class IRC__Alerter implements PluginAlerter {
628           * A reminder of our current nickname...
629           */
630          private String _nickname;
631 +        
632 +        /**
633 +         * This holds a reference to the
634 +         * system logger that is being used.
635 +         */
636 +        protected Logger _logger = ReferenceManager.getInstance().getLogger();
637          
638      }
639  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines