[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