You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by bs...@apache.org on 2006/11/09 03:55:51 UTC

svn commit: r472747 - in /incubator/servicemix/trunk/common/servicemix-components/src: main/java/org/apache/servicemix/components/email/ test/java/org/apache/servicemix/components/email/

Author: bsnyder
Date: Wed Nov  8 18:55:51 2006
New Revision: 472747

URL: http://svn.apache.org/viewvc?view=rev&rev=472747
Log:
Adding suport for multiple to, cc and bcc recipients per SM-675.

Modified:
    incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MailMarshalerSupport.java
    incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MimeMailMarshaler.java
    incubator/servicemix/trunk/common/servicemix-components/src/test/java/org/apache/servicemix/components/email/MimeMailTest.java

Modified: incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MailMarshalerSupport.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MailMarshalerSupport.java?view=diff&rev=472747&r1=472746&r2=472747
==============================================================================
--- incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MailMarshalerSupport.java (original)
+++ incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MailMarshalerSupport.java Wed Nov  8 18:55:51 2006
@@ -201,6 +201,10 @@
     }
 
     protected Address[] asAddressArray(Object value) throws AddressException {
+    	if (value instanceof String) {
+    		Address[] addresses = InternetAddress.parse((String)value);
+    		return addresses;
+    	}
         if (value instanceof Address[]) {
             return (Address[]) value;
         }

Modified: incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MimeMailMarshaler.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MimeMailMarshaler.java?view=diff&rev=472747&r1=472746&r2=472747
==============================================================================
--- incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MimeMailMarshaler.java (original)
+++ incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/email/MimeMailMarshaler.java Wed Nov  8 18:55:51 2006
@@ -153,17 +153,17 @@
      */
     public void prepareMessage(MimeMessage mimeMessage, MessageExchange exchange, NormalizedMessage normalizedMessage) throws javax.mail.MessagingException {
         try {
-            Address to = getTo(exchange, normalizedMessage);
+            Address[] to = getTo(exchange, normalizedMessage);
             if (to != null) {
-                mimeMessage.setRecipient(Message.RecipientType.TO, to);
+                mimeMessage.setRecipients(Message.RecipientType.TO, to);
             }
-            Address cc = getCc(exchange, normalizedMessage);
+            Address[] cc = getCc(exchange, normalizedMessage);
             if (cc != null) {
-                mimeMessage.setRecipient(Message.RecipientType.CC, cc);
+                mimeMessage.setRecipients(Message.RecipientType.CC, cc);
             }
-            Address bcc = getBcc(exchange, normalizedMessage);
+            Address[] bcc = getBcc(exchange, normalizedMessage);
             if (bcc != null) {
-                mimeMessage.setRecipient(Message.RecipientType.BCC, bcc);
+                mimeMessage.setRecipients(Message.RecipientType.BCC, bcc);
             }
             Address from = getFrom(exchange, normalizedMessage);
             if (from != null) {
@@ -245,16 +245,16 @@
         return asAddress(getFrom().evaluate(exchange, normalizedMessage));
     }
 
-    protected Address getTo(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {
-        return asAddress(getTo().evaluate(exchange, normalizedMessage));
+    protected Address[] getTo(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {
+        return asAddressArray(getTo().evaluate(exchange, normalizedMessage));
     }
 
-    protected Address getCc(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {
-        return asAddress(getCc().evaluate(exchange, normalizedMessage));
+    protected Address[] getCc(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {
+        return asAddressArray(getCc().evaluate(exchange, normalizedMessage));
     }
 
-    protected Address getBcc(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {
-        return asAddress(getBcc().evaluate(exchange, normalizedMessage));
+    protected Address[] getBcc(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {
+        return asAddressArray(getBcc().evaluate(exchange, normalizedMessage));
     }
 
     protected Address[] getReplyTo(MessageExchange exchange, NormalizedMessage normalizedMessage) throws MessagingException, AddressException {

Modified: incubator/servicemix/trunk/common/servicemix-components/src/test/java/org/apache/servicemix/components/email/MimeMailTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-components/src/test/java/org/apache/servicemix/components/email/MimeMailTest.java?view=diff&rev=472747&r1=472746&r2=472747
==============================================================================
--- incubator/servicemix/trunk/common/servicemix-components/src/test/java/org/apache/servicemix/components/email/MimeMailTest.java (original)
+++ incubator/servicemix/trunk/common/servicemix-components/src/test/java/org/apache/servicemix/components/email/MimeMailTest.java Wed Nov  8 18:55:51 2006
@@ -65,6 +65,35 @@
 
         assertEquals("subject", "Hello from JUnit!", mail.getSubject());
     }
+    
+    public void testSendUsingMessagePropertiesWithMultipleRecipients() throws Exception {
+
+        // START SNIPPET: email
+        InOnly exchange = client.createInOnlyExchange();
+        NormalizedMessage message = exchange.getInMessage();
+
+        message.setProperty("org.apache.servicemix.email.to", "scm@servicemix.org,foo@servicemix.org");
+        message.setProperty("org.apache.servicemix.email.cc", "bar@servicemix.org,baz@servicemix.org");
+        message.setProperty("org.apache.servicemix.email.bcc", "guinness@servicemix.org,harper@servicemix.org");
+        message.setProperty("org.apache.servicemix.email.from", "junit@servicemix.org");
+        message.setProperty("org.apache.servicemix.email.subject", "Hello from JUnit!");
+        message.setProperty("org.apache.servicemix.email.text", "Hi from test case: " + getName() + " running at: " + new Date());
+
+        client.send(exchange);
+        // END SNIPPET: email
+
+        // lest find the test sender
+        StubJavaMailSender sender = (StubJavaMailSender) getBean("javaMailSender");
+        sender.assertMessagesReceived(1);
+        List messages = sender.getMessages();
+        assertEquals("message size: " + messages, 1, messages.size());
+
+        MimeMessage mail = (MimeMessage) messages.get(0);
+
+        System.out.println("Created message: " + message);
+
+        assertEquals("subject", "Hello from JUnit!", mail.getSubject());
+    }
 
     public void testUsingXPathExpressionsInEmail() throws Exception {