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 2021/08/24 04:36:11 UTC

[camel] branch main updated: Means to specify the name of the attached file via header Content-Disposition (#5978)

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 df7ce93  Means to specify the name of the attached file via header Content-Disposition (#5978)
df7ce93 is described below

commit df7ce9330bdc1b20fc2cf74920fc38bf17eff275
Author: dk2k <dk...@users.noreply.github.com>
AuthorDate: Tue Aug 24 07:35:33 2021 +0300

    Means to specify the name of the attached file via header Content-Disposition (#5978)
    
    Co-authored-by: dk2k <dk...@ya.ru>
---
 .../camel/component/as2/api/AS2ClientManager.java  | 10 ++--
 .../api/entity/ApplicationEDIConsentEntity.java    |  6 +--
 .../as2/api/entity/ApplicationEDIEntity.java       | 11 ++++-
 .../as2/api/entity/ApplicationEDIFACTEntity.java   |  5 +-
 .../as2/api/entity/ApplicationEDIX12Entity.java    |  5 +-
 .../component/as2/api/entity/EntityParser.java     | 14 +++---
 .../camel/component/as2/api/util/EntityUtils.java  |  9 ++--
 .../camel/component/as2/api/AS2MessageTest.java    | 30 ++++++------
 .../component/as2/api/util/EntityUtilsTest.java    | 28 ++++++++++-
 .../camel/component/as2/api/util/MicUtilsTest.java |  3 +-
 components/camel-as2/camel-as2-component/pom.xml   |  1 +
 .../as2/AS2ClientManagerEndpointConfiguration.java | 15 +++++-
 ...ientManagerEndpointConfigurationConfigurer.java |  7 +++
 .../component/as2/AS2ConfigurationConfigurer.java  |  7 +++
 .../camel/component/as2/AS2EndpointConfigurer.java |  7 +++
 .../camel/component/as2/AS2EndpointUriFactory.java |  3 +-
 ...rverManagerEndpointConfigurationConfigurer.java |  7 +++
 .../component/as2/internal/AS2ApiCollection.java   |  2 +-
 .../as2/internal/AS2ClientManagerApiMethod.java    |  3 +-
 .../org/apache/camel/component/as2/as2.json        |  5 +-
 .../src/main/docs/as2-component.adoc               | 12 +++--
 .../camel/component/as2/AS2Configuration.java      | 12 +++++
 .../camel/component/as2/AS2ClientManagerIT.java    | 11 ++++-
 .../camel/component/as2/AS2ServerManagerIT.java    |  8 ++--
 .../builder/endpoint/EndpointBuilderFactory.java   | 56 +++++++++++-----------
 .../camel/builder/endpoint/EndpointBuilders.java   | 56 +++++++++++-----------
 .../endpoint/dsl/AS2EndpointBuilderFactory.java    | 44 +++++++++++++++++
 .../modules/ROOT/pages/as2-component.adoc          | 12 +++--
 28 files changed, 272 insertions(+), 117 deletions(-)

diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
index 4866d58..6690745 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
@@ -171,7 +171,7 @@ public class AS2ClientManager {
      * @param  as2From                    - AS2 name of sender
      * @param  as2To                      - AS2 name of recipient
      * @param  as2MessageStructure        - the structure of AS2 to send; see {@link AS2MessageStructure}
-     * @param  ediMessageContentType      - the content typw of EDI message
+     * @param  ediMessageContentType      - the content type of EDI message
      * @param  ediMessageTransferEncoding - the transfer encoding used to transport EDI message
      * @param  signingAlgorithm           - the algorithm used to sign the message or <code>null</code> if sending EDI
      *                                    message unsigned
@@ -188,6 +188,8 @@ public class AS2ClientManager {
      *                                    EDI message unencrypted
      * @param  encryptingCertificateChain - the chain of certificates used to encrypt the message or <code>null</code>
      *                                    if sending EDI message unencrypted
+     * @param  attachedFileName           - the name of the attached file or <code>null</code> if user doesn't want to
+     *                                    specify it
      * @return                            {@link HttpCoreContext} containing request and response used to send EDI
      *                                    message
      * @throws HttpException              when things go wrong.
@@ -209,7 +211,8 @@ public class AS2ClientManager {
             String dispositionNotificationTo,
             String[] signedReceiptMicAlgorithms,
             AS2EncryptionAlgorithm encryptingAlgorithm,
-            Certificate[] encryptingCertificateChain)
+            Certificate[] encryptingCertificateChain,
+            String attachedFileName)
             throws HttpException {
 
         Args.notNull(ediMessage, "EDI Message");
@@ -247,7 +250,8 @@ public class AS2ClientManager {
         ApplicationEDIEntity applicationEDIEntity;
         try {
             applicationEDIEntity
-                    = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, ediMessageTransferEncoding, false);
+                    = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, ediMessageTransferEncoding, false,
+                            attachedFileName);
         } catch (Exception e) {
             throw new HttpException("Failed to create EDI message entity", e);
         }
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIConsentEntity.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIConsentEntity.java
index a884ced..f91c2ab 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIConsentEntity.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIConsentEntity.java
@@ -22,8 +22,8 @@ import org.apache.http.entity.ContentType;
 public class ApplicationEDIConsentEntity extends ApplicationEDIEntity {
 
     public ApplicationEDIConsentEntity(String content, String charset, String contentTransferEncoding,
-                                       boolean isMainBody) {
-        super(content, ContentType.create(AS2MediaType.APPLICATION_EDI_CONSENT, charset), contentTransferEncoding, isMainBody);
+                                       boolean isMainBody, String fileName) {
+        super(content, ContentType.create(AS2MediaType.APPLICATION_EDI_CONSENT, charset), contentTransferEncoding, isMainBody,
+              fileName);
     }
-
 }
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIEntity.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIEntity.java
index 67f014b..8a1ee1e 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIEntity.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIEntity.java
@@ -20,23 +20,32 @@ import java.io.IOException;
 import java.io.OutputStream;
 
 import org.apache.camel.component.as2.api.AS2Charset;
+import org.apache.camel.component.as2.api.AS2Header;
 import org.apache.camel.component.as2.api.CanonicalOutputStream;
 import org.apache.camel.component.as2.api.util.EntityUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.Header;
 import org.apache.http.HeaderIterator;
 import org.apache.http.entity.ContentType;
 import org.apache.http.util.Args;
+import org.slf4j.helpers.MessageFormatter;
 
 public abstract class ApplicationEDIEntity extends MimeEntity {
 
+    protected static final String CONTENT_DISPOSITION_PATTERN = "attachment; filename={}";
+
     private final String ediMessage;
 
     protected ApplicationEDIEntity(String ediMessage, ContentType contentType, String contentTransferEncoding,
-                                   boolean isMainBody) {
+                                   boolean isMainBody, String filename) {
         this.ediMessage = Args.notNull(ediMessage, "EDI Message");
         setContentType(Args.notNull(contentType, "Content Type").toString());
         setContentTransferEncoding(contentTransferEncoding);
         setMainBody(isMainBody);
+        if (StringUtils.isNotBlank(filename)) {
+            addHeader(AS2Header.CONTENT_DISPOSITION,
+                    MessageFormatter.format(CONTENT_DISPOSITION_PATTERN, filename).getMessage());
+        }
     }
 
     public String getEdiMessage() {
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIFACTEntity.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIFACTEntity.java
index 355742c..02fc6ce 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIFACTEntity.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIFACTEntity.java
@@ -22,8 +22,9 @@ import org.apache.http.entity.ContentType;
 public class ApplicationEDIFACTEntity extends ApplicationEDIEntity {
 
     public ApplicationEDIFACTEntity(String content, String charset, String contentTransferEncoding,
-                                    boolean isMainBody) {
-        super(content, ContentType.create(AS2MediaType.APPLICATION_EDIFACT, charset), contentTransferEncoding, isMainBody);
+                                    boolean isMainBody, String filename) {
+        super(content, ContentType.create(AS2MediaType.APPLICATION_EDIFACT, charset), contentTransferEncoding, isMainBody,
+              filename);
     }
 
 }
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIX12Entity.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIX12Entity.java
index 648afc4..9d92f01 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIX12Entity.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/ApplicationEDIX12Entity.java
@@ -22,8 +22,9 @@ import org.apache.http.entity.ContentType;
 public class ApplicationEDIX12Entity extends ApplicationEDIEntity {
 
     public ApplicationEDIX12Entity(String content, String charset, String contentTransferEncoding,
-                                   boolean isMainBody) {
-        super(content, ContentType.create(AS2MediaType.APPLICATION_EDI_X12, charset), contentTransferEncoding, isMainBody);
+                                   boolean isMainBody, String filename) {
+        super(content, ContentType.create(AS2MediaType.APPLICATION_EDI_X12, charset), contentTransferEncoding, isMainBody,
+              filename);
     }
 
 }
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/EntityParser.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/EntityParser.java
index 2b479a8..a756ca6 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/EntityParser.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/entity/EntityParser.java
@@ -213,7 +213,7 @@ public final class EntityParser {
                 throw new HttpException("Failed to find Content-Type header in enveloped entity");
             }
 
-            MimeEntity entity = parseEntityBody(inbuffer, null, entityContentType, entityContentTransferEncoding, headers);
+            MimeEntity entity = parseEntityBody(inbuffer, null, entityContentType, entityContentTransferEncoding, "", headers);
             entity.removeAllHeaders();
             entity.setHeaders(headers);
 
@@ -379,7 +379,7 @@ public final class EntityParser {
 
         try {
 
-            applicationEDIEntity = parseEDIEntityBody(inBuffer, null, contentType, contentTransferEncoding);
+            applicationEDIEntity = parseEDIEntityBody(inBuffer, null, contentType, contentTransferEncoding, "");
             applicationEDIEntity.setMainBody(true);
 
             EntityUtils.setMessageEntity(message, applicationEDIEntity);
@@ -540,7 +540,7 @@ public final class EntityParser {
             }
 
             MimeEntity signedEntity = parseEntityBody(inbuffer, boundary, signedEntityContentType,
-                    signedEntityContentTransferEncoding, headers);
+                    signedEntityContentTransferEncoding, "", headers);
             signedEntity.removeAllHeaders();
             signedEntity.setHeaders(headers);
             multipartSignedEntity.addPart(signedEntity);
@@ -786,6 +786,7 @@ public final class EntityParser {
             String boundary,
             ContentType entityContentType,
             String contentTransferEncoding,
+            String filename,
             Header[] headers)
             throws ParseException {
         CharsetDecoder previousDecoder = inbuffer.getCharsetDecoder();
@@ -804,7 +805,7 @@ public final class EntityParser {
                 case AS2MimeType.APPLICATION_EDIFACT:
                 case AS2MimeType.APPLICATION_EDI_X12:
                 case AS2MimeType.APPLICATION_EDI_CONSENT:
-                    entity = parseEDIEntityBody(inbuffer, boundary, entityContentType, contentTransferEncoding);
+                    entity = parseEDIEntityBody(inbuffer, boundary, entityContentType, contentTransferEncoding, filename);
                     break;
                 case AS2MimeType.MULTIPART_SIGNED:
                     String multipartSignedBoundary = AS2HeaderUtils.getParameterValue(headers,
@@ -866,7 +867,8 @@ public final class EntityParser {
             AS2SessionInputBuffer inbuffer,
             String boundary,
             ContentType ediMessageContentType,
-            String contentTransferEncoding)
+            String contentTransferEncoding,
+            String filename)
             throws ParseException {
         CharsetDecoder previousDecoder = inbuffer.getCharsetDecoder();
 
@@ -884,7 +886,7 @@ public final class EntityParser {
                 ediMessageBodyPartContent = EntityUtils.decode(ediMessageBodyPartContent, charset, contentTransferEncoding);
             }
             ApplicationEDIEntity applicationEDIEntity = EntityUtils.createEDIEntity(ediMessageBodyPartContent,
-                    ediMessageContentType, contentTransferEncoding, false);
+                    ediMessageContentType, contentTransferEncoding, false, filename);
 
             return applicationEDIEntity;
         } catch (Exception e) {
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
index b754e8c..2cc858b 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
@@ -186,7 +186,8 @@ public final class EntityUtils {
     }
 
     public static ApplicationEDIEntity createEDIEntity(
-            String ediMessage, ContentType ediMessageContentType, String contentTransferEncoding, boolean isMainBody)
+            String ediMessage, ContentType ediMessageContentType, String contentTransferEncoding, boolean isMainBody,
+            String filename)
             throws CamelException {
         Args.notNull(ediMessage, "EDI Message");
         Args.notNull(ediMessageContentType, "EDI Message Content Type");
@@ -196,11 +197,11 @@ public final class EntityUtils {
         }
         switch (ediMessageContentType.getMimeType().toLowerCase()) {
             case AS2MediaType.APPLICATION_EDIFACT:
-                return new ApplicationEDIFACTEntity(ediMessage, charset, contentTransferEncoding, isMainBody);
+                return new ApplicationEDIFACTEntity(ediMessage, charset, contentTransferEncoding, isMainBody, filename);
             case AS2MediaType.APPLICATION_EDI_X12:
-                return new ApplicationEDIX12Entity(ediMessage, charset, contentTransferEncoding, isMainBody);
+                return new ApplicationEDIX12Entity(ediMessage, charset, contentTransferEncoding, isMainBody, filename);
             case AS2MediaType.APPLICATION_EDI_CONSENT:
-                return new ApplicationEDIConsentEntity(ediMessage, charset, contentTransferEncoding, isMainBody);
+                return new ApplicationEDIConsentEntity(ediMessage, charset, contentTransferEncoding, isMainBody, filename);
             default:
                 throw new CamelException("Invalid EDI entity mime type: " + ediMessageContentType.getMimeType());
         }
diff --git a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java
index 571043d..402e246 100644
--- a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java
+++ b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2MessageTest.java
@@ -23,10 +23,7 @@ import java.security.SecureRandom;
 import java.security.Security;
 import java.security.cert.Certificate;
 import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import org.apache.camel.component.as2.api.entity.AS2DispositionModifier;
 import org.apache.camel.component.as2.api.entity.AS2DispositionType;
@@ -251,7 +248,8 @@ public class AS2MessageTest {
 
         HttpCoreContext httpContext = clientManager.send(EDI_MESSAGE, REQUEST_URI, SUBJECT, FROM, AS2_NAME, AS2_NAME,
                 AS2MessageStructure.PLAIN, ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII),
-                null, null, null, null, null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                null, null, null, null, null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null,
+                "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -293,7 +291,7 @@ public class AS2MessageTest {
         HttpCoreContext httpContext = clientManager.send(EDI_MESSAGE, REQUEST_URI, SUBJECT, FROM, AS2_NAME, AS2_NAME,
                 AS2MessageStructure.SIGNED, ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII),
                 null, AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new Certificate[0]), signingKP.getPrivate(),
-                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -451,7 +449,7 @@ public class AS2MessageTest {
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null,
                 AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new Certificate[0]), signingKP.getPrivate(), null,
                 DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, encryptionAlgorithm,
-                certList.toArray(new Certificate[0]));
+                certList.toArray(new Certificate[0]), "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -509,7 +507,7 @@ public class AS2MessageTest {
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null,
                 AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new Certificate[0]), signingKP.getPrivate(), null,
                 DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, encryptionAlgorithm,
-                certList.toArray(new Certificate[0]));
+                certList.toArray(new Certificate[0]), "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -575,7 +573,7 @@ public class AS2MessageTest {
         HttpCoreContext httpContext = clientManager.send(EDI_MESSAGE, REQUEST_URI, SUBJECT, FROM, AS2_NAME, AS2_NAME,
                 AS2MessageStructure.SIGNED, ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII),
                 null, AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new Certificate[0]), signingKP.getPrivate(),
-                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertTrue(request instanceof BasicHttpEntityEnclosingRequest, "Request does not contain entity");
@@ -604,7 +602,8 @@ public class AS2MessageTest {
 
         HttpCoreContext httpContext = clientManager.send(EDI_MESSAGE, REQUEST_URI, SUBJECT, FROM, AS2_NAME, AS2_NAME,
                 AS2MessageStructure.PLAIN, ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII),
-                null, null, null, null, null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                null, null, null, null, null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null,
+                "file.txt");
 
         HttpResponse response = httpContext.getResponse();
         assertEquals(HttpVersion.HTTP_1_1, response.getStatusLine().getProtocolVersion(), "Unexpected method value");
@@ -646,7 +645,7 @@ public class AS2MessageTest {
 
         // Create plain edi request message to acknowledge
         ApplicationEDIEntity ediEntity = EntityUtils.createEDIEntity(EDI_MESSAGE,
-                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, false);
+                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, false, "filename.txt");
         HttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST", REQUEST_URI);
         HttpMessageUtils.setHeaderValue(request, AS2Header.SUBJECT, SUBJECT);
         String httpdate = DATE_GENERATOR.getCurrentDate();
@@ -681,6 +680,7 @@ public class AS2MessageTest {
         // Send MDN
         HttpCoreContext httpContext = mdnManager.send(mdn, RECIPIENT_DELIVERY_ADDRESS);
         HttpRequest mndRequest = httpContext.getRequest();
+        Arrays.stream(request.getHeaders(AS2Header.CONTENT_DISPOSITION)).forEach(System.out::println);
         DispositionNotificationMultipartReportEntity reportEntity
                 = HttpMessageUtils.getEntity(mndRequest, DispositionNotificationMultipartReportEntity.class);
         assertNotNull(reportEntity, "Request does not contain resport");
@@ -721,7 +721,7 @@ public class AS2MessageTest {
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null,
                 null, null, null, AS2CompressionAlgorithm.ZLIB,
                 DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null,
-                null);
+                null, "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -775,7 +775,7 @@ public class AS2MessageTest {
                 AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new Certificate[0]), signingKP.getPrivate(),
                 AS2CompressionAlgorithm.ZLIB,
                 DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null,
-                null);
+                null, "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -842,7 +842,7 @@ public class AS2MessageTest {
                 AS2MessageStructure.ENCRYPTED_COMPRESSED,
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), "base64", null, null, null,
                 AS2CompressionAlgorithm.ZLIB, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS,
-                AS2EncryptionAlgorithm.AES128_CBC, certList.toArray(new Certificate[0]));
+                AS2EncryptionAlgorithm.AES128_CBC, certList.toArray(new Certificate[0]), "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
@@ -905,7 +905,7 @@ public class AS2MessageTest {
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null,
                 AS2SignatureAlgorithm.SHA256WITHRSA, certList.toArray(new Certificate[0]), signingKP.getPrivate(),
                 AS2CompressionAlgorithm.ZLIB, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS,
-                AS2EncryptionAlgorithm.AES128_CBC, certList.toArray(new Certificate[0]));
+                AS2EncryptionAlgorithm.AES128_CBC, certList.toArray(new Certificate[0]), "file.txt");
 
         HttpRequest request = httpContext.getRequest();
         assertEquals(METHOD, request.getRequestLine().getMethod(), "Unexpected method value");
diff --git a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/EntityUtilsTest.java b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/EntityUtilsTest.java
index 28035e4..360415c 100644
--- a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/EntityUtilsTest.java
+++ b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/EntityUtilsTest.java
@@ -17,8 +17,10 @@
 package org.apache.camel.component.as2.api.util;
 
 import org.apache.camel.component.as2.api.AS2Charset;
+import org.apache.camel.component.as2.api.AS2Header;
 import org.apache.camel.component.as2.api.AS2MediaType;
 import org.apache.camel.component.as2.api.entity.ApplicationEDIEntity;
+import org.apache.http.Header;
 import org.apache.http.entity.ContentType;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -29,17 +31,39 @@ public class EntityUtilsTest {
     public void testCreateEDIEntityContentTypeWithoutEncoding() throws Exception {
         ContentType ediMessageContentType = ContentType.create(AS2MediaType.APPLICATION_EDIFACT, (String) null);
         String ediMessage = "whatever";
-        ApplicationEDIEntity applicationEDIEntity = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, null, false);
+        ApplicationEDIEntity applicationEDIEntity
+                = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, null, false, "sample.txt");
         String actualContentType = applicationEDIEntity.getContentTypeValue();
         Assertions.assertEquals("application/edifact", actualContentType, "content type matches");
+        Header[] actualContentDisposition = applicationEDIEntity.getHeaders(AS2Header.CONTENT_DISPOSITION);
+        Assertions.assertEquals(1, actualContentDisposition.length, "exactly one Content-Disposition header found");
+        Assertions.assertEquals("Content-Disposition: attachment; filename=sample.txt",
+                actualContentDisposition[0].toString());
     }
 
     @Test
     public void testCreateEDIEntityContentTypeWithEncoding() throws Exception {
         ContentType ediMessageContentType = ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII);
         String ediMessage = "whatever";
