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

Modified Files:
        NewsletterPublicationServiceImpl.java 
Log Message:
CMSC-811 ,Newsletter<Usecase>:Create a newsletter publication


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


Index: NewsletterPublicationServiceImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterPublicationServiceImpl.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- NewsletterPublicationServiceImpl.java       20 May 2008 09:49:52 -0000      
1.16
+++ NewsletterPublicationServiceImpl.java       22 May 2008 10:35:34 -0000      
1.17
@@ -1,6 +1,7 @@
 package com.finalist.newsletter.services.impl;
 
 import com.finalist.cmsc.services.community.person.Person;
+import com.finalist.newsletter.NewsletterSendFailException;
 import com.finalist.newsletter.cao.NewsLetterStatisticCAO;
 import com.finalist.newsletter.cao.NewsletterCAO;
 import com.finalist.newsletter.cao.NewsletterPublicationCAO;
@@ -15,8 +16,11 @@
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
 public class NewsletterPublicationServiceImpl implements 
NewsletterPublicationService {
@@ -75,10 +79,12 @@
     *
     * @param publicationId The id of the publication to be sent out
     */
-   public void deliver(int publicationId) {
+   public Map<String,List<String>> deliver(int publicationId) {
 
       int newsletterId = publicationCAO.getNewsletterId(publicationId);
-      
+      List<String> sendSuccess = new ArrayList<String>();
+      List<String> sendFails = new ArrayList<String>() ;
+      Map<String,List<String>> sendResults = new 
HashMap<String,List<String>>();
       List<Subscription> subscriptions = 
subscriptionCAO.getSubscription(newsletterId);
       log.debug("deliver publication " + publicationId + " which has " + 
subscriptions.size() + " subscriptions");
 
@@ -89,11 +95,21 @@
          Person subscripber = 
CommunityModuleAdapter.getUserById(subscription.getSubscriberId());
          subscription.setEmail(subscripber.getEmail());
          subscription.setTerms(terms);
+         try {
          publisher.deliver(publication, subscription);
+            sendSuccess.add(subscription.getSubscriberId());
       }
-
+         catch (NewsletterSendFailException e) {
+            sendFails.add(subscription.getSubscriberId());
+            log.error(e.getMessage());
+         }
+      }
+      sendResults.put(SEND_SUCCESS, sendSuccess);
+      sendResults.put(SEND_FAIL, sendFails);
      
       publicationCAO.setStatus(publicationId, STATUS.DELIVERED);
+      publicationCAO.renamePublicationTitle(publicationId);
+      return sendResults;
    }
 
    public int countAllPublications() {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to