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 db84461deeb Solving TODO, values for from and subject are now read 
from the endpoint configuration (#9076)
db84461deeb is described below

commit db84461deeb018a8aea7d929b0a0d946d8509451
Author: Dennis Schwarz <[email protected]>
AuthorDate: Fri Jan 13 13:24:02 2023 +0100

    Solving TODO, values for from and subject are now read from the endpoint 
configuration (#9076)
---
 .../apache/camel/component/as2/AS2Consumer.java    |  7 +++---
 .../camel/component/as2/AS2ServerManagerIT.java    | 29 +++++++++++++++++++++-
 2 files changed, 32 insertions(+), 4 deletions(-)

diff --git 
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
 
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
index d2535a51939..2c6142b1eda 100644
--- 
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
+++ 
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
@@ -43,6 +43,8 @@ import org.apache.http.protocol.HttpRequestHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static java.util.Optional.ofNullable;
+
 /**
  * The AS2 consumer.
  *
@@ -115,9 +117,8 @@ public class AS2Consumer extends 
AbstractApiConsumer<AS2ApiName, AS2Configuratio
         try {
             if (request instanceof HttpEntityEnclosingRequest) {
                 EntityParser.parseAS2MessageEntity(request);
-                // TODO derive last to parameters from configuration.
-                apiProxy.handleMDNResponse(context, "MDN Response",
-                        "Camel AS2 Server Endpoint");
+                apiProxy.handleMDNResponse(context, getEndpoint().getSubject(),
+                        
ofNullable(getEndpoint().getFrom()).orElse(getEndpoint().getConfiguration().getServer()));
             }
 
             ApplicationEDIEntity ediEntity
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 4982e7b0854..7449fe0a66f 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
@@ -207,7 +207,7 @@ public class AS2ServerManagerIT extends 
AbstractAS2ITSupport {
         assertEquals(EDI_MESSAGE.replaceAll("[\n\r]", ""), 
rcvdMessageFromBody.replaceAll("[\n\r]", ""),
                 "EDI message does not match");
     }
-
+    
     @Test
     public void receiveMultipartSignedMessageTest() throws Exception {
 
@@ -378,6 +378,30 @@ public class AS2ServerManagerIT extends 
AbstractAS2ITSupport {
         String errorMessage = new 
String(Streams.readAll(responseEntity.getContent()));
         assertEquals(EXPECTED_EXCEPTION_MSG, errorMessage, "");
     }
+    
+    @Test
+    public void checkMDNTest() throws Exception {
+        AS2ClientConnection clientConnection
+                = new AS2ClientConnection(AS2_VERSION, USER_AGENT, 
CLIENT_FQDN, TARGET_HOST, TARGET_PORT);
+        AS2ClientManager clientManager = new 
AS2ClientManager(clientConnection);
+        
+        //Testing MDN parameter defaults
+        HttpCoreContext response=clientManager.send(EDI_MESSAGE, REQUEST_URI, 
SUBJECT, FROM, AS2_NAME, AS2_NAME, AS2MessageStructure.PLAIN,
+                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, 
StandardCharsets.US_ASCII), null, null, null, null,
+                null, DISPOSITION_NOTIFICATION_TO, 
SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
+        
+        assertEquals(new AS2Configuration().getServer(), 
response.getResponse().getFirstHeader(AS2Header.FROM).getValue(), "Default 
value for From header not set");
+        assertEquals("MDN Response To:" + SUBJECT, 
response.getResponse().getFirstHeader(AS2Header.SUBJECT).getValue(), "Default 
value for Subject header not set");
+        
+        //Testing MDN parameter overwrites
+         response=clientManager.send(EDI_MESSAGE, REQUEST_URI+"mdnTest", 
SUBJECT, FROM, AS2_NAME, AS2_NAME, AS2MessageStructure.PLAIN,
+                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, 
StandardCharsets.US_ASCII), null, null, null, null,
+                null, DISPOSITION_NOTIFICATION_TO, 
SIGNED_RECEIPT_MIC_ALGORITHMS, null, null, null);
+        
+        assertEquals("MdnTestFrom", 
response.getResponse().getFirstHeader(AS2Header.FROM).getValue(), "Configured 
value for From header not set");
+        assertEquals("MdnTestSubjectPrefix" + SUBJECT, 
response.getResponse().getFirstHeader(AS2Header.SUBJECT).getValue(), 
"Configured value for Subject header not set");
+    }
+
 
     private static void setupSigningGenerator() throws Exception {
         Security.addProvider(new BouncyCastleProvider());
@@ -462,6 +486,9 @@ public class AS2ServerManagerIT extends 
AbstractAS2ITSupport {
                         .process(failingProcessor)
                         .to("mock:as2RcvMsgs");
 
+                // test route for listen with custom MDN parameters
+                from("as2://" + PATH_PREFIX + 
"/listen?requestUriPattern=/mdnTest&from=MdnTestFrom&subject=MdnTestSubjectPrefix")
+                        .to("mock:as2RcvMsgs");
             }
         };
     }

Reply via email to