[jbpm-commits] JBoss JBPM SVN: r4492 - in jbpm4/branches/email: modules/pvm and 5 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Apr 7 17:00:22 EDT 2009


Author: alex.guizar at jboss.com
Date: 2009-04-07 17:00:21 -0400 (Tue, 07 Apr 2009)
New Revision: 4492

Added:
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailServer.java
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SyncMailSession.java
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/spi/
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/spi/MailSession.java
Removed:
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailService.java
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SynchronousMailService.java
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/server/
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/service/
Modified:
   jbpm4/branches/email/modules/pvm/pom.xml
   jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailSessionBinding.java
   jbpm4/branches/email/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/MailSessionWireTest.java
   jbpm4/branches/email/pom.xml
Log:
rename MailService to MailSession
merge SmtpServer into MailServerConfiguration

Modified: jbpm4/branches/email/modules/pvm/pom.xml
===================================================================
--- jbpm4/branches/email/modules/pvm/pom.xml	2009-04-07 19:44:17 UTC (rev 4491)
+++ jbpm4/branches/email/modules/pvm/pom.xml	2009-04-07 21:00:21 UTC (rev 4492)
@@ -57,6 +57,10 @@
     </dependency>
 
     <dependency>
+      <groupId>commons-email</groupId>
+      <artifactId>commons-email</artifactId>
+    </dependency>
+    <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
     </dependency>
@@ -109,19 +113,6 @@
       <artifactId>servlet-api</artifactId>
       <scope>provided</scope>
     </dependency>
-    <dependency>
-    	<groupId>javax.mail</groupId>
-    	<artifactId>mail</artifactId>
-    	<version>1.4.1</version>
-    	<type>jar</type>
-    	<scope>provided</scope>
-    </dependency>
-    <dependency>
-    	<groupId>commons-email</groupId>
-    	<artifactId>commons-email</artifactId>
-    	<version>1.2-SNAPSHOT</version>
-    	<scope>compile</scope> 
-    </dependency>
   </dependencies>
 
   <!-- Plugins -->

Copied: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl (from rev 4428, jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/service)

Copied: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailServer.java (from rev 4428, jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/server/MailServerConfiguration.java)
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailServer.java	                        (rev 0)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailServer.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -0,0 +1,38 @@
+package org.jbpm.pvm.internal.email.impl;
+
+import java.util.Properties;
+
+import javax.mail.Session;
+
+import org.jbpm.pvm.internal.email.filter.AddressFilter;
+
+/**
+ * Settings for establishing a session with a mail server.
+ * 
+ * @author Brad Davis
+ */
+public class MailServer {
+
+	private AddressFilter addressFilter;
+	private Properties sessionProperties;
+
+	public AddressFilter getAddressFilter() {
+		return addressFilter;
+	}
+
+	protected void setAddressFilter(AddressFilter filter) {
+		this.addressFilter = filter;
+	}
+
+	public Properties getSessionProperties() {
+		return sessionProperties;
+	}
+
+	protected void setSessionProperties(Properties sessionProperties) {
+		this.sessionProperties = sessionProperties;
+	}
+
+	public Session createMailSession() {
+		return Session.getDefaultInstance(sessionProperties, null);
+	}
+}

Deleted: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailService.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/service/MailService.java	2009-04-03 17:38:06 UTC (rev 4428)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailService.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -1,9 +0,0 @@
-package org.jbpm.pvm.internal.email.service;
-
-import java.util.Collection;
-
-import org.apache.commons.mail.Email;
-
-public interface MailService {
-	public void send(Collection<Email> emails);
-}

