[jbpm-commits] JBoss JBPM SVN: r4505 - in jbpm4/branches/email/modules/pvm/src: main/java/org/jbpm/pvm/internal/email/producer/impl and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Apr 9 01:23:54 EDT 2009
Author: alex.guizar at jboss.com
Date: 2009-04-09 01:23:54 -0400 (Thu, 09 Apr 2009)
New Revision: 4505
Modified:
jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AddressFilter.java
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/producer/impl/HtmlScriptMailProducer.java
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/PropertiesBinding.java
jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java
jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java
jbpm4/branches/email/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/MailSessionWireTest.java
Log:
support authenticator for mail session
Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AddressFilter.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AddressFilter.java 2009-04-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/AddressFilter.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
+import java.util.List;
import java.util.regex.Pattern;
import javax.mail.internet.InternetAddress;
@@ -15,86 +16,86 @@
*/
public class AddressFilter {
- /**
- * patterns of addresses to be included. all addresses are included when omitted.
- */
- private Collection<Pattern> includePatterns;
- /**
- * patterns of addresses to be excluded. no addresses are excluded when omitted.
- */
- private Collection<Pattern> excludePatterns;
+ /**
+ * patterns of addresses to be included. all addresses are included when omitted.
+ */
+ private List<Pattern> includePatterns;
+ /**
+ * patterns of addresses to be excluded. no addresses are excluded when omitted.
+ */
+ private List<Pattern> excludePatterns;
- public Collection<InternetAddress> filter(final Collection<InternetAddress> addresses) {
- Collection<InternetAddress> filteredAddresses = new HashSet<InternetAddress>();
- if (addresses != null) {
- // Loop over for addresses to decide what to keep.
- for (InternetAddress address : addresses) {
- if (keepAddress(address)) {
- filteredAddresses.add(address);
- }
- }
- }
- return filteredAddresses;
- }
+ public Collection<InternetAddress> filter(final Collection<InternetAddress> addresses) {
+ Collection<InternetAddress> filteredAddresses = new HashSet<InternetAddress>();
+ if (addresses != null) {
+ // Loop over for addresses to decide what to keep.
+ for (InternetAddress address : addresses) {
+ if (keepAddress(address)) {
+ filteredAddresses.add(address);
+ }
+ }
+ }
+ return filteredAddresses;
+ }
- /***
- * Determine in a given address is included or excluded based on regex.
- *
- * @param address Email Address to validate against regex.
- * @return If the includes is provided, and the address matches an include pattern, returns true,
- * false otherwise.
- */
- protected boolean keepAddress(InternetAddress address) {
- return includeAddress(address) && !excludeAddress(address);
- }
+ /***
+ * Determine in a given address is included or excluded based on regex.
+ *
+ * @param address Email Address to validate against regex.
+ * @return If the includes is provided, and the address matches an include pattern, returns true,
+ * false otherwise.
+ */
+ protected boolean keepAddress(InternetAddress address) {
+ return includeAddress(address) && !excludeAddress(address);
+ }
- protected boolean includeAddress(InternetAddress address) {
- if (includePatterns == null || includePatterns.isEmpty()) return true;
+ protected boolean includeAddress(InternetAddress address) {
+ if (includePatterns == null || includePatterns.isEmpty()) return true;
- for (Pattern pattern : includePatterns) {
- if (pattern.matcher(address.toString()).matches()) return true;
- }
- return false;
- }
+ for (Pattern pattern : includePatterns) {
+ if (pattern.matcher(address.toString()).matches()) return true;
+ }
+ return false;
+ }
- protected boolean excludeAddress(InternetAddress address) {
- if (excludePatterns == null || excludePatterns.isEmpty()) return false;
+ protected boolean excludeAddress(InternetAddress address) {
+ if (excludePatterns == null || excludePatterns.isEmpty()) return false;
- for (Pattern pattern : excludePatterns) {
- if (pattern.matcher(address.toString()).matches()) return true;
- }
- return false;
- }
+ for (Pattern pattern : excludePatterns) {
+ if (pattern.matcher(address.toString()).matches()) return true;
+ }
+ return false;
+ }
- /**
- * Gets the patterns of addresses to be included. All addresses are included when omitted.
- */
- public Collection<Pattern> getIncludePatterns() {
- return includePatterns;
- }
+ /**
+ * Gets the patterns of addresses to be included. All addresses are included when omitted.
+ */
+ public List<Pattern> getIncludePatterns() {
+ return includePatterns;
+ }
- public void addIncludePattern(Pattern includePattern) {
- if (includePatterns == null) includePatterns = new ArrayList<Pattern>();
- includePatterns.add(includePattern);
- }
+ public void addIncludePattern(Pattern includePattern) {
+ if (includePatterns == null) includePatterns = new ArrayList<Pattern>();
+ includePatterns.add(includePattern);
+ }
- protected void setIncludePatterns(Collection<Pattern> includePatterns) {
- this.includePatterns = includePatterns;
- }
+ protected void setIncludePatterns(List<Pattern> includePatterns) {
+ this.includePatterns = includePatterns;
+ }
- /**
- * Gets the patterns of addresses to be excluded. No addresses are excluded when omitted.
- */
- public Collection<Pattern> getExcludePatterns() {
- return excludePatterns;
- }
+ /**
+ * Gets the patterns of addresses to be excluded. No addresses are excluded when omitted.
+ */
+ public List<Pattern> getExcludePatterns() {
+ return excludePatterns;
+ }
- public void addExcludePattern(Pattern excludePattern) {
- if (excludePatterns == null) excludePatterns = new ArrayList<Pattern>();
- excludePatterns.add(excludePattern);
- }
+ public void addExcludePattern(Pattern excludePattern) {
+ if (excludePatterns == null) excludePatterns = new ArrayList<Pattern>();
+ excludePatterns.add(excludePattern);
+ }
- protected void setExcludePatterns(Collection<Pattern> excludePatterns) {
- this.excludePatterns = excludePatterns;
- }
+ protected void setExcludePatterns(List<Pattern> excludePatterns) {
+ this.excludePatterns = excludePatterns;
+ }
}
Modified: 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/MailServer.java 2009-04-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/MailServer.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -2,6 +2,7 @@
import java.util.Properties;
+import javax.mail.Authenticator;
import javax.mail.Session;
/**
@@ -11,26 +12,35 @@
*/
public class MailServer {
- private AddressFilter addressFilter;
- private Properties sessionProperties;
+ private AddressFilter addressFilter;
+ private Properties sessionProperties;
+ private Authenticator authenticator;
- public AddressFilter getAddressFilter() {
- return addressFilter;
- }
+ public AddressFilter getAddressFilter() {
+ return addressFilter;
+ }
- protected void setAddressFilter(AddressFilter filter) {
- this.addressFilter = filter;
- }
+ protected void setAddressFilter(AddressFilter filter) {
+ this.addressFilter = filter;
+ }
- public Properties getSessionProperties() {
- return sessionProperties;
- }
+ public Properties getSessionProperties() {
+ return sessionProperties;
+ }
- protected void setSessionProperties(Properties sessionProperties) {
- this.sessionProperties = sessionProperties;
- }
+ protected void setSessionProperties(Properties sessionProperties) {
+ this.sessionProperties = sessionProperties;
+ }
- public Session createMailSession() {
- return Session.getDefaultInstance(sessionProperties, null);
- }
+ public Authenticator getAuthenticator() {
+ return authenticator;
+ }
+
+ protected void setAuthenticator(Authenticator authenticator) {
+ this.authenticator = authenticator;
+ }
+
+ public Session createMailSession() {
+ return Session.getDefaultInstance(sessionProperties, authenticator);
+ }
}
Modified: 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/impl/SyncMailSession.java 2009-04-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/impl/SyncMailSession.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -1,6 +1,7 @@
package org.jbpm.pvm.internal.email.impl;
import java.util.Collection;
+import java.util.List;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
@@ -13,53 +14,52 @@
public class SyncMailSession implements MailSession {
- private Collection<MailServer> mailServers;
+ private List<MailServer> mailServers;
- private static final Log log = LogFactory.getLog(SyncMailSession.class);
+ private static final Log log = LogFactory.getLog(SyncMailSession.class);
- public void send(Collection<Email> emails) {
+ 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();
- // 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);
- 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);
- // 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);
- // 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?
+ }
+ }
+ }
+ }
- // 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 List<MailServer> getMailServers() {
+ return mailServers;
+ }
- public Collection<MailServer> getMailServers() {
- return mailServers;
- }
+ protected void setMailServers(List<MailServer> mailServers) {
+ this.mailServers = mailServers;
+ }
- protected void setMailServers(Collection<MailServer> mailServers) {
- this.mailServers = mailServers;
- }
-
}
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-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/email/producer/impl/HtmlScriptMailProducer.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -111,7 +111,7 @@
public String embedImage(HtmlEmail email, String imageSrc)
{
- if(imageSrc==null||imageSrc.isEmpty())
+ if(imageSrc==null||imageSrc.length()==0)
{
return null;
}
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-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailSessionBinding.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -30,11 +30,9 @@
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;
import org.jbpm.pvm.internal.wire.descriptor.ListDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
import org.jbpm.pvm.internal.wire.descriptor.PatternDescriptor;
-import org.jbpm.pvm.internal.wire.descriptor.PropertiesDescriptor;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -46,60 +44,76 @@
*/
public class MailSessionBinding extends WireDescriptorBinding {
- private static final PropertiesBinding propertiesBinding = new PropertiesBinding();
+ private static final PropertiesBinding propertiesBinding = new PropertiesBinding();
+ private static final ObjectBinding objectBinding = new ObjectBinding();
- public MailSessionBinding() {
- super("mail-session");
- }
+ public MailSessionBinding() {
+ super("mail-session");
+ }
- public Object parse(Element element, Parse parse, Parser parser) {
- // mail servers
- List<Descriptor> serverDescriptors = new ArrayList<Descriptor>();
- for (Element serverElement : XmlUtil.elements(element, "mail-server")) {
- // mail session properties
- Element smtpElement = XmlUtil.element(serverElement, "session-properties");
- PropertiesDescriptor propertiesDescriptor = propertiesBinding.parse(smtpElement, parse,
- parser);
+ public Object parse(Element element, Parse parse, Parser parser) {
+ // mail servers
+ List<Descriptor> serverDescriptors = new ArrayList<Descriptor>();
+ for (Element serverElement : XmlUtil.elements(element, "mail-server")) {
+ // mail server
+ ObjectDescriptor serverDescriptor = new ObjectDescriptor(MailServer.class);
+ serverDescriptors.add(serverDescriptor);
- // address filter
- Element filterElement = XmlUtil.element(serverElement, "address-filter");
+ // address filter
+ Element filterElement = XmlUtil.element(serverElement, "address-filter");
+ if (filterElement != null) {
+ // includes
+ List<Descriptor> includeDescriptors = new ArrayList<Descriptor>();
+ for (Element includeElement : XmlUtil.elements(filterElement, "include")) {
+ includeDescriptors.add(new PatternDescriptor(XmlUtil.getContentText(includeElement), 0));
+ }
+ ListDescriptor includesDescriptor = new ListDescriptor();
+ includesDescriptor.setValueDescriptors(includeDescriptors);
- // includes
- List<Descriptor> includeDescriptors = new ArrayList<Descriptor>();
- for (Element includeElement : XmlUtil.elements(filterElement, "include")) {
- includeDescriptors.add(new PatternDescriptor(XmlUtil.getContentText(includeElement), 0));
- }
- CollectionDescriptor includesDescriptor = new ListDescriptor();
- includesDescriptor.setValueDescriptors(includeDescriptors);
+ // excludes
+ List<Descriptor> excludeDescriptors = new ArrayList<Descriptor>();
+ for (Element excludeElement : XmlUtil.elements(filterElement, "exclude")) {
+ excludeDescriptors.add(new PatternDescriptor(XmlUtil.getContentText(excludeElement), 0));
+ }
+ ListDescriptor excludesDescriptor = new ListDescriptor();
+ excludesDescriptor.setValueDescriptors(excludeDescriptors);
- // excludes
- List<Descriptor> excludeDescriptors = new ArrayList<Descriptor>();
- for (Element excludeElement : XmlUtil.elements(filterElement, "exclude")) {
- excludeDescriptors.add(new PatternDescriptor(XmlUtil.getContentText(excludeElement), 0));
- }
- CollectionDescriptor excludesDescriptor = new ListDescriptor();
- excludesDescriptor.setValueDescriptors(excludeDescriptors);
+ // address filter
+ ObjectDescriptor filterDescriptor = new ObjectDescriptor(AddressFilter.class);
+ filterDescriptor.addInjection("includePatterns", includesDescriptor);
+ filterDescriptor.addInjection("excludePatterns", excludesDescriptor);
- // address filter
- ObjectDescriptor filterDescriptor = new ObjectDescriptor(AddressFilter.class);
- filterDescriptor.addInjection("includePatterns", includesDescriptor);
- filterDescriptor.addInjection("excludePatterns", excludesDescriptor);
+ serverDescriptor.addInjection("addressFilter", filterDescriptor);
+ }
- // mail server
- ObjectDescriptor serverDescriptor = new ObjectDescriptor(MailServer.class);
- serverDescriptor.addInjection("addressFilter", filterDescriptor);
- serverDescriptor.addInjection("sessionProperties", propertiesDescriptor);
- serverDescriptors.add(serverDescriptor);
- }
+ // mail session properties
+ Element propertiesElement = XmlUtil.element(serverElement, "session-properties");
+ if (propertiesElement != null) {
+ Descriptor propertiesDescriptor =
+ (Descriptor) propertiesBinding.parse(propertiesElement, parse, parser);
+ serverDescriptor.addInjection("sessionProperties", propertiesDescriptor);
+ }
+ else {
+ parse.addProblem("missing mail session properties");
+ }
- // mail servers
- CollectionDescriptor serversDescriptor = new ListDescriptor();
- serversDescriptor.setValueDescriptors(serverDescriptors);
+ // authenticator
+ Element authenticatorElement = XmlUtil.element(serverElement, "authenticator");
+ if (authenticatorElement != null) {
+ Descriptor authenticatorDescriptor =
+ (Descriptor) objectBinding.parse(authenticatorElement, parse, parser);
+ serverDescriptor.addInjection("authenticator", authenticatorDescriptor);
+ }
+ }
- // mail session
- ObjectDescriptor sessionDescriptor = new ObjectDescriptor(SyncMailSession.class);
- sessionDescriptor.addInjection("mailServers", serversDescriptor);
- return sessionDescriptor;
- }
+ // mail servers
+ ListDescriptor serversDescriptor = new ListDescriptor();
+ serversDescriptor.setValueDescriptors(serverDescriptors);
+ // mail session
+ ObjectDescriptor sessionDescriptor = new ObjectDescriptor(SyncMailSession.class);
+ sessionDescriptor.addInjection("mailServers", serversDescriptor);
+ return sessionDescriptor;
+ }
+
}
Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PropertiesBinding.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PropertiesBinding.java 2009-04-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/PropertiesBinding.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -44,7 +44,7 @@
super("properties");
}
- public PropertiesDescriptor parse(Element element, Parse parse, Parser parser) {
+ public Object parse(Element element, Parse parse, Parser parser) {
PropertiesDescriptor descriptor = new PropertiesDescriptor();
if (element.hasAttribute("file")) {
Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java 2009-04-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -24,7 +24,6 @@
import java.io.File;
import java.io.InputStream;
-import java.io.Serializable;
import java.net.URL;
import java.util.ListIterator;
import java.util.Stack;
@@ -32,7 +31,6 @@
import javax.xml.parsers.DocumentBuilder;
import org.jbpm.JbpmException;
-import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.stream.FileStreamInput;
import org.jbpm.pvm.internal.stream.InputStreamInput;
import org.jbpm.pvm.internal.stream.ResourceStreamInput;
@@ -49,9 +47,8 @@
*
* @author Tom Baeyens
*/
-public class Parse extends ProblemList implements Serializable, ErrorHandler {
+public class Parse extends ProblemList implements ErrorHandler {
- private static Log log = Log.getLog(Parse.class.getName());
private static final long serialVersionUID = 1L;
protected Parser parser;
@@ -190,11 +187,8 @@
* 'warning'. */
public Parse checkProblems(String description) {
if (hasProblems()) {
- String errorMsg = "problems during parse of "+description+":"+getProblemsText();
- log.info(errorMsg);
- if (errorMsg!=null) {
- throw new JbpmException(errorMsg);
- }
+ String errorMsg = "problems during parse of "+description+NEWLINE+getProblemsText();
+ throw new JbpmException(errorMsg);
}
return this;
}
@@ -234,13 +228,10 @@
ListIterator<Object> listIter = objectStack.listIterator(objectStack.size());
while (listIter.hasPrevious()) {
Object object = listIter.previous();
- if (object!=null) {
- if (clazz.isAssignableFrom(object.getClass())) {
- return (T) object;
- }
+ if (clazz.isInstance(object)) {
+ return clazz.cast(object);
}
}
- return null;
}
return null;
}
Modified: jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java
===================================================================
--- jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java 2009-04-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/ProblemList.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -27,10 +27,8 @@
import java.util.List;
import org.jbpm.Problem;
-import org.jbpm.internal.log.Log;
import org.jbpm.pvm.internal.repository.DeploymentImpl;
-
/** list of problems. Base class for {@link Parse}
* and {@link DeploymentImpl}.
*
@@ -40,16 +38,14 @@
private static final long serialVersionUID = 1L;
- private static final String NEWLINE = System.getProperty("line.separator");
+ static final String NEWLINE = System.getProperty("line.separator");
- private static final Log log = Log.getLog(ProblemList.class.getName());
-
protected List<ProblemImpl> problems;
/** all problems encountered */
public List<Problem> getProblems() {
if (problems==null) {
- return Collections.EMPTY_LIST;
+ return Collections.emptyList();
}
return (List) problems;
}
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-08 20:27:20 UTC (rev 4504)
+++ jbpm4/branches/email/modules/pvm/src/test/java/org/jbpm/pvm/internal/wire/MailSessionWireTest.java 2009-04-09 05:23:54 UTC (rev 4505)
@@ -21,10 +21,14 @@
*/
package org.jbpm.pvm.internal.wire;
-import java.util.Collection;
+import java.util.List;
import java.util.Properties;
import java.util.regex.Pattern;
+import javax.mail.Authenticator;
+import javax.mail.PasswordAuthentication;
+
+import org.jbpm.JbpmException;
import org.jbpm.pvm.internal.email.impl.MailServer;
import org.jbpm.pvm.internal.email.impl.SyncMailSession;
import org.jbpm.pvm.internal.email.impl.AddressFilter;
@@ -35,47 +39,156 @@
*/
public class MailSessionWireTest extends WireTestCase {
- public void testMailSession() {
- WireContext wireContext = createWireContext(
- "<objects>" +
- " <mail-session>" +
- " <mail-server>" +
- " <address-filter>" +
- " <include>.+ at jbpm.org</include>" +
- " <exclude>.+ at jboss.com</exclude>" +
- " </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' />" +
- " </session-properties>" +
- " </mail-server>" +
- " </mail-session>" +
- "</objects>"
- );
+ public void testSessionProperties() {
+ WireContext wireContext =
+ createWireContext("<objects>"
+ + " <mail-session>"
+ + " <mail-server>"
+ + " <session-properties>"
+ + " <property name='mail.host' value='localhost' />"
+ + " <property name='mail.user' value='aguizar' />"
+ + " <property name='mail.from' value='noreply at jbpm.org' />"
+ + " </session-properties>"
+ + " </mail-server>"
+ + " </mail-session>"
+ + "</objects>");
- MailSession mailService = wireContext.get(MailSession.class);
- assertTrue("expected sync mail service", mailService instanceof SyncMailSession);
+ MailSession mailSession = wireContext.get(MailSession.class);
+ assertTrue("expected sync mail session", mailSession instanceof SyncMailSession);
- SyncMailSession syncMailService = (SyncMailSession) mailService;
- Collection<MailServer> serverConfigs = syncMailService.getMailServers();
- assertEquals(1, serverConfigs.size());
+ SyncMailSession syncMailSession = (SyncMailSession) mailSession;
+ List<MailServer> mailServers = syncMailSession.getMailServers();
+ assertEquals(1, mailServers.size());
- MailServer serverConfig = serverConfigs.iterator().next();
- AddressFilter addressFilter = serverConfig.getAddressFilter();
-
- Collection<Pattern> includePatterns = addressFilter.getIncludePatterns();
- assertEquals(1, includePatterns.size());
- assertEquals(".+ at jbpm.org", includePatterns.iterator().next().toString());
-
- Collection<Pattern> excludePatterns = addressFilter.getExcludePatterns();
- assertEquals(1, excludePatterns.size());
- assertEquals(".+ at jboss.com", excludePatterns.iterator().next().toString());
-
- Properties properties = serverConfig.getSessionProperties();
+ MailServer mailServer = mailServers.get(0);
+ Properties properties = mailServer.getSessionProperties();
assertEquals(3, properties.size());
assertEquals("localhost", properties.getProperty("mail.host"));
assertEquals("aguizar", properties.getProperty("mail.user"));
assertEquals("noreply at jbpm.org", properties.getProperty("mail.from"));
- }
+ }
+
+ public static class MyAuthenticator extends Authenticator {
+ @Override
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication("aguizar", "wontsay");
+ }
+ }
+
+ public void testAuthenticator() {
+ WireContext wireContext =
+ createWireContext("<objects>" +
+ " <mail-session>" +
+ " <mail-server>" +
+ " <session-properties />" +
+ " <authenticator class='" +
+ MyAuthenticator.class.getName() +
+ "' />" +
+ " </mail-server>" +
+ " </mail-session>" +
+ "</objects>");
+ MailSession mailSession = wireContext.get(MailSession.class);
+ assertTrue("expected sync mail session", mailSession instanceof SyncMailSession);
+
+ SyncMailSession syncMailSession = (SyncMailSession) mailSession;
+ List<MailServer> mailServers = syncMailSession.getMailServers();
+ assertEquals(1, mailServers.size());
+
+ MailServer mailServer = mailServers.get(0);
+ assertSame(MyAuthenticator.class, mailServer.getAuthenticator().getClass());
+ }
+
+ public void testNoSessionProperties() {
+ try {
+ createWireContext("<objects>"
+ + " <mail-session>"
+ + " <mail-server />"
+ + " </mail-session>"
+ + "</objects>");
+ fail("expected wire context creation to puke");
+ }
+ catch (JbpmException e) {
+ // session properties are mandatory
+ }
+ }
+
+ public void testAddressFilter() {
+ WireContext wireContext =
+ createWireContext("<objects>"
+ + " <mail-session>"
+ + " <mail-server>"
+ + " <address-filter>"
+ + " <include>.+ at jbpm.org</include>"
+ + " <exclude>.+ at jboss.com</exclude>"
+ + " <exclude>.+ at redhat.com</exclude>"
+ + " </address-filter>"
+ + " <session-properties />"
+ + " </mail-server>"
+ + " </mail-session>"
+ + "</objects>");
+ MailSession mailSession = wireContext.get(MailSession.class);
+ assertTrue("expected sync mail session", mailSession instanceof SyncMailSession);
+
+ SyncMailSession syncMailSession = (SyncMailSession) mailSession;
+ List<MailServer> mailServers = syncMailSession.getMailServers();
+ assertEquals(1, mailServers.size());
+
+ MailServer mailServer = mailServers.get(0);
+ AddressFilter addressFilter = mailServer.getAddressFilter();
+
+ List<Pattern> includePatterns = addressFilter.getIncludePatterns();
+ assertEquals(1, includePatterns.size());
+ assertEquals(".+ at jbpm.org", includePatterns.get(0).toString());
+
+ List<Pattern> excludePatterns = addressFilter.getExcludePatterns();
+ assertEquals(2, excludePatterns.size());
+ assertEquals(".+ at jboss.com", excludePatterns.get(0).toString());
+ assertEquals(".+ at redhat.com", excludePatterns.get(1).toString());
+
+ assertEquals(0, mailServer.getSessionProperties().size());
+ }
+
+ public void testNoAddressFilter() {
+ WireContext wireContext =
+ createWireContext("<objects>"
+ + " <mail-session>"
+ + " <mail-server>"
+ + " <session-properties />"
+ + " </mail-server>"
+ + " </mail-session>"
+ + "</objects>");
+ MailSession mailSession = wireContext.get(MailSession.class);
+ assertTrue("expected sync mail session", mailSession instanceof SyncMailSession);
+
+ SyncMailSession syncMailSession = (SyncMailSession) mailSession;
+ List<MailServer> mailServers = syncMailSession.getMailServers();
+ assertEquals(1, mailServers.size());
+
+ MailServer mailServer = mailServers.get(0);
+ assertNull("expected no address filter", mailServer.getAddressFilter());
+ assertEquals(0, mailServer.getSessionProperties().size());
+ }
+
+ public void testMultipleMailServers() {
+ WireContext wireContext =
+ createWireContext("<objects>"
+ + " <mail-session>"
+ + " <mail-server>"
+ + " <session-properties />"
+ + " </mail-server>"
+ + " <mail-server>"
+ + " <session-properties />"
+ + " </mail-server>"
+ + " <mail-server>"
+ + " <session-properties />"
+ + " </mail-server>"
+ + " </mail-session>"
+ + "</objects>");
+ MailSession mailSession = wireContext.get(MailSession.class);
+ assertTrue("expected sync mail session", mailSession instanceof SyncMailSession);
+
+ SyncMailSession syncMailSession = (SyncMailSession) mailSession;
+ List<MailServer> mailServers = syncMailSession.getMailServers();
+ assertEquals(3, mailServers.size());
+ }
}
More information about the jbpm-commits
mailing list