-/**
- * Copyright (c) 2005 UPS_SCS NL
- *
+/*
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.wamblee.crawler.kiss.notification;
-import java.io.ByteArrayOutputStream;
-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.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
import org.dom4j.Element;
-import org.w3c.dom.Document;
-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));
+ }
+
+ /* (non-Javadoc)
+ * @see org.wamblee.crawler.kiss.notification.Notifier#asHtml(org.dom4j.Element)
+ */
+ public String asHtml(Element aReport) throws IOException, TransformerException {
+ return transformReport(aReport, _htmlXslt);
+ }
+
+ /* (non-Javadoc)
+ * @see org.wamblee.crawler.kiss.notification.Notifier#asText(org.dom4j.Element)
+ */
+ public String asText(Element aReport) throws IOException, TransformerException {
+ return transformReport(aReport, _textXslt);
}
}