[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