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());
}