Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/publisher
In directory 
james.mmbase.org:/tmp/cvs-serv4541/portlets-newsletter/src/java/com/finalist/newsletter/publisher

Modified Files:
        NewsletterPublisher.java NewsletterGenerator.java 
Added Files:
        Personaliser.java 
Log Message:
CMSC-811 update publiser.


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/publisher
See also: http://www.mmbase.org/jira/browse/CMSC-811


Personaliser.java is new





Index: NewsletterGenerator.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/publisher/NewsletterGenerator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- NewsletterGenerator.java    15 Apr 2008 06:38:07 -0000      1.1
+++ NewsletterGenerator.java    17 Apr 2008 02:50:46 -0000      1.2
@@ -10,21 +10,53 @@
 
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
+import org.apache.commons.lang.StringUtils;
 
 import com.finalist.cmsc.mmbase.PropertiesUtil;
 import com.finalist.newsletter.domain.Subscription;
 import com.finalist.newsletter.domain.Publication;
 
-public abstract class NewsletterGenerator {
+public class NewsletterGenerator {
 
    private static Logger log = 
Logging.getLoggerInstance(NewsletterGenerator.class.getName());
 
+   private static String personaliser;
+
+   public void setPersonaliser(String personaliser) {
+      NewsletterGenerator.personaliser = personaliser;
+   }
+
+
    public static void generate(Message message, Publication publication, 
Subscription subscription) throws MessagingException {
       String rawHtmlContent = getContent(publication, 
subscription.getMimeType());
+      rawHtmlContent = personalise(rawHtmlContent, subscription);
       message.setText(rawHtmlContent + "\n");
    }
 
-   protected static String checkUrls(String input) {
+   private static String personalise(String rawHtmlContent, Subscription 
subscription) {
+      String result = rawHtmlContent;
+
+      if (null == personaliser) {
+         personaliser = PropertiesUtil.getProperty("newsletter.personaliser");
+      }
+
+      if (StringUtils.isNotEmpty(personaliser)) {
+         try {
+            Personaliser ps = (Personaliser) 
Class.forName(personaliser).newInstance();
+            result = ps.personalise(rawHtmlContent, subscription);
+         } catch (ClassNotFoundException e) {
+            log.error("No specified personaliser found:" + personaliser, e);
+         } catch (IllegalAccessException e) {
+            log.error(e);
+         } catch (InstantiationException e) {
+            log.error(e);
+         }
+      }
+      return result;
+
+   }
+
+   protected String checkUrls(String input) {
       String hostUrl = getLiveHostUrl();
       String appName = getApplicationName(hostUrl);
 
@@ -34,13 +66,13 @@
       return output;
    }
 
-   private static String getApplicationName(String hostUrl) {
+   private String getApplicationName(String hostUrl) {
       String[] hostUrlParts = hostUrl.split("/");
       String appName = hostUrlParts[hostUrlParts.length - 1];
       return (appName);
    }
 
-   protected static String getContent(Publication publication, String type) {
+   public String getContent(Publication publication, String type) {
 
 
       String inputString = "";
@@ -59,7 +91,7 @@
          int c;
          while ((c = reader.read()) != -1) {
             char character = (char) c;
-            buffer.append("" + character);
+            buffer.append("").append(character);
          }
 
          reader.close();
@@ -73,7 +105,7 @@
       return inputString;
    }
 
-   private static String getLiveHostUrl() {
+   private String getLiveHostUrl() {
       String hostUrl = PropertiesUtil.getProperty("host.live");
       if (hostUrl != null && !hostUrl.endsWith("/")) {
          hostUrl += "/";
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to