Copied: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SyncMailSession.java (from rev 4471, jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/service/SynchronousMailService.java)
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SyncMailSession.java	                        (rev 0)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SyncMailSession.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -0,0 +1,66 @@
+package org.jbpm.pvm.internal.email.impl;
+
+import java.util.Collection;
+
+import javax.mail.Session;
+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.jbpm.pvm.internal.email.filter.AddressFilter;
+import org.jbpm.pvm.internal.email.spi.MailSession;
+
+public class SyncMailSession implements MailSession {
+
+	private Collection<MailServer> mailServers;
+
+	private static final Log log = LogFactory.getLog(SyncMailSession.class);
+
+	public void send(Collection<Email> emails) {
+
+		// Emails need to have the sessions populated.
+		for (Email email : emails) {
+			Collection<InternetAddress> to = email.getToAddresses();
+			Collection<InternetAddress> cc = email.getCcAddresses();
+			Collection<InternetAddress> bcc = email.getBccAddresses();
+
+			for (MailServer mailServer : mailServers) {
+				AddressFilter addressFilter = mailServer.getAddressFilter();
+				Session mailSession = mailServer.createMailSession();
+				email.setMailSession(mailSession);
+
+				// Need to apply filter.
+				try {
+					Collection<InternetAddress> toFiltered = addressFilter.filter(to);
+					Collection<InternetAddress> ccFiltered = addressFilter.filter(cc);
+					Collection<InternetAddress> bccFiltered = addressFilter.filter(bcc);
+
+					// Set the email with the new filtered addresses.
+					email.setTo(toFiltered);
+					email.setCc(ccFiltered);
+					email.setBcc(bccFiltered);
+
+					// If there is someone to send it to, then send it.
+					if (!(toFiltered.isEmpty() && ccFiltered.isEmpty() && bccFiltered.isEmpty())) {
+						email.send();
+					}
+				}
+				catch (EmailException e) {
+					log.error("An exception occurred while sending email.", e);
+					// TODO: Does anything else need to occur here?
+				}
+			}
+		}
+	}
+
+	public Collection<MailServer> getMailServers() {
+		return mailServers;
+	}
+
+	protected void setMailServers(Collection<MailServer> mailServers) {
+		this.mailServers = mailServers;
+	}
+
+}

Deleted: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SynchronousMailService.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/service/SynchronousMailService.java	2009-04-03 17:38:06 UTC (rev 4428)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SynchronousMailService.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -1,107 +0,0 @@
-package org.jbpm.pvm.internal.email.service;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-
-import javax.mail.Address;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMessage.RecipientType;
-
-import org.apache.commons.mail.Email;
-import org.apache.commons.mail.EmailException;
-import org.jbpm.pvm.internal.email.filter.AddressFilter;
-import org.jbpm.pvm.internal.email.server.MailServerConfiguration;
-import org.jbpm.pvm.internal.email.server.SmtpServer;
-
-public class SynchronousMailService implements MailService {
-
-	Collection<MailServerConfiguration> serverConfigs;
-	
-	@Override
-	public void send(Collection<Email> emails) {
-
-		//Emails need to have the sessions populated.
-		for(Email email : emails)
-		{
-			Collection<InternetAddress> to = new HashSet<InternetAddress>();
-			Collection<InternetAddress> cc = new HashSet<InternetAddress>();
-			Collection<InternetAddress> bcc = new HashSet<InternetAddress>();
-			
-			MimeMessage message = email.getMimeMessage();
-			try {
-				for(Address addr : Arrays.asList(message.getRecipients(RecipientType.TO)))
-				{
-					if(addr instanceof InternetAddress)
-					{
-						to.add((InternetAddress)addr);
-					}
-				}
-				for(Address addr : Arrays.asList(message.getRecipients(RecipientType.CC)))
-				{
-					if(addr instanceof InternetAddress)
-					{
-						cc.add((InternetAddress)addr);
-					}
-				}
-				for(Address addr : Arrays.asList(message.getRecipients(RecipientType.BCC)))
-				{
-					if(addr instanceof InternetAddress)
-					{
-						bcc.add((InternetAddress)addr);
-					}
-				}
-				
-			}
-			catch(MessagingException e)
-			{
-				
-			}
-			
-			
-			for(MailServerConfiguration config : serverConfigs)
-			{
-				AddressFilter addressFilter = config.getFilter();
-				SmtpServer server = config.getServer();
-				
-				if(server!=null)
-				{
-					Session smtpSession = config.getServer().createSmtpSession();
-					email.setMailSession(smtpSession);
-					
-					//Need to apply filter.
-					try {
-						Collection<InternetAddress> toFiltered = addressFilter.filter(to);
-						Collection<InternetAddress> ccFiltered = addressFilter.filter(cc);
-						Collection<InternetAddress> bccFiltered = addressFilter.filter(bcc);
-						
-						//Set the email with the new filtered addresses.
-						email.setTo(toFiltered);
-						email.setCc(ccFiltered);
-						email.setBcc(bccFiltered);
-						
-						//If there is someone to send it to, then send it.
-						if((toFiltered!=null&&!toFiltered.isEmpty())||
-								(ccFiltered!=null&&!ccFiltered.isEmpty())||
-								(bccFiltered!=null&&!bccFiltered.isEmpty()))
-						{
-							email.send();
-						}
-					}
-					catch(EmailException e)
-					{
-						//TODO: What to do here?
-					}
-				}
-			}
-			
-			
-		}
-		
-		
-	}
-	
-}

