Here are the changes I was talking about before regarding making the
SMTPAppender friendlier to extension. The patch is against rev 1.22 in CVS.
Specific changes:
* Private members are declared to be private.
* Private members that is needed by subclasses (like the CyclicBuffer,
TriggerEventEvaluator and Message objects) now have protected methods for
setting and getting them.
* The Session member was removed as a member because it's only used in one
method, and therefore made local.
-Jim Moore
====================================
--- SMTPAppender.old Sat May 19 17:06:16 2001
+++ SMTPAppender.java Fri Apr 13 10:04:24 2001
@@ -48,12 +48,11 @@
public class SMTPAppender extends AppenderSkeleton {
- String to;
- String from;
- String subject;
- String smtpHost;
- int bufferSize = 512;
+ private String to;
+ private String from;
+ private String subject;
+ private String smtpHost;
+ private int bufferSize = 512;
- CyclicBuffer cb = new CyclicBuffer(bufferSize);
- Session session;
- Message msg;
- boolean locationInfo = false;
+ private CyclicBuffer _cb;
+ private Message _msg;
+ private boolean locationInfo = false;
@@ -166,2 +165,3 @@
this.evaluator = evaluator;
+ setCyclicBuffer(new CyclicBuffer(bufferSize));
}
@@ -194,5 +194,5 @@
- session = Session.getDefaultInstance(props, null);
+ Session session = Session.getDefaultInstance(props, null);
//session.setDebug(true);
- msg = new MimeMessage(session);
+ MimeMessage msg = new MimeMessage(session);
@@ -210,2 +210,4 @@
}
+
+ setMessage(msg);
}
@@ -228,3 +230,3 @@
}
- cb.add(event);
+ getCyclicBuffer().add(event);
if(evaluator.isTriggeringEvent(event)) {
@@ -242,3 +244,3 @@
boolean checkEntryConditions() {
- if(this.msg == null) {
+ if(getMessage() == null) {
errorHandler.error("Message object not configured.");
@@ -320,2 +322,3 @@
sbuf.append(t);
+ CyclicBuffer cb = getCyclicBuffer();
int len = cb.length();
@@ -341,2 +344,3 @@
mp.addBodyPart(part);
+ Message msg = getMessage();
msg.setContent(mp);
@@ -350,3 +354,34 @@
+ /**
+ * Sets the CyclicBuffer this will use for keeping track
+ * of {@link LoggingEvent}s.
+ *
+ * @param cb the CyclicBuffer to store the events in
+ */
+ protected void setCyclicBuffer(CyclicBuffer cb) {
+ _cb = cb;
+ }
+
+ /**
+ * Returns the CyclicBuffer the {@link LoggingEvent}s are stored in.
+ */
+ protected CyclicBuffer getCyclicBuffer() {
+ return _cb;
+ }
+
+ /**
+ * Sets the Message object used for sending the emails.
+ *
+ * @param msg the Message object to use for the emails.
+ */
+ protected void setMessage(Message msg) {
+ _msg = msg;
+ }
+ /**
+ * Gets the Message object used for sending the emails.
+ */
+ protected Message getMessage() {
+ return _msg;
+ }
@@ -361,2 +396,10 @@
/**
+ Returns the TriggeringEventEvaluator this uses.
+ */
+ protected
+ TriggeringEventEvaluator getEvaluator() {
+ return evaluator;
+ }
+
+ /**
Returns value of the <b>From</b> option.
@@ -400,3 +443,3 @@
bufferSize = OptionConverter.toInt(value, bufferSize);
- cb.resize(bufferSize);
+ getCyclicBuffer().resize(bufferSize);
} else if (option.equals(LOCATION_INFO_OPTION))
@@ -437,3 +480,3 @@
this.bufferSize = bufferSize;
- cb.resize(bufferSize);
+ getCyclicBuffer().resize(bufferSize);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]