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());
}
}