[jbpm-commits] JBoss JBPM SVN: r4523 - jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Apr 9 15:42:06 EDT 2009


Author: bradsdavis
Date: 2009-04-09 15:42:06 -0400 (Thu, 09 Apr 2009)
New Revision: 4523

Modified:
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/HtmlScriptMailProducer.java
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/ScriptMailProducer.java
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/SimpleMailProducer.java
Log:
Added simple attachment support.

Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/HtmlScriptMailProducer.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/HtmlScriptMailProducer.java	2009-04-09 19:16:25 UTC (rev 4522)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/HtmlScriptMailProducer.java	2009-04-09 19:42:06 UTC (rev 4523)
@@ -3,6 +3,7 @@
 import java.util.Collection;
 import java.util.Date;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -29,7 +30,7 @@
 	private static final Pattern imgSrcPattern = Pattern.compile("<img[^>]*(src=['\"](\\S+)['\"])[^>]*",Pattern.CASE_INSENSITIVE);
 	private static final Log log = LogFactory.getLog(HtmlScriptMailProducer.class);
 	
-	protected String html;
+	protected String html; 
 	
 	public Collection<Email> produce(Execution exe, MailContext mailContext) throws Exception {
 

Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/ScriptMailProducer.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/ScriptMailProducer.java	2009-04-09 19:16:25 UTC (rev 4522)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/ScriptMailProducer.java	2009-04-09 19:42:06 UTC (rev 4523)
@@ -1,6 +1,7 @@
 package org.jbpm.pvm.internal.email.producer.impl;
 
 import java.util.Collection;
+import java.util.Map;
 
 import org.apache.commons.mail.Email;
 import org.jbpm.Execution;
@@ -29,6 +30,16 @@
 		this.text = (String)scriptManager.evaluateScript(this.text, exe, language);
 		this.subject = (String)scriptManager.evaluateScript(this.subject, exe, language);
 		
+		if(urlAttachments!=null)
+		{
+			for(String urlKey : urlAttachments.keySet())
+			{
+				String url = urlAttachments.get(urlKey);
+				url = (String)scriptManager.evaluateScript(url, exe, language);
+				urlAttachments.put(urlKey, url);
+			}
+		}
+		
 		//Populate and produce email based on SimpleMailProducer logic now that fields
 		//have been resolved using the JBPM script manager.
 		return super.produce(exe, mailContext);
@@ -37,4 +48,5 @@
 	public void setLanguage(String language) {
 		this.language = language;
 	}
+
 }

Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/SimpleMailProducer.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/SimpleMailProducer.java	2009-04-09 19:16:25 UTC (rev 4522)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/SimpleMailProducer.java	2009-04-09 19:42:06 UTC (rev 4523)
@@ -1,12 +1,17 @@
 package org.jbpm.pvm.internal.email.producer.impl;
 
+import java.net.URL;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Map;
 
 import javax.mail.internet.InternetAddress;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.commons.mail.Email;
 import org.apache.commons.mail.EmailException;
+import org.apache.commons.mail.MultiPartEmail;
 import org.apache.commons.mail.SimpleEmail;
 import org.jbpm.Execution;
 import org.jbpm.env.Environment;
@@ -23,13 +28,25 @@
  */
 public class SimpleMailProducer implements MailProducer {
 
+	private final static Log log = LogFactory.getLog(SimpleMailProducer.class);
+	
 	protected String text;
 	protected String subject;
+	protected Map<String,String> urlAttachments;
 	
 	public Collection<Email> produce(final Execution exe, final MailContext mailContext) throws Exception {
 		//Create a simple email with the body set.
-		Email email = new SimpleEmail();
+		Email email;
 		
+		if(urlAttachments!=null&&!urlAttachments.isEmpty())
+		{
+			email = new MultiPartEmail();
+		}
+		else
+		{
+			email = new SimpleEmail();
+		}
+		
 		//Resolve and populate to, cc, bcc addresses.
 		populateAddresses(mailContext, email);
 
@@ -37,6 +54,21 @@
 		email.setSubject(subject);
 		email.setMsg(text);
 		
+		if(urlAttachments!=null)
+		{
+			for(String urlKey : urlAttachments.keySet())
+			{
+				try {
+					URL url = new URL(urlAttachments.get(urlKey));
+					((MultiPartEmail)email).attach(url,urlKey,urlKey);
+				}
+				catch(EmailException urlException)
+				{
+					log.error("Exception getting the URL.",urlException);
+				}
+			}
+		}
+		
 		Collection<Email> emails = new HashSet<Email>();
 		emails.add(email);
 		
@@ -67,6 +99,7 @@
 				email.addBcc(a);
 			}
 		}
+		
 		//Get address resolver.
 		AddressResolver resolver = Environment.getFromCurrent(AddressResolver.class);;
 		
@@ -123,4 +156,7 @@
 		this.subject = subject;
 	}
 
+	public void setUrlAttachments(Map<String, String> urlAttachments) {
+		this.urlAttachments = urlAttachments;
+	}
 }




More information about the jbpm-commits mailing list