-        ApplicationEDIEntity applicationEDIEntity = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, null, false);
+        ApplicationEDIEntity applicationEDIEntity
+                = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, null, false, "sample.txt");
         String actualContentType = applicationEDIEntity.getContentTypeValue();
         Assertions.assertEquals("application/edifact; charset=US-ASCII", actualContentType, "content type matches");
+        Header[] actualContentDisposition = applicationEDIEntity.getHeaders(AS2Header.CONTENT_DISPOSITION);
+        Assertions.assertEquals(1, actualContentDisposition.length, "exactly one Content-Disposition header found");
+        Assertions.assertEquals("Content-Disposition: attachment; filename=sample.txt",
+                actualContentDisposition[0].toString());
+    }
+
+    @Test
+    public void testCreateEDIEntityContentTypeWithoutContentDisposition() throws Exception {
+        ContentType ediMessageContentType = ContentType.create(AS2MediaType.APPLICATION_EDIFACT, (String) null);
+        String ediMessage = "whatever";
+        ApplicationEDIEntity applicationEDIEntity
+                = EntityUtils.createEDIEntity(ediMessage, ediMessageContentType, null, false, "");
+        String actualContentType = applicationEDIEntity.getContentTypeValue();
+        Assertions.assertEquals("application/edifact", actualContentType, "content type matches");
+        Header[] actualContentDisposition = applicationEDIEntity.getHeaders(AS2Header.CONTENT_DISPOSITION);
+        Assertions.assertEquals(0, actualContentDisposition.length, "no Content-Disposition headers found");
     }
 }