Copied: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/spi/MailSession.java (from rev 4428, jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/service/MailService.java)
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/spi/MailSession.java	                        (rev 0)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/spi/MailSession.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -0,0 +1,9 @@
+package org.jbpm.pvm.internal.email.spi;
+
+import java.util.Collection;
+
+import org.apache.commons.mail.Email;
+
+public interface MailSession {
+	public void send(Collection<Email> emails);
+}

Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailSessionBinding.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailSessionBinding.java	2009-04-07 19:44:17 UTC (rev 4491)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailSessionBinding.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -25,10 +25,9 @@
 import java.util.List;
 
 import org.jbpm.pvm.internal.email.filter.WildCardAddressFilter;
-import org.jbpm.pvm.internal.email.server.MailServerConfiguration;
-import org.jbpm.pvm.internal.email.server.SmtpServer;
-import org.jbpm.pvm.internal.email.service.MailService;
-import org.jbpm.pvm.internal.email.service.SynchronousMailService;
+import org.jbpm.pvm.internal.email.impl.MailServer;
+import org.jbpm.pvm.internal.email.impl.SyncMailSession;
+import org.jbpm.pvm.internal.email.spi.MailSession;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.wire.Descriptor;
 import org.jbpm.pvm.internal.wire.descriptor.CollectionDescriptor;
@@ -41,7 +40,7 @@
 import org.w3c.dom.Element;
 
 /**
- * Parses a descriptor for creating a {@link MailService}.
+ * Parses a descriptor for creating a {@link MailSession}.
  * 
  * @author Alejandro Guizar
  */
@@ -57,15 +56,13 @@
 		// mail servers
 		List<Descriptor> serverDescriptors = new ArrayList<Descriptor>();
 		for (Element serverElement : XmlUtil.elements(element, "mail-server")) {
-			// smtp properties
-			Element smtpElement = XmlUtil.element(serverElement, "smtp-properties");
+			// mail session properties
+			Element smtpElement = XmlUtil.element(serverElement, "session-properties");
 			PropertiesDescriptor propertiesDescriptor = propertiesBinding.parse(smtpElement, parse,
 					parser);
-			ObjectDescriptor smtpDescriptor = new ObjectDescriptor(SmtpServer.class);
-			smtpDescriptor.addInjection("properties", propertiesDescriptor);
 
 			// address filter
-			Element filterElement = XmlUtil.element(serverElement, "wildcard-address-filter");
+			Element filterElement = XmlUtil.element(serverElement, "address-filter");
 
 			// includes
 			List<Descriptor> includeDescriptors = new ArrayList<Descriptor>();
@@ -89,9 +86,9 @@
 			filterDescriptor.addInjection("excludePatterns", excludesDescriptor);
 
 			// mail server
-			ObjectDescriptor serverDescriptor = new ObjectDescriptor(MailServerConfiguration.class);
-			serverDescriptor.addInjection("server", smtpDescriptor);
-			serverDescriptor.addInjection("filter", filterDescriptor);
+			ObjectDescriptor serverDescriptor = new ObjectDescriptor(MailServer.class);
+			serverDescriptor.addInjection("addressFilter", filterDescriptor);
+			serverDescriptor.addInjection("sessionProperties", propertiesDescriptor);
 			serverDescriptors.add(serverDescriptor);
 		}
 
@@ -100,8 +97,8 @@
 		serversDescriptor.setValueDescriptors(serverDescriptors);
 
 		// mail session
-		ObjectDescriptor sessionDescriptor = new ObjectDescriptor(SynchronousMailService.class);
-		sessionDescriptor.addInjection("serverConfigs", serversDescriptor);
+		ObjectDescriptor sessionDescriptor = new ObjectDescriptor(SyncMailSession.class);
+		sessionDescriptor.addInjection("mailServers", serversDescriptor);
 		return sessionDescriptor;
 	}
 

