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 2015/05/17 09:48:23 UTC
camel git commit: CAMEL-8779: camel-mail - Message copy can be
optimized if mapMessage=false
Repository: camel
Updated Branches:
refs/heads/master e76575f4a -> bb4d11db8
CAMEL-8779: camel-mail - Message copy can be optimized if mapMessage=false
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bb4d11db
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bb4d11db
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bb4d11db
Branch: refs/heads/master
Commit: bb4d11db8a539bc302749cba068f1a0b18c32559
Parents: e76575f
Author: Claus Ibsen <da...@apache.org>
Authored: Sun May 17 09:52:38 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun May 17 09:52:38 2015 +0200
----------------------------------------------------------------------
.../org/apache/camel/component/mail/MailMessage.java | 12 ++++++++++--
.../component/mail/MailCommitOnCompletionTest.java | 2 +-
.../apache/camel/component/mail/RawMailMessageTest.java | 8 ++++++++
3 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/bb4d11db/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
index b148970..949b0aa 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
@@ -93,7 +93,7 @@ public class MailMessage extends DefaultMessage {
@Override
public MailMessage newInstance() {
- return new MailMessage();
+ return new MailMessage(null, this.mapMailMessage);
}
@Override
@@ -134,7 +134,15 @@ public class MailMessage extends DefaultMessage {
}
public void copyFrom(org.apache.camel.Message that) {
- super.copyFrom(that);
+ // only do a deep copy if we need to (yes when that is not a mail message, or if the mapMailMessage is true)
+ boolean needCopy = !(that instanceof MailMessage) || (((MailMessage) that).mapMailMessage);
+ if (needCopy) {
+ super.copyFrom(that);
+ } else {
+ // no deep copy needed, but copy message id
+ setMessageId(that.getMessageId());
+ setFault(that.isFault());
+ }
if (that instanceof MailMessage) {
MailMessage mailMessage = (MailMessage) that;
this.originalMailMessage = mailMessage.originalMailMessage;
http://git-wip-us.apache.org/repos/asf/camel/blob/bb4d11db/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCommitOnCompletionTest.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCommitOnCompletionTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCommitOnCompletionTest.java
index 2435a8f..5daba56 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCommitOnCompletionTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCommitOnCompletionTest.java
@@ -30,7 +30,7 @@ import org.junit.Test;
import org.jvnet.mock_javamail.Mailbox;
/**
- * Unit test for fetch size.
+ * Unit test for delete mail runs as an onCompletion.
*/
public class MailCommitOnCompletionTest extends CamelTestSupport {
http://git-wip-us.apache.org/repos/asf/camel/blob/bb4d11db/components/camel-mail/src/test/java/org/apache/camel/component/mail/RawMailMessageTest.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/RawMailMessageTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/RawMailMessageTest.java
index 2881bbf..619506c 100644
--- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/RawMailMessageTest.java
+++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/RawMailMessageTest.java
@@ -95,6 +95,10 @@ public class RawMailMessageTest extends CamelTestSupport {
Message mailMessage = mock.getExchanges().get(0).getIn().getBody(Message.class);
assertNotNull("mail subject should not be null", mailMessage.getSubject());
assertEquals("mail subject should be hurz", "hurz", mailMessage.getSubject());
+
+ Map<String, Object> headers = mock.getExchanges().get(0).getIn().getHeaders();
+ assertNotNull(headers);
+ assertTrue(!headers.isEmpty());
}
@Test
@@ -120,6 +124,10 @@ public class RawMailMessageTest extends CamelTestSupport {
MimeMessage mm = new MimeMessage(null, new ByteArrayInputStream(body.getBytes()));
String subject = mm.getSubject();
assertNull("mail subject should not be available", subject);
+
+ Map<String, Object> headers = mock.getExchanges().get(0).getIn().getHeaders();
+ assertNotNull(headers);
+ assertTrue(!headers.isEmpty());
}
private void prepareMailbox(String user, String type) throws Exception {