diff --git a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/MicUtilsTest.java b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/MicUtilsTest.java
index e3dcc27..e28c85f 100644
--- a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/MicUtilsTest.java
+++ b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/util/MicUtilsTest.java
@@ -93,7 +93,8 @@ public class MicUtilsTest {
         request.addHeader(AS2Header.CONTENT_TYPE, CONTENT_TYPE_VALUE);
 
         ApplicationEDIFACTEntity edifactEntity
-                = new ApplicationEDIFACTEntity(EDI_MESSAGE, AS2Charset.US_ASCII, AS2TransferEncoding.NONE, true);
+                = new ApplicationEDIFACTEntity(
+                        EDI_MESSAGE, AS2Charset.US_ASCII, AS2TransferEncoding.NONE, true, "filename.txt");
         InputStream is = edifactEntity.getContent();
         BasicHttpEntity basicEntity = new BasicHttpEntity();
         basicEntity.setContent(is);
diff --git a/components/camel-as2/camel-as2-component/pom.xml b/components/camel-as2/camel-as2-component/pom.xml
index 6a2185d..90f63d2 100644
--- a/components/camel-as2/camel-as2-component/pom.xml
+++ b/components/camel-as2/camel-as2-component/pom.xml
@@ -117,6 +117,7 @@
                                         <nullableOption>signedReceiptMicAlgorithms</nullableOption>
                                         <nullableOption>encryptingAlgorithm</nullableOption>
                                         <nullableOption>encryptingCertificateChain</nullableOption>
+                                        <nullableOption>attachedFileName</nullableOption>
                                     </nullableOptions>
                                 </api>
                                 <api>
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfiguration.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfiguration.java
index 38ebb90..cbbb73a 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfiguration.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfiguration.java
@@ -16,7 +16,7 @@ import org.apache.camel.spi.UriParams;
  */
 @ApiParams(apiName = "client", producerOnly = true,
            description = "Sends EDI Messages over HTTP",
-           apiMethods = {@ApiMethod(methodName = "send", description="Send ediMessage to trading partner", signatures={"org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm sig [...]
+           apiMethods = {@ApiMethod(methodName = "send", description="Send ediMessage to trading partner", signatures={"org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm sig [...]
 @UriParams
 @Configurer(extended = true)
 public final class AS2ClientManagerEndpointConfiguration extends AS2Configuration {
@@ -30,6 +30,9 @@ public final class AS2ClientManagerEndpointConfiguration extends AS2Configuratio
     @ApiParam(optional = false, apiMethods = {@ApiMethod(methodName = "send", description="AS2 name of recipient")})
     private String as2To;
     @UriParam
+    @ApiParam(optional = true, apiMethods = {@ApiMethod(methodName = "send", description="The name of the attached file or null if user doesn't want to specify it")})
+    private String attachedFileName;
+    @UriParam
     @ApiParam(optional = true, apiMethods = {@ApiMethod(methodName = "send", description="The algorithm used to compress the message or null if sending EDI message uncompressed")})
     private org.apache.camel.component.as2.api.AS2CompressionAlgorithm compressionAlgorithm;
     @UriParam
@@ -39,7 +42,7 @@ public final class AS2ClientManagerEndpointConfiguration extends AS2Configuratio
     @ApiParam(optional = false, apiMethods = {@ApiMethod(methodName = "send", description="EDI message to transport")})
     private String ediMessage;
     @UriParam
-    @ApiParam(optional = false, apiMethods = {@ApiMethod(methodName = "send", description="The content typw of EDI message")})
+    @ApiParam(optional = false, apiMethods = {@ApiMethod(methodName = "send", description="The content type of EDI message")})
     private org.apache.http.entity.ContentType ediMessageContentType;
     @UriParam
     @ApiParam(optional = true, apiMethods = {@ApiMethod(methodName = "send", description="The transfer encoding used to transport EDI message")})
@@ -96,6 +99,14 @@ public final class AS2ClientManagerEndpointConfiguration extends AS2Configuratio
         this.as2To = as2To;
     }
 
+    public String getAttachedFileName() {
+        return attachedFileName;
+    }
+
+    public void setAttachedFileName(String attachedFileName) {
+        this.attachedFileName = attachedFileName;
+    }
+
     public org.apache.camel.component.as2.api.AS2CompressionAlgorithm getCompressionAlgorithm() {
         return compressionAlgorithm;
     }
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfigurationConfigurer.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfigurationConfigurer.java
index 2485bc9..f95e136 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfigurationConfigurer.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ClientManagerEndpointConfigurationConfigurer.java
@@ -25,6 +25,7 @@ public class AS2ClientManagerEndpointConfigurationConfigurer extends org.apache.
         map.put("As2MessageStructure", org.apache.camel.component.as2.api.AS2MessageStructure.class);
         map.put("As2To", java.lang.String.class);
         map.put("As2Version", java.lang.String.class);
+        map.put("AttachedFileName", java.lang.String.class);
         map.put("ClientFqdn", java.lang.String.class);
         map.put("CompressionAlgorithm", org.apache.camel.component.as2.api.AS2CompressionAlgorithm.class);
         map.put("DecryptingPrivateKey", java.security.PrivateKey.class);
@@ -67,6 +68,8 @@ public class AS2ClientManagerEndpointConfigurationConfigurer extends org.apache.
         case "As2To": target.setAs2To(property(camelContext, java.lang.String.class, value)); return true;
         case "as2version":
         case "As2Version": target.setAs2Version(property(camelContext, java.lang.String.class, value)); return true;
+        case "attachedfilename":
+        case "AttachedFileName": target.setAttachedFileName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientfqdn":
         case "ClientFqdn": target.setClientFqdn(property(camelContext, java.lang.String.class, value)); return true;
         case "compressionalgorithm":
@@ -139,6 +142,8 @@ public class AS2ClientManagerEndpointConfigurationConfigurer extends org.apache.
         case "As2To": return java.lang.String.class;
         case "as2version":
         case "As2Version": return java.lang.String.class;
+        case "attachedfilename":
+        case "AttachedFileName": return java.lang.String.class;
         case "clientfqdn":
         case "ClientFqdn": return java.lang.String.class;
         case "compressionalgorithm":
@@ -207,6 +212,8 @@ public class AS2ClientManagerEndpointConfigurationConfigurer extends org.apache.
         case "As2To": return target.getAs2To();
         case "as2version":
         case "As2Version": return target.getAs2Version();
+        case "attachedfilename":
+        case "AttachedFileName": return target.getAttachedFileName();
         case "clientfqdn":
         case "ClientFqdn": return target.getClientFqdn();
         case "compressionalgorithm":
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ConfigurationConfigurer.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ConfigurationConfigurer.java
index 92edd2e..7c4f73d 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ConfigurationConfigurer.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ConfigurationConfigurer.java
@@ -25,6 +25,7 @@ public class AS2ConfigurationConfigurer extends org.apache.camel.support.compone
         map.put("As2MessageStructure", org.apache.camel.component.as2.api.AS2MessageStructure.class);
         map.put("As2To", java.lang.String.class);
         map.put("As2Version", java.lang.String.class);
+        map.put("AttachedFileName", java.lang.String.class);
         map.put("ClientFqdn", java.lang.String.class);
         map.put("CompressionAlgorithm", org.apache.camel.component.as2.api.AS2CompressionAlgorithm.class);
         map.put("DecryptingPrivateKey", java.security.PrivateKey.class);
@@ -65,6 +66,8 @@ public class AS2ConfigurationConfigurer extends org.apache.camel.support.compone
         case "As2To": target.setAs2To(property(camelContext, java.lang.String.class, value)); return true;
         case "as2version":
         case "As2Version": target.setAs2Version(property(camelContext, java.lang.String.class, value)); return true;
+        case "attachedfilename":
+        case "AttachedFileName": target.setAttachedFileName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientfqdn":
         case "ClientFqdn": target.setClientFqdn(property(camelContext, java.lang.String.class, value)); return true;
         case "compressionalgorithm":
@@ -133,6 +136,8 @@ public class AS2ConfigurationConfigurer extends org.apache.camel.support.compone
         case "As2To": return java.lang.String.class;
         case "as2version":
         case "As2Version": return java.lang.String.class;
+        case "attachedfilename":
+        case "AttachedFileName": return java.lang.String.class;
         case "clientfqdn":
         case "ClientFqdn": return java.lang.String.class;
         case "compressionalgorithm":
@@ -197,6 +202,8 @@ public class AS2ConfigurationConfigurer extends org.apache.camel.support.compone
         case "As2To": return target.getAs2To();
         case "as2version":
         case "As2Version": return target.getAs2Version();
+        case "attachedfilename":
+        case "AttachedFileName": return target.getAttachedFileName();
         case "clientfqdn":
         case "ClientFqdn": return target.getClientFqdn();
         case "compressionalgorithm":
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointConfigurer.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointConfigurer.java
index 754b82e..7c4daf4 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointConfigurer.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointConfigurer.java
@@ -26,6 +26,7 @@ public class AS2EndpointConfigurer extends PropertyConfigurerSupport implements
         map.put("as2MessageStructure", org.apache.camel.component.as2.api.AS2MessageStructure.class);
         map.put("as2To", java.lang.String.class);
         map.put("as2Version", java.lang.String.class);
+        map.put("attachedFileName", java.lang.String.class);
         map.put("clientFqdn", java.lang.String.class);
         map.put("compressionAlgorithm", org.apache.camel.component.as2.api.AS2CompressionAlgorithm.class);
         map.put("decryptingPrivateKey", java.security.PrivateKey.class);
@@ -67,6 +68,8 @@ public class AS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "as2To": target.getConfiguration().setAs2To(property(camelContext, java.lang.String.class, value)); return true;
         case "as2version":
         case "as2Version": target.getConfiguration().setAs2Version(property(camelContext, java.lang.String.class, value)); return true;
+        case "attachedfilename":
+        case "attachedFileName": target.getConfiguration().setAttachedFileName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientfqdn":
         case "clientFqdn": target.getConfiguration().setClientFqdn(property(camelContext, java.lang.String.class, value)); return true;
         case "compressionalgorithm":
@@ -136,6 +139,8 @@ public class AS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "as2To": return java.lang.String.class;
         case "as2version":
         case "as2Version": return java.lang.String.class;
+        case "attachedfilename":
+        case "attachedFileName": return java.lang.String.class;
         case "clientfqdn":
         case "clientFqdn": return java.lang.String.class;
         case "compressionalgorithm":
@@ -201,6 +206,8 @@ public class AS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "as2To": return target.getConfiguration().getAs2To();
         case "as2version":
         case "as2Version": return target.getConfiguration().getAs2Version();
+        case "attachedfilename":
+        case "attachedFileName": return target.getConfiguration().getAttachedFileName();
         case "clientfqdn":
         case "clientFqdn": return target.getConfiguration().getClientFqdn();
         case "compressionalgorithm":
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java
index 6adb215..783cecd 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2EndpointUriFactory.java
@@ -20,7 +20,7 @@ public class AS2EndpointUriFactory extends org.apache.camel.support.component.En
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(35);
+        Set<String> props = new HashSet<>(36);
         props.add("server");
         props.add("apiName");
         props.add("as2Version");
@@ -29,6 +29,7 @@ public class AS2EndpointUriFactory extends org.apache.camel.support.component.En
         props.add("encryptingCertificateChain");
         props.add("subject");
         props.add("signingPrivateKey");
+        props.add("attachedFileName");
         props.add("signedReceiptMicAlgorithms");
         props.add("ediMessage");
         props.add("as2To");
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ServerManagerEndpointConfigurationConfigurer.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ServerManagerEndpointConfigurationConfigurer.java
index c4168b8..2d29733 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ServerManagerEndpointConfigurationConfigurer.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/AS2ServerManagerEndpointConfigurationConfigurer.java
@@ -25,6 +25,7 @@ public class AS2ServerManagerEndpointConfigurationConfigurer extends org.apache.
         map.put("As2MessageStructure", org.apache.camel.component.as2.api.AS2MessageStructure.class);
         map.put("As2To", java.lang.String.class);
         map.put("As2Version", java.lang.String.class);
+        map.put("AttachedFileName", java.lang.String.class);
         map.put("ClientFqdn", java.lang.String.class);
         map.put("CompressionAlgorithm", org.apache.camel.component.as2.api.AS2CompressionAlgorithm.class);
         map.put("DecryptingPrivateKey", java.security.PrivateKey.class);
@@ -66,6 +67,8 @@ public class AS2ServerManagerEndpointConfigurationConfigurer extends org.apache.
         case "As2To": target.setAs2To(property(camelContext, java.lang.String.class, value)); return true;
         case "as2version":
         case "As2Version": target.setAs2Version(property(camelContext, java.lang.String.class, value)); return true;
+        case "attachedfilename":
+        case "AttachedFileName": target.setAttachedFileName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientfqdn":
         case "ClientFqdn": target.setClientFqdn(property(camelContext, java.lang.String.class, value)); return true;
         case "compressionalgorithm":
@@ -136,6 +139,8 @@ public class AS2ServerManagerEndpointConfigurationConfigurer extends org.apache.
         case "As2To": return java.lang.String.class;
         case "as2version":
         case "As2Version": return java.lang.String.class;
+        case "attachedfilename":
+        case "AttachedFileName": return java.lang.String.class;
         case "clientfqdn":
         case "ClientFqdn": return java.lang.String.class;
         case "compressionalgorithm":
@@ -202,6 +207,8 @@ public class AS2ServerManagerEndpointConfigurationConfigurer extends org.apache.
         case "As2To": return target.getAs2To();
         case "as2version":
         case "As2Version": return target.getAs2Version();
+        case "attachedfilename":
+        case "AttachedFileName": return target.getAttachedFileName();
         case "clientfqdn":
         case "ClientFqdn": return target.getClientFqdn();
         case "compressionalgorithm":
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ApiCollection.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ApiCollection.java
index 880a51d..a02299f 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ApiCollection.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ApiCollection.java
@@ -33,7 +33,7 @@ public final class AS2ApiCollection extends ApiCollection<AS2ApiName, AS2Configu
         List<String> nullableArgs;
 
         aliases.clear();
-        nullableArgs = Arrays.asList("ediMessageTransferEncoding", "signingAlgorithm", "signingCertificateChain", "signingPrivateKey", "compressionAlgorithm", "dispositionNotificationTo", "signedReceiptMicAlgorithms", "encryptingAlgorithm", "encryptingCertificateChain");
+        nullableArgs = Arrays.asList("ediMessageTransferEncoding", "signingAlgorithm", "signingCertificateChain", "signingPrivateKey", "compressionAlgorithm", "dispositionNotificationTo", "signedReceiptMicAlgorithms", "encryptingAlgorithm", "encryptingCertificateChain", "attachedFileName");
         apiHelpers.put(AS2ApiName.CLIENT, new ApiMethodHelper<AS2ClientManagerApiMethod>(AS2ClientManagerApiMethod.class, aliases, nullableArgs));
         apiMethods.put(AS2ClientManagerApiMethod.class, AS2ApiName.CLIENT);
 
diff --git a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ClientManagerApiMethod.java b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ClientManagerApiMethod.java
index 6020b14..715db5c 100644
--- a/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ClientManagerApiMethod.java
+++ b/components/camel-as2/camel-as2-component/src/generated/java/org/apache/camel/component/as2/internal/AS2ClientManagerApiMethod.java
@@ -39,7 +39,8 @@ public enum AS2ClientManagerApiMethod implements ApiMethod {
         arg("dispositionNotificationTo", String.class),
         arg("signedReceiptMicAlgorithms", new String[0].getClass()),
         arg("encryptingAlgorithm", org.apache.camel.component.as2.api.AS2EncryptionAlgorithm.class),
-        arg("encryptingCertificateChain", new java.security.cert.Certificate[0].getClass()));
+        arg("encryptingCertificateChain", new java.security.cert.Certificate[0].getClass()),
+        arg("attachedFileName", String.class));
 
     private final ApiMethod apiMethod;
 
diff --git a/components/camel-as2/camel-as2-component/src/generated/resources/org/apache/camel/component/as2/as2.json b/components/camel-as2/camel-as2-component/src/generated/resources/org/apache/camel/component/as2/as2.json
index 5cd4757..6792dcc 100644
--- a/components/camel-as2/camel-as2-component/src/generated/resources/org/apache/camel/component/as2/as2.json
+++ b/components/camel-as2/camel-as2-component/src/generated/resources/org/apache/camel/component/as2/as2.json
@@ -36,6 +36,7 @@
     "as2MessageStructure": { "kind": "parameter", "displayName": "As2 Message Structure", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.api.AS2MessageStructure", "enum": [ "PLAIN", "SIGNED", "ENCRYPTED", "SIGNED_ENCRYPTED", "PLAIN_COMPRESSED", "SIGNED_COMPRESSED", "ENCRYPTED_COMPRESSED", "ENCRYPTED_COMPRESSED_SIGNED" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.compo [...]
     "as2To": { "kind": "parameter", "displayName": "As2 To", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value of the AS2To header of AS2 message." },
     "as2Version": { "kind": "parameter", "displayName": "As2 Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "1.0", "1.1" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1.1", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The version of the AS2 protocol." },
+    "attachedFileName": { "kind": "parameter", "displayName": "Attached File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The name of the attached file" },
     "clientFqdn": { "kind": "parameter", "displayName": "Client Fqdn", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel.apache.org", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The Client Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint." },
     "compressionAlgorithm": { "kind": "parameter", "displayName": "Compression Algorithm", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.api.AS2CompressionAlgorithm", "enum": [ "ZLIB" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The algorithm used to compress EDI message." },
     "decryptingPrivateKey": { "kind": "parameter", "displayName": "Decrypting Private Key", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The key used to encrypt the EDI message." },
@@ -64,11 +65,11 @@
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
   },
   "apis": {
-    "client": { "consumerOnly": false, "producerOnly": true, "description": "Sends EDI Messages over HTTP", "methods": { "send": { "description": "Send ediMessage to trading partner", "signatures": [ "org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMess [...]
+    "client": { "consumerOnly": false, "producerOnly": true, "description": "Sends EDI Messages over HTTP", "methods": { "send": { "description": "Send ediMessage to trading partner", "signatures": [ "org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMess [...]
     "server": { "consumerOnly": true, "producerOnly": false, "description": "Receives EDI Messages over HTTP", "methods": { "listen": { "description": "", "signatures": [ "void listen(String requestUriPattern, org.apache.http.protocol.HttpRequestHandler handler)" ] } } }
   },
   "apiProperties": {
-    "client": { "methods": { "send": { "properties": { "as2From": { "kind": "parameter", "displayName": "As2 From", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "AS2 name of sender", "optional": false }, "as2MessageStructure": { "kind": "parameter", "displayName": "As2 Message Structure", "group": "producer", "label": "", "required": false, "type": "object",  [...]
+    "client": { "methods": { "send": { "properties": { "as2From": { "kind": "parameter", "displayName": "As2 From", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "AS2 name of sender", "optional": false }, "as2MessageStructure": { "kind": "parameter", "displayName": "As2 Message Structure", "group": "producer", "label": "", "required": false, "type": "object",  [...]
     "server": { "methods": { "listen": { "properties": { "requestUriPattern": { "kind": "parameter", "displayName": "Request Uri Pattern", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } } } }
   }
 }
diff --git a/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc b/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc
index d446898..0c2b86b 100644
--- a/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc
+++ b/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc
@@ -116,7 +116,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (30 parameters):
+=== Query Parameters (31 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -126,6 +126,7 @@ with the following path and query parameters:
 | *as2MessageStructure* (common) | The structure of AS2 Message. One of: PLAIN - No encryption, no signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption, no signature, ENCRYPTED_SIGNED - Encryption, signature. There are 8 enums and the value can be one of: PLAIN, SIGNED, ENCRYPTED, SIGNED_ENCRYPTED, PLAIN_COMPRESSED, SIGNED_COMPRESSED, ENCRYPTED_COMPRESSED, ENCRYPTED_COMPRESSED_SIGNED |  | AS2MessageStructure
 | *as2To* (common) | The value of the AS2To header of AS2 message. |  | String
 | *as2Version* (common) | The version of the AS2 protocol. There are 2 enums and the value can be one of: 1.0, 1.1 | 1.1 | String
+| *attachedFileName* (common) | The name of the attached file |  | String
 | *clientFqdn* (common) | The Client Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint. | camel.apache.org | String
 | *compressionAlgorithm* (common) | The algorithm used to compress EDI message. There are 1 enums and the value can be one of: ZLIB |  | AS2CompressionAlgorithm
 | *decryptingPrivateKey* (common) | The key used to encrypt the EDI message. |  | PrivateKey
@@ -191,7 +192,7 @@ The client API has 1 method(s) which is represented by the following method sign
 [source,java]
 ----
 
-org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm signingAlgorithm, java.security.cert.Certificate[] signingCertificateChain, java.security.PrivateKey signingPrivateKey, org [...]
+org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm signingAlgorithm, java.security.cert.Certificate[] signingCertificateChain, java.security.PrivateKey signingPrivateKey, org [...]
 
 ----
 
@@ -217,10 +218,11 @@ The client API method(s) has the following set of parameters listed in the table
 | send | *as2From* |  AS2 name of sender | String
 | send | *as2MessageStructure* |  The structure of AS2 to send; see AS2MessageStructure | AS2MessageStructure
 | send | *as2To* |  AS2 name of recipient | String
+| send | *attachedFileName* | *Optional*  The name of the attached file or null if user doesn't want to specify it | String
 | send | *compressionAlgorithm* | *Optional*  The algorithm used to compress the message or null if sending EDI message uncompressed | AS2CompressionAlgorithm
 | send | *dispositionNotificationTo* | *Optional*  An RFC2822 address to request a receipt or null if no receipt requested | String
 | send | *ediMessage* |  EDI message to transport | String
-| send | *ediMessageContentType* |  The content typw of EDI message | ContentType
+| send | *ediMessageContentType* |  The content type of EDI message | ContentType
 | send | *ediMessageTransferEncoding* | *Optional*  The transfer encoding used to transport EDI message | String
 | send | *encryptingAlgorithm* | *Optional*  The algorithm used to encrypt the message or null if sending EDI message unencrypted | AS2EncryptionAlgorithm
 | send | *encryptingCertificateChain* | *Optional*  The chain of certificates used to encrypt the message or null if sending EDI message unencrypted | Certificate[]
@@ -233,7 +235,7 @@ The client API method(s) has the following set of parameters listed in the table
 | send | *subject* |  Message subject | String
 |===
 
-In addition to the parameters above, the client API can also use from the 30 endpoint query option
+In addition to the parameters above, the client API can also use from the 31 endpoint query option
 which is listed in the _Query Parameters_ section.
 
 Any of the parameters can be provided in either the endpoint URI, or dynamically in a message header.
@@ -282,7 +284,7 @@ The server API method(s) has the following set of parameters listed in the table
 | listen | *requestUriPattern* |   | String
 |===
 
-In addition to the parameters above, the server API can also use from the 30 endpoint query option
+In addition to the parameters above, the server API can also use from the 31 endpoint query option
 which is listed in the _Query Parameters_ section.
 
 Any of the parameters can be provided in either the endpoint URI, or dynamically in a message header.
diff --git a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Configuration.java b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Configuration.java
index 093f09b..469c755 100644
--- a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Configuration.java
+++ b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Configuration.java
@@ -97,6 +97,8 @@ public class AS2Configuration {
     private PrivateKey decryptingPrivateKey;
     @UriParam
     private String mdnMessageTemplate;
+    @UriParam
+    private String attachedFileName;
 
     public AS2ApiName getApiName() {
         return apiName;
@@ -424,4 +426,14 @@ public class AS2Configuration {
         this.mdnMessageTemplate = mdnMessageTemplate;
     }
 
+    public String getAttachedFileName() {
+        return attachedFileName;
+    }
+
+    /**
+     * The name of the attached file
+     */
+    public void setAttachedFileName(String attachedFileName) {
+        this.attachedFileName = attachedFileName;
+    }
 }
diff --git a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
index 987a624..c9d97cb 100644
--- a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
+++ b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
@@ -117,6 +117,7 @@ public class AS2ClientManagerIT extends AbstractAS2ITSupport {
     private static final String SUBJECT = "Test Case";
     private static final String AS2_NAME = "878051556";
     private static final String FROM = "mrAS@example.org";
+    private static final String ATTACHED_FILE_NAME = "filename.txt";
 
     private static final String MDN_FROM = "as2Test@server.example.com";
     private static final String MDN_SUBJECT_PREFIX = "MDN Response:";
@@ -241,6 +242,8 @@ public class AS2ClientManagerIT extends AbstractAS2ITSupport {
         headers.put("CamelAS2.ediMessageTransferEncoding", EDI_MESSAGE_CONTENT_TRANSFER_ENCODING);
         // parameter type is String
         headers.put("CamelAS2.dispositionNotificationTo", "mrAS2@example.com");
+        // parameter type is String
+        headers.put("CamelAS2.attachedFileName", "");
 
         final Triple<HttpEntity, HttpRequest, HttpResponse> result = executeRequest(headers);
         HttpEntity responseEntity = result.getLeft();
@@ -326,6 +329,8 @@ public class AS2ClientManagerIT extends AbstractAS2ITSupport {
         headers.put("CamelAS2.encryptingAlgorithm", AS2EncryptionAlgorithm.AES128_CBC);
         // parameter type is java.security.cert.Certificate[]
         headers.put("CamelAS2.encryptingCertificateChain", certList);
+        // parameter type is String
+        headers.put("CamelAS2.attachedFileName", "");
 
         final Triple<HttpEntity, HttpRequest, HttpResponse> result = executeRequest(headers);
         HttpEntity responseEntity = result.getLeft();
@@ -420,6 +425,8 @@ public class AS2ClientManagerIT extends AbstractAS2ITSupport {
         headers.put("CamelAS2.dispositionNotificationTo", "mrAS2@example.com");
         // parameter type is String[]
         headers.put("CamelAS2.signedReceiptMicAlgorithms", SIGNED_RECEIPT_MIC_ALGORITHMS);
+        // parameter type is String
+        headers.put("CamelAS2.attachedFileName", "");
 
         final Triple<HttpEntity, HttpRequest, HttpResponse> result = executeRequest(headers);
         HttpEntity responseEntity = result.getLeft();
@@ -522,6 +529,8 @@ public class AS2ClientManagerIT extends AbstractAS2ITSupport {
         headers.put("CamelAS2.dispositionNotificationTo", "mrAS2@example.com");
         // parameter type is String[]
         headers.put("CamelAS2.signedReceiptMicAlgorithms", SIGNED_RECEIPT_MIC_ALGORITHMS);
+        // parameter type is String
+        headers.put("CamelAS2.attachedFileName", "");
 
         final Triple<HttpEntity, HttpRequest, HttpResponse> result = executeRequest(headers);
         HttpEntity responseEntity = result.getLeft();
@@ -607,7 +616,7 @@ public class AS2ClientManagerIT extends AbstractAS2ITSupport {
 
         // Create plain edi request message to acknowledge
         ApplicationEDIEntity ediEntity = EntityUtils.createEDIEntity(EDI_MESSAGE,
-                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, false);
+                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, false, ATTACHED_FILE_NAME);
         HttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST", REQUEST_URI);
         HttpMessageUtils.setHeaderValue(request, AS2Header.SUBJECT, SUBJECT);
         String httpdate = DATE_GENERATOR.getCurrentDate();
diff --git a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
index 6c1a1b1..b372101 100644
--- a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
+++ b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
@@ -154,7 +154,7 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
 
         clientManager.send(EDI_MESSAGE, REQUEST_URI, SUBJECT, FROM, AS2_NAME, AS2_NAME, AS2MessageStructure.PLAIN,
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, null, null, null,
-                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
 
         MockEndpoint mockEndpoint = getMockEndpoint("mock:as2RcvMsgs");
         mockEndpoint.expectedMinimumMessageCount(1);
@@ -219,7 +219,7 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null,
                 AS2SignatureAlgorithm.SHA256WITHRSA,
                 certList.toArray(new Certificate[0]), signingKP.getPrivate(), null, DISPOSITION_NOTIFICATION_TO,
-                SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
 
         MockEndpoint mockEndpoint = getMockEndpoint("mock:as2RcvMsgs");
         mockEndpoint.expectedMinimumMessageCount(1);
@@ -296,7 +296,7 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
         clientManager.send(EDI_MESSAGE, REQUEST_URI, SUBJECT, FROM, AS2_NAME, AS2_NAME, AS2MessageStructure.ENCRYPTED,
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, null, null, null,
                 null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, AS2EncryptionAlgorithm.AES128_CBC,
-                certList.toArray(new Certificate[0]));
+                certList.toArray(new Certificate[0]), null);
 
         MockEndpoint mockEndpoint = getMockEndpoint("mock:as2RcvMsgs");
         mockEndpoint.expectedMinimumMessageCount(1);
@@ -364,7 +364,7 @@ public class AS2ServerManagerIT extends AbstractAS2ITSupport {
         HttpCoreContext context = clientManager.send(EDI_MESSAGE, "/process_error", SUBJECT, FROM, AS2_NAME, AS2_NAME,
                 AS2MessageStructure.PLAIN,
                 ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, null, null, null,
-                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+                null, DISPOSITION_NOTIFICATION_TO, SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
 
         MockEndpoint mockEndpoint = getMockEndpoint("mock:as2RcvMsgs");
         mockEndpoint.expectedMinimumMessageCount(0);
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index 521b8f7..fb84e4c 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -28,13 +28,11 @@ import javax.annotation.Generated;
 @Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
 public interface EndpointBuilderFactory
         extends
-            org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory.AMQPBuilders,
-            org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory.AS2Builders,
-            org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory.AWS2EC2Builders,
-            org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory.AWS2S3Builders,
             org.apache.camel.builder.endpoint.dsl.ActiveMQEndpointBuilderFactory.ActiveMQBuilders,
             org.apache.camel.builder.endpoint.dsl.AhcEndpointBuilderFactory.AhcBuilders,
+            org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory.AMQPBuilders,
             org.apache.camel.builder.endpoint.dsl.ArangoDbEndpointBuilderFactory.ArangoDbBuilders,
+            org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory.AS2Builders,
             org.apache.camel.builder.endpoint.dsl.AsteriskEndpointBuilderFactory.AsteriskBuilders,
             org.apache.camel.builder.endpoint.dsl.Athena2EndpointBuilderFactory.Athena2Builders,
             org.apache.camel.builder.endpoint.dsl.AtlasMapEndpointBuilderFactory.AtlasMapBuilders,
@@ -48,16 +46,16 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.AtomixSetEndpointBuilderFactory.AtomixSetBuilders,
             org.apache.camel.builder.endpoint.dsl.AtomixValueEndpointBuilderFactory.AtomixValueBuilders,
             org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory.AvroBuilders,
+            org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory.AWS2EC2Builders,
+            org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory.AWS2S3Builders,
             org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory.BeanBuilders,
-            org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory.BeanValidatorBuilders,
             org.apache.camel.builder.endpoint.dsl.BeanstalkEndpointBuilderFactory.BeanstalkBuilders,
+            org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory.BeanValidatorBuilders,
             org.apache.camel.builder.endpoint.dsl.BlobEndpointBuilderFactory.BlobBuilders,
             org.apache.camel.builder.endpoint.dsl.BonitaEndpointBuilderFactory.BonitaBuilders,
             org.apache.camel.builder.endpoint.dsl.BoxEndpointBuilderFactory.BoxBuilders,
             org.apache.camel.builder.endpoint.dsl.BraintreeEndpointBuilderFactory.BraintreeBuilders,
             org.apache.camel.builder.endpoint.dsl.BrowseEndpointBuilderFactory.BrowseBuilders,
-            org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory.CMBuilders,
-            org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory.CMISBuilders,
             org.apache.camel.builder.endpoint.dsl.CaffeineCacheEndpointBuilderFactory.CaffeineCacheBuilders,
             org.apache.camel.builder.endpoint.dsl.CaffeineLoadCacheEndpointBuilderFactory.CaffeineLoadCacheBuilders,
             org.apache.camel.builder.endpoint.dsl.CassandraEndpointBuilderFactory.CassandraBuilders,
@@ -66,20 +64,20 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.CinderEndpointBuilderFactory.CinderBuilders,
             org.apache.camel.builder.endpoint.dsl.ClassEndpointBuilderFactory.ClassBuilders,
             org.apache.camel.builder.endpoint.dsl.ClientEndpointBuilderFactory.ClientBuilders,
+            org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory.CMBuilders,
+            org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory.CMISBuilders,
             org.apache.camel.builder.endpoint.dsl.CoAPEndpointBuilderFactory.CoAPBuilders,
             org.apache.camel.builder.endpoint.dsl.CometdEndpointBuilderFactory.CometdBuilders,
             org.apache.camel.builder.endpoint.dsl.ConsulEndpointBuilderFactory.ConsulBuilders,
             org.apache.camel.builder.endpoint.dsl.ControlBusEndpointBuilderFactory.ControlBusBuilders,
             org.apache.camel.builder.endpoint.dsl.CordaEndpointBuilderFactory.CordaBuilders,
             org.apache.camel.builder.endpoint.dsl.CosmosDbEndpointBuilderFactory.CosmosDbBuilders,
-            org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory.CouchDbBuilders,
             org.apache.camel.builder.endpoint.dsl.CouchbaseEndpointBuilderFactory.CouchbaseBuilders,
+            org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory.CouchDbBuilders,
             org.apache.camel.builder.endpoint.dsl.CronEndpointBuilderFactory.CronBuilders,
             org.apache.camel.builder.endpoint.dsl.Cw2EndpointBuilderFactory.Cw2Builders,
             org.apache.camel.builder.endpoint.dsl.CxfEndpointBuilderFactory.CxfBuilders,
             org.apache.camel.builder.endpoint.dsl.CxfRsEndpointBuilderFactory.CxfRsBuilders,
-            org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory.DJLBuilders,
-            org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory.DMSBuilders,
             org.apache.camel.builder.endpoint.dsl.DataFormatEndpointBuilderFactory.DataFormatBuilders,
             org.apache.camel.builder.endpoint.dsl.DataLakeEndpointBuilderFactory.DataLakeBuilders,
             org.apache.camel.builder.endpoint.dsl.DataSetEndpointBuilderFactory.DataSetBuilders,
@@ -96,22 +94,24 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.DirectVmEndpointBuilderFactory.DirectVmBuilders,
             org.apache.camel.builder.endpoint.dsl.DisruptorEndpointBuilderFactory.DisruptorBuilders,
             org.apache.camel.builder.endpoint.dsl.DisruptorVmEndpointBuilderFactory.DisruptorVmBuilders,
+            org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory.DJLBuilders,
+            org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory.DMSBuilders,
             org.apache.camel.builder.endpoint.dsl.DnsEndpointBuilderFactory.DnsBuilders,
             org.apache.camel.builder.endpoint.dsl.DockerEndpointBuilderFactory.DockerBuilders,
             org.apache.camel.builder.endpoint.dsl.DozerEndpointBuilderFactory.DozerBuilders,
             org.apache.camel.builder.endpoint.dsl.DrillEndpointBuilderFactory.DrillBuilders,
             org.apache.camel.builder.endpoint.dsl.DropboxEndpointBuilderFactory.DropboxBuilders,
             org.apache.camel.builder.endpoint.dsl.ECS2EndpointBuilderFactory.ECS2Builders,
-            org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.EKS2Builders,
             org.apache.camel.builder.endpoint.dsl.EhcacheEndpointBuilderFactory.EhcacheBuilders,
+            org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.EKS2Builders,
             org.apache.camel.builder.endpoint.dsl.ElasticsearchEndpointBuilderFactory.ElasticsearchBuilders,
             org.apache.camel.builder.endpoint.dsl.ElsqlEndpointBuilderFactory.ElsqlBuilders,
             org.apache.camel.builder.endpoint.dsl.EtcdKeysEndpointBuilderFactory.EtcdKeysBuilders,
             org.apache.camel.builder.endpoint.dsl.EtcdStatsEndpointBuilderFactory.EtcdStatsBuilders,
             org.apache.camel.builder.endpoint.dsl.EtcdWatchEndpointBuilderFactory.EtcdWatchBuilders,
+            org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders,
             org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory.EventBuilders,
             org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory.EventHubsBuilders,
-            org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders,
             org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory.ExecBuilders,
             org.apache.camel.builder.endpoint.dsl.FacebookEndpointBuilderFactory.FacebookBuilders,
             org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory.FhirBuilders,
@@ -147,7 +147,6 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.GridFsEndpointBuilderFactory.GridFsBuilders,
             org.apache.camel.builder.endpoint.dsl.GrpcEndpointBuilderFactory.GrpcBuilders,
             org.apache.camel.builder.endpoint.dsl.GuavaEventBusEndpointBuilderFactory.GuavaEventBusBuilders,
-            org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory.HBaseBuilders,
             org.apache.camel.builder.endpoint.dsl.HazelcastAtomicnumberEndpointBuilderFactory.HazelcastAtomicnumberBuilders,
             org.apache.camel.builder.endpoint.dsl.HazelcastInstanceEndpointBuilderFactory.HazelcastInstanceBuilders,
             org.apache.camel.builder.endpoint.dsl.HazelcastListEndpointBuilderFactory.HazelcastListBuilders,
@@ -159,12 +158,11 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.HazelcastSedaEndpointBuilderFactory.HazelcastSedaBuilders,
             org.apache.camel.builder.endpoint.dsl.HazelcastSetEndpointBuilderFactory.HazelcastSetBuilders,
             org.apache.camel.builder.endpoint.dsl.HazelcastTopicEndpointBuilderFactory.HazelcastTopicBuilders,
+            org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory.HBaseBuilders,
             org.apache.camel.builder.endpoint.dsl.HdfsEndpointBuilderFactory.HdfsBuilders,
             org.apache.camel.builder.endpoint.dsl.HttpEndpointBuilderFactory.HttpBuilders,
             org.apache.camel.builder.endpoint.dsl.IAM2EndpointBuilderFactory.IAM2Builders,
             org.apache.camel.builder.endpoint.dsl.IAMEndpointBuilderFactory.IAMBuilders,
-            org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory.IOTABuilders,
-            org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory.IPFSBuilders,
             org.apache.camel.builder.endpoint.dsl.IgniteCacheEndpointBuilderFactory.IgniteCacheBuilders,
             org.apache.camel.builder.endpoint.dsl.IgniteComputeEndpointBuilderFactory.IgniteComputeBuilders,
             org.apache.camel.builder.endpoint.dsl.IgniteEventsEndpointBuilderFactory.IgniteEventsBuilders,
@@ -175,35 +173,37 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.InfinispanEmbeddedEndpointBuilderFactory.InfinispanEmbeddedBuilders,
             org.apache.camel.builder.endpoint.dsl.InfinispanRemoteEndpointBuilderFactory.InfinispanRemoteBuilders,
             org.apache.camel.builder.endpoint.dsl.InfluxDbEndpointBuilderFactory.InfluxDbBuilders,
+            org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory.IOTABuilders,
+            org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory.IPFSBuilders,
             org.apache.camel.builder.endpoint.dsl.IrcEndpointBuilderFactory.IrcBuilders,
             org.apache.camel.builder.endpoint.dsl.IronMQEndpointBuilderFactory.IronMQBuilders,
             org.apache.camel.builder.endpoint.dsl.JBPMEndpointBuilderFactory.JBPMBuilders,
             org.apache.camel.builder.endpoint.dsl.JCacheEndpointBuilderFactory.JCacheBuilders,
-            org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory.JGroupsBuilders,
-            org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory.JGroupsRaftBuilders,
-            org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory.JMXBuilders,
-            org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory.JSR356WebSocketBuilders,
             org.apache.camel.builder.endpoint.dsl.JcloudsEndpointBuilderFactory.JcloudsBuilders,
             org.apache.camel.builder.endpoint.dsl.JcrEndpointBuilderFactory.JcrBuilders,
             org.apache.camel.builder.endpoint.dsl.JdbcEndpointBuilderFactory.JdbcBuilders,
             org.apache.camel.builder.endpoint.dsl.JettyHttpEndpointBuilderFactory.JettyHttpBuilders,
+            org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory.JGroupsBuilders,
+            org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory.JGroupsRaftBuilders,
             org.apache.camel.builder.endpoint.dsl.JingEndpointBuilderFactory.JingBuilders,
             org.apache.camel.builder.endpoint.dsl.JiraEndpointBuilderFactory.JiraBuilders,
             org.apache.camel.builder.endpoint.dsl.JmsEndpointBuilderFactory.JmsBuilders,
+            org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory.JMXBuilders,
             org.apache.camel.builder.endpoint.dsl.JoltEndpointBuilderFactory.JoltBuilders,
             org.apache.camel.builder.endpoint.dsl.JooqEndpointBuilderFactory.JooqBuilders,
             org.apache.camel.builder.endpoint.dsl.JpaEndpointBuilderFactory.JpaBuilders,
             org.apache.camel.builder.endpoint.dsl.JsltEndpointBuilderFactory.JsltBuilders,
-            org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory.JsonValidatorBuilders,
             org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory.JsonataBuilders,
+            org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory.JsonValidatorBuilders,
+            org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory.JSR356WebSocketBuilders,
             org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory.Jt400Builders,
-            org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders,
             org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory.KafkaBuilders,
             org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory.KameletBuilders,
             org.apache.camel.builder.endpoint.dsl.KameletReifyEndpointBuilderFactory.KameletReifyBuilders,
             org.apache.camel.builder.endpoint.dsl.KeystoneEndpointBuilderFactory.KeystoneBuilders,
             org.apache.camel.builder.endpoint.dsl.Kinesis2EndpointBuilderFactory.Kinesis2Builders,
             org.apache.camel.builder.endpoint.dsl.KinesisFirehose2EndpointBuilderFactory.KinesisFirehose2Builders,
+            org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory.KMS2Builders,
             org.apache.camel.builder.endpoint.dsl.KubernetesConfigMapsEndpointBuilderFactory.KubernetesConfigMapsBuilders,
             org.apache.camel.builder.endpoint.dsl.KubernetesCustomResourcesEndpointBuilderFactory.KubernetesCustomResourcesBuilders,
             org.apache.camel.builder.endpoint.dsl.KubernetesDeploymentsEndpointBuilderFactory.KubernetesDeploymentsBuilders,
@@ -227,13 +227,11 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.LogEndpointBuilderFactory.LogBuilders,
             org.apache.camel.builder.endpoint.dsl.LuceneEndpointBuilderFactory.LuceneBuilders,
             org.apache.camel.builder.endpoint.dsl.LumberjackEndpointBuilderFactory.LumberjackBuilders,
-            org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory.MQ2Builders,
-            org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory.MSK2Builders,
             org.apache.camel.builder.endpoint.dsl.MailEndpointBuilderFactory.MailBuilders,
             org.apache.camel.builder.endpoint.dsl.MasterEndpointBuilderFactory.MasterBuilders,
             org.apache.camel.builder.endpoint.dsl.MetricsEndpointBuilderFactory.MetricsBuilders,
-            org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory.MicroProfileMetricsBuilders,
             org.apache.camel.builder.endpoint.dsl.MicrometerEndpointBuilderFactory.MicrometerBuilders,
+            org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory.MicroProfileMetricsBuilders,
             org.apache.camel.builder.endpoint.dsl.MiloClientEndpointBuilderFactory.MiloClientBuilders,
             org.apache.camel.builder.endpoint.dsl.MiloServerEndpointBuilderFactory.MiloServerBuilders,
             org.apache.camel.builder.endpoint.dsl.MinaEndpointBuilderFactory.MinaBuilders,
@@ -241,6 +239,8 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.MllpEndpointBuilderFactory.MllpBuilders,
             org.apache.camel.builder.endpoint.dsl.MockEndpointBuilderFactory.MockBuilders,
             org.apache.camel.builder.endpoint.dsl.MongoDbEndpointBuilderFactory.MongoDbBuilders,
+            org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory.MQ2Builders,
+            org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory.MSK2Builders,
             org.apache.camel.builder.endpoint.dsl.MsvEndpointBuilderFactory.MsvBuilders,
             org.apache.camel.builder.endpoint.dsl.MustacheEndpointBuilderFactory.MustacheBuilders,
             org.apache.camel.builder.endpoint.dsl.MvelEndpointBuilderFactory.MvelBuilders,
@@ -248,9 +248,9 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory.MyBatisBuilders,
             org.apache.camel.builder.endpoint.dsl.NagiosEndpointBuilderFactory.NagiosBuilders,
             org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory.NatsBuilders,
-            org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders,
             org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory.NettyBuilders,
             org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory.NettyHttpBuilders,
+            org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory.NetWeaverBuilders,
             org.apache.camel.builder.endpoint.dsl.NeutronEndpointBuilderFactory.NeutronBuilders,
             org.apache.camel.builder.endpoint.dsl.NitriteEndpointBuilderFactory.NitriteBuilders,
             org.apache.camel.builder.endpoint.dsl.NovaEndpointBuilderFactory.NovaBuilders,
@@ -279,13 +279,12 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.RedisEndpointBuilderFactory.RedisBuilders,
             org.apache.camel.builder.endpoint.dsl.RefEndpointBuilderFactory.RefBuilders,
             org.apache.camel.builder.endpoint.dsl.RestApiEndpointBuilderFactory.RestApiBuilders,
+            org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory.ResteasyBuilders,
             org.apache.camel.builder.endpoint.dsl.RestEndpointBuilderFactory.RestBuilders,
             org.apache.camel.builder.endpoint.dsl.RestOpenApiEndpointBuilderFactory.RestOpenApiBuilders,
             org.apache.camel.builder.endpoint.dsl.RestSwaggerEndpointBuilderFactory.RestSwaggerBuilders,
-            org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory.ResteasyBuilders,
             org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory.RobotFrameworkBuilders,
             org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory.RssBuilders,
-            org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders,
             org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory.SagaBuilders,
             org.apache.camel.builder.endpoint.dsl.SalesforceEndpointBuilderFactory.SalesforceBuilders,
             org.apache.camel.builder.endpoint.dsl.SchedulerEndpointBuilderFactory.SchedulerBuilders,
@@ -328,6 +327,7 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.StompEndpointBuilderFactory.StompBuilders,
             org.apache.camel.builder.endpoint.dsl.StreamEndpointBuilderFactory.StreamBuilders,
             org.apache.camel.builder.endpoint.dsl.StringTemplateEndpointBuilderFactory.StringTemplateBuilders,
+            org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory.STS2Builders,
             org.apache.camel.builder.endpoint.dsl.StubEndpointBuilderFactory.StubBuilders,
             org.apache.camel.builder.endpoint.dsl.SwiftEndpointBuilderFactory.SwiftBuilders,
             org.apache.camel.builder.endpoint.dsl.TelegramEndpointBuilderFactory.TelegramBuilders,
@@ -357,10 +357,10 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.WsEndpointBuilderFactory.WsBuilders,
             org.apache.camel.builder.endpoint.dsl.XChangeEndpointBuilderFactory.XChangeBuilders,
             org.apache.camel.builder.endpoint.dsl.XJEndpointBuilderFactory.XJBuilders,
-            org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory.XQueryBuilders,
             org.apache.camel.builder.endpoint.dsl.XmlSignerEndpointBuilderFactory.XmlSignerBuilders,
             org.apache.camel.builder.endpoint.dsl.XmlVerifierEndpointBuilderFactory.XmlVerifierBuilders,
             org.apache.camel.builder.endpoint.dsl.XmppEndpointBuilderFactory.XmppBuilders,
+            org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory.XQueryBuilders,
             org.apache.camel.builder.endpoint.dsl.XsltEndpointBuilderFactory.XsltBuilders,
             org.apache.camel.builder.endpoint.dsl.XsltSaxonEndpointBuilderFactory.XsltSaxonBuilders,
             org.apache.camel.builder.endpoint.dsl.YammerEndpointBuilderFactory.YammerBuilders,
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index 9ced0e8..7d06b5f 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -25,13 +25,11 @@ import javax.annotation.Generated;
 @Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
 public interface EndpointBuilders
         extends
-            org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ActiveMQEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AhcEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AMQPEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ArangoDbEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AsteriskEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Athena2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AtlasMapEndpointBuilderFactory,
@@ -45,16 +43,16 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.AtomixSetEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AtomixValueEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.AvroEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AWS2EC2EndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.AWS2S3EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BeanEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BeanstalkEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.BeanValidatorEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BlobEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BonitaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BoxEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BraintreeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.BrowseEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CaffeineCacheEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CaffeineLoadCacheEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CassandraEndpointBuilderFactory,
@@ -63,20 +61,20 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.CinderEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ClassEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ClientEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.CMEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.CMISEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CoAPEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CometdEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ConsulEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ControlBusEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CordaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CosmosDbEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CouchbaseEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.CouchDbEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CronEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Cw2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CxfEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.CxfRsEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DataFormatEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DataLakeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DataSetEndpointBuilderFactory,
@@ -93,22 +91,24 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.DirectVmEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DisruptorEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DisruptorVmEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.DJLEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.DMSEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DnsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DockerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DozerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DrillEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.DropboxEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ECS2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EhcacheEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ElasticsearchEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ElsqlEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EtcdKeysEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EtcdStatsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EtcdWatchEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.FacebookEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory,
@@ -144,7 +144,6 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.GridFsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.GrpcEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.GuavaEventBusEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HazelcastAtomicnumberEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HazelcastInstanceEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HazelcastListEndpointBuilderFactory,
@@ -156,12 +155,11 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.HazelcastSedaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HazelcastSetEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HazelcastTopicEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.HBaseEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HdfsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.HttpEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IAM2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IAMEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IgniteCacheEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IgniteComputeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IgniteEventsEndpointBuilderFactory,
@@ -172,35 +170,37 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.InfinispanEmbeddedEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.InfinispanRemoteEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.InfluxDbEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.IOTAEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.IPFSEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IrcEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.IronMQEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JBPMEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JCacheEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JcloudsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JcrEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JdbcEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JettyHttpEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.JGroupsEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.JGroupsRaftEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JingEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JiraEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JmsEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.JMXEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JoltEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JooqEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JpaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JsltEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.JsonataEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.JsonValidatorEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.JSR356WebSocketEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Jt400EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KafkaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KameletEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KameletReifyEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KeystoneEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.Kinesis2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KinesisFirehose2EndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.KMS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KubernetesConfigMapsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KubernetesCustomResourcesEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.KubernetesDeploymentsEndpointBuilderFactory,
@@ -224,13 +224,11 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.LogEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.LuceneEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.LumberjackEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MailEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MasterEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MetricsEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MicrometerEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.MicroProfileMetricsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MiloClientEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MiloServerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MinaEndpointBuilderFactory,
@@ -238,6 +236,8 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.MllpEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MockEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MongoDbEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.MQ2EndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.MSK2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MsvEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MustacheEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.MvelEndpointBuilderFactory,
@@ -245,9 +245,9 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.MyBatisEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NagiosEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NatsEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NettyEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NettyHttpEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.NetWeaverEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NeutronEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NitriteEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.NovaEndpointBuilderFactory,
@@ -276,13 +276,12 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.RedisEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RefEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RestApiEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RestEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RestOpenApiEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RestSwaggerEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.ResteasyEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RobotFrameworkEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.RssEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SagaEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SalesforceEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SchedulerEndpointBuilderFactory,
@@ -325,6 +324,7 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.StompEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.StreamEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.StringTemplateEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.STS2EndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.StubEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.SwiftEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.TelegramEndpointBuilderFactory,
@@ -354,10 +354,10 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.WsEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XChangeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XJEndpointBuilderFactory,
-            org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XmlSignerEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XmlVerifierEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XmppEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.XQueryEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XsltEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.XsltSaxonEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.YammerEndpointBuilderFactory,
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AS2EndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AS2EndpointBuilderFactory.java
index fb2440f..afc50bb 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AS2EndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AS2EndpointBuilderFactory.java
@@ -123,6 +123,21 @@ public interface AS2EndpointBuilderFactory {
             return this;
         }
         /**
+         * The name of the attached file.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param attachedFileName the value to set
+         * @return the dsl builder
+         */
+        default AS2EndpointConsumerBuilder attachedFileName(
+                String attachedFileName) {
+            doSetProperty("attachedFileName", attachedFileName);
+            return this;
+        }
+        /**
          * The Client Fully Qualified Domain Name (FQDN). Used in message ids
          * sent by endpoint.
          * 
@@ -829,6 +844,21 @@ public interface AS2EndpointBuilderFactory {
             return this;
         }
         /**
+         * The name of the attached file.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param attachedFileName the value to set
+         * @return the dsl builder
+         */
+        default AS2EndpointProducerBuilder attachedFileName(
+                String attachedFileName) {
+            doSetProperty("attachedFileName", attachedFileName);
+            return this;
+        }
+        /**
          * The Client Fully Qualified Domain Name (FQDN). Used in message ids
          * sent by endpoint.
          * 
@@ -1515,6 +1545,20 @@ public interface AS2EndpointBuilderFactory {
             return this;
         }
         /**
+         * The name of the attached file.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param attachedFileName the value to set
+         * @return the dsl builder
+         */
+        default AS2EndpointBuilder attachedFileName(String attachedFileName) {
+            doSetProperty("attachedFileName", attachedFileName);
+            return this;
+        }
+        /**
          * The Client Fully Qualified Domain Name (FQDN). Used in message ids
          * sent by endpoint.
          * 
diff --git a/docs/components/modules/ROOT/pages/as2-component.adoc b/docs/components/modules/ROOT/pages/as2-component.adoc
index 008acdf..98ee69b 100644
--- a/docs/components/modules/ROOT/pages/as2-component.adoc
+++ b/docs/components/modules/ROOT/pages/as2-component.adoc
@@ -118,7 +118,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (30 parameters):
+=== Query Parameters (31 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -128,6 +128,7 @@ with the following path and query parameters:
 | *as2MessageStructure* (common) | The structure of AS2 Message. One of: PLAIN - No encryption, no signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption, no signature, ENCRYPTED_SIGNED - Encryption, signature. There are 8 enums and the value can be one of: PLAIN, SIGNED, ENCRYPTED, SIGNED_ENCRYPTED, PLAIN_COMPRESSED, SIGNED_COMPRESSED, ENCRYPTED_COMPRESSED, ENCRYPTED_COMPRESSED_SIGNED |  | AS2MessageStructure
 | *as2To* (common) | The value of the AS2To header of AS2 message. |  | String
 | *as2Version* (common) | The version of the AS2 protocol. There are 2 enums and the value can be one of: 1.0, 1.1 | 1.1 | String
+| *attachedFileName* (common) | The name of the attached file |  | String
 | *clientFqdn* (common) | The Client Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint. | camel.apache.org | String
 | *compressionAlgorithm* (common) | The algorithm used to compress EDI message. There are 1 enums and the value can be one of: ZLIB |  | AS2CompressionAlgorithm
 | *decryptingPrivateKey* (common) | The key used to encrypt the EDI message. |  | PrivateKey
@@ -193,7 +194,7 @@ The client API has 1 method(s) which is represented by the following method sign
 [source,java]
 ----
 
-org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm signingAlgorithm, java.security.cert.Certificate[] signingCertificateChain, java.security.PrivateKey signingPrivateKey, org [...]
+org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMessageTransferEncoding, org.apache.camel.component.as2.api.AS2SignatureAlgorithm signingAlgorithm, java.security.cert.Certificate[] signingCertificateChain, java.security.PrivateKey signingPrivateKey, org [...]
 
 ----
 
@@ -219,10 +220,11 @@ The client API method(s) has the following set of parameters listed in the table
 | send | *as2From* |  AS2 name of sender | String
 | send | *as2MessageStructure* |  The structure of AS2 to send; see AS2MessageStructure | AS2MessageStructure
 | send | *as2To* |  AS2 name of recipient | String
+| send | *attachedFileName* | *Optional*  The name of the attached file or null if user doesn't want to specify it | String
 | send | *compressionAlgorithm* | *Optional*  The algorithm used to compress the message or null if sending EDI message uncompressed | AS2CompressionAlgorithm
 | send | *dispositionNotificationTo* | *Optional*  An RFC2822 address to request a receipt or null if no receipt requested | String
 | send | *ediMessage* |  EDI message to transport | String
-| send | *ediMessageContentType* |  The content typw of EDI message | ContentType
+| send | *ediMessageContentType* |  The content type of EDI message | ContentType
 | send | *ediMessageTransferEncoding* | *Optional*  The transfer encoding used to transport EDI message | String
 | send | *encryptingAlgorithm* | *Optional*  The algorithm used to encrypt the message or null if sending EDI message unencrypted | AS2EncryptionAlgorithm
 | send | *encryptingCertificateChain* | *Optional*  The chain of certificates used to encrypt the message or null if sending EDI message unencrypted | Certificate[]
@@ -235,7 +237,7 @@ The client API method(s) has the following set of parameters listed in the table
 | send | *subject* |  Message subject | String
 |===
 
-In addition to the parameters above, the client API can also use from the 30 endpoint query option
+In addition to the parameters above, the client API can also use from the 31 endpoint query option
 which is listed in the _Query Parameters_ section.
 
 Any of the parameters can be provided in either the endpoint URI, or dynamically in a message header.
@@ -284,7 +286,7 @@ The server API method(s) has the following set of parameters listed in the table
 | listen | *requestUriPattern* |   | String
 |===
 
-In addition to the parameters above, the server API can also use from the 30 endpoint query option
+In addition to the parameters above, the server API can also use from the 31 endpoint query option
 which is listed in the _Query Parameters_ section.
 
 Any of the parameters can be provided in either the endpoint URI, or dynamically in a message header.