[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