You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/06/17 12:48:33 UTC

svn commit: r785548 - in /camel/branches/camel-1.x/components/camel-mail/src: main/java/org/apache/camel/component/mail/MailBinding.java test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java

Author: davsclaus
Date: Wed Jun 17 10:48:33 2009
New Revision: 785548

URL: http://svn.apache.org/viewvc?rev=785548&view=rev
Log:
CAMEL-1724: Always use a ByteArrayDataSource for mail content to avoid all kind of content type and charset issues.

Modified:
    camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
    camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java

Modified: camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java?rev=785548&r1=785547&r2=785548&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java (original)
+++ camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java Wed Jun 17 10:48:33 2009
@@ -103,20 +103,9 @@
                 appendAttachmentsFromCamel(mimeMessage, exchange.getIn(), endpoint.getConfiguration());
             } else {
                 String contentType = populateContentType(endpoint, mimeMessage, exchange);
-                if (contentType == null) {
-                    mimeMessage.setText(exchange.getIn().getBody(String.class));
-                } else if (contentType.startsWith("text/plain")) {
-                    String charset = ObjectHelper.after(contentType, "charset=");
-                    if (charset != null) {
-                        mimeMessage.setText(exchange.getIn().getBody(String.class), charset);
-                    } else {
-                        mimeMessage.setText(exchange.getIn().getBody(String.class));
-                    }
-                } else {
-                    // store content in a byte array data store
-                    DataSource ds = new ByteArrayDataSource(exchange.getIn().getBody(String.class), contentType);
-                    mimeMessage.setDataHandler(new DataHandler(ds));
-                }
+                // store content in a byte array data store as it works with all types
+                DataSource ds = new ByteArrayDataSource(exchange.getIn().getBody(String.class), contentType);
+                mimeMessage.setDataHandler(new DataHandler(ds));
             }
         }
     }
@@ -348,23 +337,15 @@
             contentType = camelMessage.getHeader("contentType", String.class);
         }
 
-        // set the content according to the content type
-        if (contentType == null) {
-            bodyMessage.setText(camelMessage.getBody(String.class));
-        } else if (contentType.startsWith("text/plain")) {
-            bodyMessage.setText(camelMessage.getBody(String.class));
-            bodyMessage.setHeader("Content-Type", contentType);
-        } else {
-            // store content in a byte array data store
-            DataSource ds;
-            try {
-                ds = new ByteArrayDataSource(camelMessage.getBody(String.class), contentType);
-            } catch (IOException e) {
-                throw new MessagingException("Cannot create DataSource", e);
-            }
-            bodyMessage.setDataHandler(new DataHandler(ds));
-            bodyMessage.setHeader("Content-Type", contentType);
+        // store content in a byte array data store
+        DataSource ds;
+        try {
+            ds = new ByteArrayDataSource(camelMessage.getBody(String.class), contentType);
+        } catch (IOException e) {
+            throw new MessagingException("Cannot create DataSource", e);
         }
+        bodyMessage.setDataHandler(new DataHandler(ds));
+        bodyMessage.setHeader("Content-Type", contentType);
 
         activeMultipart.addBodyPart(bodyMessage);
     }

Modified: camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java?rev=785548&r1=785547&r2=785548&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java (original)
+++ camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java Wed Jun 17 10:48:33 2009
@@ -61,7 +61,7 @@
 
         Mailbox box = Mailbox.get("claus@localhost");
         Message msg = box.get(0);
-        assertEquals("text/plain; charset=iso-8859-1", msg.getContentType());
+        assertEquals("text/plain;charset=iso-8859-1", msg.getContentType());
         assertEquals("Hello World", msg.getContent());
     }