import org.wamblee.xml.XSLT;
/**
- * A notifier that uses SMTP to notify users by mail.
- *
+ * A notifier that uses SMTP to notify users by mail.
+ *
*/
public class MailNotifier implements Notifier {
-
+
private String _from;
+
private String _to;
+
private String _subject;
+
private String _htmlXslt;
+
private String _textXslt;
+
private MailServer _server;
-
+
/**
- * Constructs the notifier.
+ * 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.
+ * @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,
+ public MailNotifier(String aFrom, String aTo, String aSubject,
String aHtmlXslt, String aTextXslt, MailServer aServer) {
_from = aFrom;
_to = aTo;
_subject = aSubject;
_htmlXslt = aHtmlXslt;
- _textXslt = aTextXslt;
+ _textXslt = aTextXslt;
_server = aServer;
}
/*
- * (non-Javadoc)
+ * (non-Javadoc)
+ *
* @see org.wamblee.crawler.kiss.Notifier#send(org.dom4j.Element)
*/
- public void send( Element aReport ) throws NotificationException {
+ public void send(Element aReport) throws NotificationException {
HtmlEmail mail = new HtmlEmail();
try {
mail.setFrom(_from);
- mail.setTo(Arrays.asList(new InternetAddress[] { new InternetAddress(_to) }));
+ mail
+ .setTo(Arrays
+ .asList(new InternetAddress[] { new InternetAddress(
+ _to) }));
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, new FileResource(
+ new File(_htmlXslt)));
+ String plainText = transformReport(aReport, new FileResource(
+ new File(_textXslt)));
+
mail.setHtmlMsg(htmlText);
mail.setTextMsg(plainText);
-
+
_server.send(mail);
- }
- catch (EmailException e) {
+ } catch (EmailException e) {
throw new NotificationException(e.getMessage(), e);
- } catch (TransformerException e) {
+ } catch (TransformerException e) {
throw new NotificationException(e.getMessage(), e);
- } catch (IOException e) {
+ } catch (IOException e) {
throw new NotificationException(e.getMessage(), e);
- } catch (AddressException e) {
+ } catch (AddressException e) {
throw new NotificationException(e.getMessage(), e);
}
}
/**
* 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.
+ *
+ * @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 {
+ 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);
}
}