*/
package org.wamblee.crawler.kiss.notification;
-import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.dom4j.Element;
-import org.wamblee.io.FileResource;
-import org.wamblee.io.InputResource;
-import org.wamblee.xml.XSLT;
+import org.wamblee.xml.XslTransformer;
/**
* A notifier that uses SMTP to notify users by mail.
private String _textXslt;
private MailServer _server;
+
+ private XslTransformer _transformer;
/**
* Constructs the notifier.
* XSLT file to transform the report into text.
* @param aServer
* Mail server to use.
+ * @param aTransformer Transformer to use.
*/
public MailNotifier(String aFrom, String aTo, String aSubject,
- String aHtmlXslt, String aTextXslt, MailServer aServer) {
+ String aHtmlXslt, String aTextXslt, MailServer aServer, XslTransformer aTransformer) {
_from = aFrom;
_to = aTo;
_subject = aSubject;
_htmlXslt = aHtmlXslt;
_textXslt = aTextXslt;
_server = aServer;
+ _transformer = aTransformer;
}
/*
mail.setSentDate(new Date());
mail.setSubject(_subject);
- String htmlText = transformReport(aReport, new FileResource(
- new File(_htmlXslt)));
- String plainText = transformReport(aReport, new FileResource(
- new File(_textXslt)));
+ String htmlText = transformReport(aReport, _htmlXslt);
+ String plainText = transformReport(aReport, _textXslt);
mail.setHtmlMsg(htmlText);
mail.setTextMsg(plainText);
* @throws TransformerException
* In case of problems transforming.
*/
- private String transformReport(Element aReport, InputResource aXslt)
+ private String transformReport(Element aReport, String aXslt)
throws IOException, TransformerException {
String reportXmlText = aReport.asXML();
- return new XSLT().textTransform(reportXmlText.getBytes(), aXslt);
+ return _transformer.textTransform(reportXmlText.getBytes(), _transformer.resolve(aXslt));
}
}