Modified: jbpm4/branches/email/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/MailSessionWireTest.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/MailSessionWireTest.java	2009-04-07 19:44:17 UTC (rev 4491)
+++ jbpm4/branches/email/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/MailSessionWireTest.java	2009-04-07 21:00:21 UTC (rev 4492)
@@ -26,9 +26,9 @@
 import java.util.regex.Pattern;
 
 import org.jbpm.pvm.internal.email.filter.WildCardAddressFilter;
-import org.jbpm.pvm.internal.email.server.MailServerConfiguration;
-import org.jbpm.pvm.internal.email.service.MailService;
-import org.jbpm.pvm.internal.email.service.SynchronousMailService;
+import org.jbpm.pvm.internal.email.impl.MailServer;
+import org.jbpm.pvm.internal.email.impl.SyncMailSession;
+import org.jbpm.pvm.internal.email.spi.MailSession;
 
 /**
  * @author Alejandro Guizar
@@ -40,29 +40,29 @@
         "<objects>" +
         "  <mail-session>" +
         "    <mail-server>" +
-        "      <wildcard-address-filter>" +
+        "      <address-filter>" +
         "        <include>.+ at jbpm.org</include>" +
         "        <exclude>.+ at jboss.com</exclude>" +
-        "      </wildcard-address-filter>" +
-        "      <smtp-properties>" +
+        "      </address-filter>" +
+        "      <session-properties>" +
         "        <property name='mail.host' value='localhost' />" +
         "        <property name='mail.user' value='aguizar' />" +
         "        <property name='mail.from' value='noreply at jbpm.org' />" +
-        "      </smtp-properties>" +
+        "      </session-properties>" +
         "    </mail-server>" +
         "  </mail-session>" +
         "</objects>"
       );
 
-    MailService mailService = wireContext.get(MailService.class);
-    assertTrue("expected sync mail service", mailService instanceof SynchronousMailService);
+    MailSession mailService = wireContext.get(MailSession.class);
+    assertTrue("expected sync mail service", mailService instanceof SyncMailSession);
 
-    SynchronousMailService syncMailService = (SynchronousMailService) mailService;
-    Collection<MailServerConfiguration> serverConfigs = syncMailService.getServerConfigs();
+    SyncMailSession syncMailService = (SyncMailSession) mailService;
+    Collection<MailServer> serverConfigs = syncMailService.getMailServers();
     assertEquals(1, serverConfigs.size());
 
-    MailServerConfiguration serverConfig = serverConfigs.iterator().next();
-    WildCardAddressFilter addressFilter = (WildCardAddressFilter) serverConfig.getFilter();
+    MailServer serverConfig = serverConfigs.iterator().next();
+    WildCardAddressFilter addressFilter = (WildCardAddressFilter) serverConfig.getAddressFilter();
     
     Collection<Pattern> includePatterns = addressFilter.getIncludePatterns();
     assertEquals(1, includePatterns.size());
@@ -72,7 +72,7 @@
     assertEquals(1, excludePatterns.size());
     assertEquals(".+ at jboss.com", excludePatterns.iterator().next().toString());
 
-    Properties properties = serverConfig.getServer().getProperties();
+    Properties properties = serverConfig.getSessionProperties();
     assertEquals(3, properties.size());
     assertEquals("localhost", properties.getProperty("mail.host"));
     assertEquals("aguizar", properties.getProperty("mail.user"));

Modified: jbpm4/branches/email/pom.xml
===================================================================
--- jbpm4/branches/email/pom.xml	2009-04-07 19:44:17 UTC (rev 4491)
+++ jbpm4/branches/email/pom.xml	2009-04-07 21:00:21 UTC (rev 4492)
@@ -47,6 +47,7 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <apache.ant.version>1.7.0</apache.ant.version>
     <cactus.version>13-1.7.1</cactus.version>
+    <commons.email.version>1.2-SNAPSHOT</commons.email.version>
     <gwt.console.version>1.0.0-SNAPSHOT</gwt.console.version>
     <hibernate.version>3.2.6.ga</hibernate.version>
     <hibernate.annotations.version>3.3.1.GA</hibernate.annotations.version>
@@ -315,6 +316,11 @@
         <artifactId>jtds</artifactId>
         <version>${jtds.version}</version>
       </dependency>
+      <dependency>
+      	<groupId>commons-email</groupId>
+      	<artifactId>commons-email</artifactId>
+      	<version>${commons.email.version}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 




More information about the jbpm-commits mailing list