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 2014/03/19 10:48:43 UTC

[2/3] git commit: CAMEL-7311: camel-mail should not fetch attachments if mapMailMessage=false as part of message copy during UoW.

CAMEL-7311: camel-mail should not fetch attachments if mapMailMessage=false as part of message copy during UoW.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8d83cbe5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8d83cbe5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8d83cbe5

Branch: refs/heads/camel-2.13.x
Commit: 8d83cbe57b36b1683c7e506114b579525f69ab05
Parents: d5e6e1d
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Mar 19 10:51:02 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 19 10:51:18 2014 +0100

----------------------------------------------------------------------
 .../apache/camel/component/mail/MailEndpoint.java |  2 +-
 .../apache/camel/component/mail/MailMessage.java  | 18 ++++++++++++++----
 2 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8d83cbe5/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
index bed5b3f..b4bd387 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
@@ -119,7 +119,7 @@ public class MailEndpoint extends ScheduledPollEndpoint {
     private Exchange createExchange(ExchangePattern pattern, Message message) {
         Exchange exchange = new DefaultExchange(this, pattern);
         exchange.setProperty(Exchange.BINDING, getBinding());
-        exchange.setIn(new MailMessage(message));
+        exchange.setIn(new MailMessage(message, getConfiguration().isMapMailMessage()));
         return exchange;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/8d83cbe5/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 365ca29..7416a46 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
@@ -35,12 +35,18 @@ public class MailMessage extends DefaultMessage {
     // mail content, see more in MailBinding
     private Message originalMailMessage;
     private Message mailMessage;
+    private boolean mapMailMessage;
 
     public MailMessage() {
     }
 
     public MailMessage(Message message) {
+        this(message, true);
+    }
+
+    public MailMessage(Message message, boolean mapMailMessage) {
         this.originalMailMessage = this.mailMessage = message;
+        this.mapMailMessage = mapMailMessage;
     }
 
     @Override
@@ -56,10 +62,13 @@ public class MailMessage extends DefaultMessage {
         MailMessage answer = (MailMessage)super.copy();
         answer.originalMailMessage = originalMailMessage;
         answer.mailMessage = mailMessage;
-        // force attachments to be created (by getting attachments) to ensure they are always available due Camel error handler
-        // makes defensive copies, and we have optimized it to avoid populating initial attachments, when not needed,
-        // as all other Camel components do not use attachments
-        getAttachments();
+
+        if (mapMailMessage) {
+            // force attachments to be created (by getting attachments) to ensure they are always available due Camel error handler
+            // makes defensive copies, and we have optimized it to avoid populating initial attachments, when not needed,
+            // as all other Camel components do not use attachments
+            getAttachments();
+        }
         return answer;
     }
 
@@ -132,6 +141,7 @@ public class MailMessage extends DefaultMessage {
             MailMessage mailMessage = (MailMessage) that;
             this.originalMailMessage = mailMessage.originalMailMessage;
             this.mailMessage = mailMessage.mailMessage;
+            this.mapMailMessage = mailMessage.mapMailMessage;
         }
     }