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 2022/01/13 06:00:29 UTC

[camel] branch main updated: camel-mail - Fix includeHeaders on multipart dataformat not mapped

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 99f4038  camel-mail - Fix includeHeaders on multipart dataformat not mapped
99f4038 is described below

commit 99f4038e91abc67de6c281649b7308d73f740ffe
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jan 13 06:58:49 2022 +0100

    camel-mail - Fix includeHeaders on multipart dataformat not mapped
---
 .../multipart/MimeMultipartDataFormatConfigurer.java    |  2 ++
 .../mime/multipart/MimeMultipartDataFormat.java         | 17 +++++++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/components/camel-mail/src/generated/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormatConfigurer.java b/components/camel-mail/src/generated/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormatConfigurer.java
index 96c4067..d87899f 100644
--- a/components/camel-mail/src/generated/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormatConfigurer.java
+++ b/components/camel-mail/src/generated/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormatConfigurer.java
@@ -24,6 +24,8 @@ public class MimeMultipartDataFormatConfigurer extends PropertyConfigurerSupport
         case "multipartWithoutAttachment": dataformat.setMultipartWithoutAttachment(property(camelContext, boolean.class, value)); return true;
         case "headersinline":
         case "headersInline": dataformat.setHeadersInline(property(camelContext, boolean.class, value)); return true;
+        case "includeheaders":
+        case "includeHeaders": dataformat.setIncludeHeaders(property(camelContext, java.lang.String.class, value)); return true;
         case "binarycontent":
         case "binaryContent": dataformat.setBinaryContent(property(camelContext, boolean.class, value)); return true;
         default: return false;
diff --git a/components/camel-mail/src/main/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormat.java b/components/camel-mail/src/main/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormat.java
index 5573142..831be5e 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormat.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/dataformat/mime/multipart/MimeMultipartDataFormat.java
@@ -69,7 +69,8 @@ public class MimeMultipartDataFormat extends DefaultDataFormat {
     private String multipartSubType = "mixed";
     private boolean multipartWithoutAttachment;
     private boolean headersInline;
-    private Pattern includeHeaders;
+    private String includeHeaders;
+    private Pattern includeHeadersPattern;
     private boolean binaryContent;
 
     public void setBinaryContent(boolean binaryContent) {
@@ -81,7 +82,7 @@ public class MimeMultipartDataFormat extends DefaultDataFormat {
     }
 
     public void setIncludeHeaders(String includeHeaders) {
-        this.includeHeaders = Pattern.compile(includeHeaders, Pattern.CASE_INSENSITIVE);
+        this.includeHeaders = includeHeaders;
     }
 
     public void setMultipartWithoutAttachment(boolean multipartWithoutAttachment) {
@@ -140,9 +141,9 @@ public class MimeMultipartDataFormat extends DefaultDataFormat {
             mm.setContent(mp);
             // copy headers if required and if the content can be converted into
             // a String
-            if (headersInline && includeHeaders != null) {
+            if (headersInline && includeHeadersPattern != null) {
                 for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) {
-                    if (includeHeaders.matcher(entry.getKey()).matches()) {
+                    if (includeHeadersPattern.matcher(entry.getKey()).matches()) {
                         String headerStr = ExchangeHelper.convertToType(exchange, String.class, entry.getValue());
                         if (headerStr != null) {
                             mm.setHeader(entry.getKey(), headerStr);
@@ -317,4 +318,12 @@ public class MimeMultipartDataFormat extends DefaultDataFormat {
         }
         return MimeUtility.decodeText(key);
     }
+
+    @Override
+    protected void doInit() throws Exception {
+        if (includeHeaders != null) {
+            this.includeHeadersPattern = Pattern.compile(includeHeaders, Pattern.CASE_INSENSITIVE);
+        }
+    }
+
 }