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

igarashitm 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 4c8a0816e8aa CAMEL-23669: camel-hl7: Missing reifier update for 
targetFormat
4c8a0816e8aa is described below

commit 4c8a0816e8aa1f83b200cb246c8f98e6654af35a
Author: Tomohisa Igarashi <[email protected]>
AuthorDate: Wed Jun 3 16:14:30 2026 -0400

    CAMEL-23669: camel-hl7: Missing reifier update for targetFormat
    
    Follows up https://github.com/apache/camel/pull/23714 - the 1st PR was 
missing an update on reifier to propagate a new property `targetFormat`, 
prevents it from working in YAML DSL
---
 .../camel/component/hl7/HL7XmlDataFormatTest.java  | 40 ++++++++++++++++++++++
 .../reifier/dataformat/HL7DataFormatReifier.java   |  1 +
 2 files changed, 41 insertions(+)

diff --git 
a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7XmlDataFormatTest.java
 
b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7XmlDataFormatTest.java
index 5b639b768a8d..db3b85c4dc2e 100644
--- 
a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7XmlDataFormatTest.java
+++ 
b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7XmlDataFormatTest.java
@@ -110,6 +110,36 @@ public class HL7XmlDataFormatTest extends CamelTestSupport 
{
         assertTrue(xml.contains("urn:hl7-org:v2xml"));
     }
 
+    @Test
+    public void testUnmarshalXmlFormatViaModelDefinition() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:unmarshalXmlModel");
+        mock.expectedMessageCount(1);
+
+        String body = createHL7AsString();
+        template.sendBody("direct:unmarshalXmlModel", body);
+
+        MockEndpoint.assertIsSatisfied(context);
+        Object rawBody = mock.getReceivedExchanges().get(0).getIn().getBody();
+        assertNotNull(rawBody);
+        assertInstanceOf(Document.class, rawBody);
+        Document doc = (Document) rawBody;
+        assertEquals("ORM_O01", doc.getDocumentElement().getLocalName());
+    }
+
+    @Test
+    public void testRoundTripViaModelDefinition() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:roundtripModel");
+        mock.expectedMessageCount(1);
+
+        String body = createHL7AsString();
+        template.sendBody("direct:roundtripModel", body);
+
+        MockEndpoint.assertIsSatisfied(context);
+        String edi = 
mock.getReceivedExchanges().get(0).getIn().getBody(String.class);
+        assertTrue(edi.contains("MSH|^~\\&|"));
+        assertTrue(edi.contains("ORM^O01"));
+    }
+
     @Test
     public void testRoundTripEdiToXmlToEdi() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:roundtrip");
@@ -139,6 +169,13 @@ public class HL7XmlDataFormatTest extends CamelTestSupport 
{
         final HL7DataFormat hl7Default = new HL7DataFormat();
         hl7Default.setValidate(false);
 
+        final org.apache.camel.model.dataformat.HL7DataFormat hl7XmlDef
+                = new org.apache.camel.model.dataformat.HL7DataFormat.Builder()
+                        .targetFormat("XML").validate(false).end();
+        final org.apache.camel.model.dataformat.HL7DataFormat hl7DefaultDef
+                = new org.apache.camel.model.dataformat.HL7DataFormat.Builder()
+                        .validate(false).end();
+
         return new RouteBuilder() {
             public void configure() {
                 
from("direct:unmarshalOk").unmarshal().hl7(false).to("mock:unmarshal");
@@ -147,6 +184,9 @@ public class HL7XmlDataFormatTest extends CamelTestSupport {
                 
from("direct:marshalFromDoc").marshal(hl7Default).to("mock:marshalFromDoc");
                 
from("direct:marshalXmlOutput").marshal(hl7Xml).to("mock:marshalXmlOutput");
                 
from("direct:roundtrip").unmarshal(hl7Xml).marshal(hl7Default).to("mock:roundtrip");
+
+                
from("direct:unmarshalXmlModel").unmarshal(hl7XmlDef).to("mock:unmarshalXmlModel");
+                
from("direct:roundtripModel").unmarshal(hl7XmlDef).marshal(hl7DefaultDef).to("mock:roundtripModel");
             }
         };
     }
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
index 7683a18005bc..aef1b4122fb7 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/dataformat/HL7DataFormatReifier.java
@@ -32,6 +32,7 @@ public class HL7DataFormatReifier extends 
DataFormatReifier<HL7DataFormat> {
     protected void prepareDataFormatConfig(Map<String, Object> properties) {
         properties.put("parser", asRef(definition.getParser()));
         properties.put("validate", definition.getValidate());
+        properties.put("targetFormat", definition.getTargetFormat());
     }
 
 }

Reply via email to