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/05/27 14:42:54 UTC
svn commit: r779149 - in /camel/branches/camel-1.x: ./
camel-core/src/main/java/org/apache/camel/util/
components/camel-mail/src/main/java/org/apache/camel/component/mail/
components/camel-mail/src/test/java/org/apache/camel/component/mail/
Author: davsclaus
Date: Wed May 27 12:42:53 2009
New Revision: 779149
URL: http://svn.apache.org/viewvc?rev=779149&view=rev
Log:
Merged revisions 779143 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r779143 | davsclaus | 2009-05-27 14:33:50 +0200 (Wed, 27 May 2009) | 1 line
CAMEL-1645: camel-mail. Setting ContentType improved to allow charset, and provided in exchange message header as well.
........
Added:
camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
- copied, changed from r779143, camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java
Modified:
camel/branches/camel-1.x/ (props changed)
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
camel/branches/camel-1.x/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 27 12:42:53 2009
@@ -1 +1 @@
-/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121
+/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=779149&r1=779148&r2=779149&view=diff
==============================================================================
--- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Wed May 27 12:42:53 2009
@@ -870,4 +870,26 @@
return sb.toString();
}
+ public static String after(String text, String after) {
+ if (!text.contains(after)) {
+ return null;
+ }
+ return text.substring(text.indexOf(after) + after.length());
+ }
+
+ public static String before(String text, String before) {
+ if (!text.contains(before)) {
+ return null;
+ }
+ return text.substring(0, text.indexOf(before));
+ }
+
+ public static String between(String text, String after, String before) {
+ text = after(text, after);
+ if (text == null) {
+ return null;
+ }
+ return before(text, before);
+ }
+
}
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=779149&r1=779148&r2=779149&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 May 27 12:42:53 2009
@@ -41,6 +41,7 @@
import org.apache.camel.impl.DefaultHeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.util.CollectionHelper;
+import org.apache.camel.util.ObjectHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -101,17 +102,37 @@
if (exchange.getIn().hasAttachments()) {
appendAttachmentsFromCamel(mimeMessage, exchange.getIn(), endpoint.getConfiguration());
} else {
- if ("text/html".equals(endpoint.getConfiguration().getContentType())) {
- DataSource ds = new ByteArrayDataSource(exchange.getIn().getBody(String.class), "text/html");
- mimeMessage.setDataHandler(new DataHandler(ds));
- } else {
- // its just text/plain
+ 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));
}
}
}
}
+ protected String populateContentType(MailEndpoint endpoint, MimeMessage mimeMessage, Exchange exchange) throws MessagingException {
+ // see if we got any content type set
+ String contentType = endpoint.getConfiguration().getContentType();
+ if (exchange.getIn().getHeader("contentType") != null) {
+ contentType = exchange.getIn().getHeader("contentType", String.class);
+ }
+ if (contentType != null) {
+ mimeMessage.setHeader("Content-Type", contentType);
+ }
+ return contentType;
+ }
+
/**
* Extracts the body from the Mail message
*/
Copied: camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java (from r779143, camel/trunk/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?p2=camel/branches/camel-1.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java&p1=camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java&r1=779143&r2=779149&rev=779149&view=diff
==============================================================================
--- camel/trunk/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 May 27 12:42:53 2009
@@ -65,17 +65,6 @@
assertEquals("Hello World", msg.getContent());
}
- public void testSendPlainMailContentTypeInHeader2() throws Exception {
- Mailbox.clearAll();
-
- template.sendBodyAndHeader("direct:b", "Hello World", Exchange.CONTENT_TYPE, "text/plain;charset=iso-8859-1");
-
- Mailbox box = Mailbox.get("claus@localhost");
- Message msg = box.get(0);
- assertEquals("text/plain; charset=iso-8859-1", msg.getContentType());
- assertEquals("Hello World", msg.getContent());
- }
-
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {