(no commit message)
[utils] / crawler / kiss / src / org / wamblee / crawler / kiss / notification / MailNotifier.java
index 1c970a7151f11f1260583a873636299b3397ab5b..3b6431d763db1ec78e290fba51bf185e2a1309e0 100644 (file)
@@ -1,11 +1,20 @@
-/**
- * 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;
@@ -16,13 +25,8 @@ import javax.xml.transform.TransformerException;
 
 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.
@@ -41,6 +45,8 @@ public class MailNotifier implements Notifier {
     private String _textXslt;
 
     private MailServer _server;
+    
+    private XslTransformer _transformer;
 
     /**
      * Constructs the notifier.
@@ -57,15 +63,17 @@ public class MailNotifier implements 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;
     }
 
     /*
@@ -84,10 +92,8 @@ public class MailNotifier implements Notifier {
             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);
@@ -117,9 +123,9 @@ public class MailNotifier implements Notifier {
      * @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));
     }
 }