import org.wamblee.io.InputResource;
import org.wamblee.xml.XSLT;
+/**
+ * A notifier that uses SMTP to notify users by mail.
+ *
+ */
public class MailNotifier implements Notifier {
private String _from;
private String _textXslt;
private MailServer _server;
+ /**
+ * Constructs the notifier.
+ *
+ * @param aFrom Sender mail address to use.
+ * @param aTo Recipient mail address to use.
+ * @param aSubject Subject to use in the email.
+ * @param aHtmlXslt XSLT file to transform the report into HTML.
+ * @param aTextXslt XSLT file to transform the report into text.
+ * @param aServer Mail server to use.
+ */
public MailNotifier( String aFrom, String aTo, String aSubject,
String aHtmlXslt, String aTextXslt, MailServer aServer) {
_from = aFrom;
_server = aServer;
}
+ /*
+ * (non-Javadoc)
+ * @see org.wamblee.crawler.kiss.Notifier#send(org.dom4j.Element)
+ */
public void send( Element aReport ) throws NotificationException {
HtmlEmail mail = new HtmlEmail();
try {
String htmlText = transformReport( aReport, new FileResource(new File(_htmlXslt)) );
String plainText = transformReport( aReport, new FileResource(new File(_textXslt)) );
+
+
mail.setHtmlMsg(htmlText);
mail.setTextMsg(plainText);
}
/**
- * @param aReport
- * @return
- * @throws IOException
- * @throws TransformerException
+ * Transforms a report into a destination format.
+ * @param aReport Report to transform
+ * @param aXslt XSLT to use.
+ * @return Transformed result.
+ * @throws IOException In case of IO problems.
+ * @throws TransformerException In case of problems transforming.
*/
private String transformReport( Element aReport, InputResource aXslt ) throws IOException, TransformerException {
String reportXmlText = aReport.asXML();
- Document document = new XSLT().transform(reportXmlText.getBytes(), aXslt);
- ByteArrayOutputStream transformed = new ByteArrayOutputStream();
- XMLSerializer serializer = new XMLSerializer(transformed, new OutputFormat());
- serializer.serialize(document);
- return transformed.toString();
+ return new XSLT().textTransform(reportXmlText.getBytes(), aXslt);
}
-
- /**
- * @param args
- */
- public static void main( String[] args ) {
- // TODO Auto-generated method stub
-
- }
-
}