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 <d...@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 <d...@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 = "m...@example.org"; + private static final String ATTACHED_FILE_NAME = "filename.txt"; private static final String MDN_FROM = "as2t...@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", "mr...@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", "mr...@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", "mr...@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: <code>java.lang.String</code> 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: <code>java.lang.String</code> 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: <code>java.lang.String</code> 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.