[jbpm-commits] JBoss JBPM SVN: r4419 - jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Apr 3 12:06:10 EDT 2009
Author: bradsdavis
Date: 2009-04-03 12:06:10 -0400 (Fri, 03 Apr 2009)
New Revision: 4419
Added:
jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/SimpleMailProducer.java
Modified:
jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/MailProducer.java
Log:
Committed idea for simple email producer.
Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/MailProducer.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/MailProducer.java 2009-04-03 15:55:26 UTC (rev 4418)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/MailProducer.java 2009-04-03 16:06:10 UTC (rev 4419)
@@ -2,10 +2,9 @@
import java.util.Collection;
-import javax.mail.Message;
-
+import org.apache.commons.mail.Email;
import org.jbpm.env.Environment;
public interface MailProducer {
- public Collection<Message> produce(final Environment env, final MailContext mailContext) throws Exception;
+ public Collection<Email> produce(final Environment env, final MailContext mailContext) throws Exception;
}
\ No newline at end of file
Added: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/SimpleMailProducer.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/SimpleMailProducer.java (rev 0)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/SimpleMailProducer.java 2009-04-03 16:06:10 UTC (rev 4419)
@@ -0,0 +1,72 @@
+package org.jbpm.pvm.internal.email.producer;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import javax.mail.internet.InternetAddress;
+
+import org.apache.commons.mail.Email;
+import org.apache.commons.mail.EmailException;
+import org.apache.commons.mail.SimpleEmail;
+import org.jbpm.env.Environment;
+import org.jbpm.identity.Group;
+import org.jbpm.identity.User;
+import org.jbpm.pvm.internal.email.resolver.AddressResolver;
+
+public class SimpleMailProducer implements MailProducer {
+
+ @Override
+ public Collection<Email> produce(final Environment env, final MailContext mailContext) throws Exception {
+ //Create a simple email with the body set.
+ Email email = new SimpleEmail();
+
+ //Resolve and populate to, cc, bcc addresses.
+ populateAddresses(mailContext, email);
+
+ //Set subject and message.
+ email.setSubject(mailContext.getSubject());
+ email.setMsg(mailContext.getBody());
+
+ Collection<Email> emails = new HashSet<Email>();
+ emails.add(email);
+
+ return emails;
+ }
+
+ protected void populateAddresses(MailContext mailContext, Email email) throws EmailException
+ {
+ //Add the addresses.
+ for(String a : mailContext.getToAddresses())
+ {
+ email.addTo(a);
+ }
+ for(String a : mailContext.getCcAddresses())
+ {
+ email.addCc(a);
+ }
+ for(String a : mailContext.getBccAddresses())
+ {
+ email.addBcc(a);
+ }
+
+ //Get address resolver.
+ //TODO: Look this up from the jbpm configuration.
+ AddressResolver resolver = null;
+
+ //Resolve actors and groups.
+ for(User user : mailContext.getActors())
+ {
+ InternetAddress address = resolver.resolveUserAddress(user);
+ email.addTo(address.getAddress(), user.getFamilyName()+", "+user.getGivenName());
+ }
+ for(Group group : mailContext.getGroups())
+ {
+ Collection<InternetAddress> addresses = resolver.resolveGroupAddresses(group);
+ for(InternetAddress address : addresses)
+ {
+ email.addTo(address.getAddress());
+ }
+ }
+ }
+
+}
More information about the jbpm-commits
mailing list