[ 
https://issues.apache.org/jira/browse/CAMEL-8079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Ohr updated CAMEL-8079:
---------------------------------
    Attachment: PATCH-8079.diff

> Provide possibility to delegate charset evaluation of a HL7 message to 
> HL7DataFormat
> ------------------------------------------------------------------------------------
>
>                 Key: CAMEL-8079
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8079
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-hl7
>            Reporter: Christian Ohr
>             Fix For: 2.14.1, 2.15.0, 2.13.4
>
>         Attachments: PATCH-8079.diff
>
>
> The HL7Codec directly creates a String from the message, using the charset 
> hardcoded in its HL7MLLPConfig. This is too static. 
> * The field MSH-18 of the message may contain the charset in which the 
> message is encoded (much like encoding=... in the XML header) and which shall 
> be used for decoding.
> * Other information nested the exchange may also be usable to derive the 
> appropriate charset if MSH-18 is empty.
> The attached patch improves the behavior in a backwards-compatible way.
> * HL7MLLPCodec has a new property named "produceString" (default true). If 
> set to false, the codec sends a byte array into the route instead of a 
> string. In this case, no charset is evaluated yet.
> * the HL7DataFormat checks the field MSH-18 for the charset to be used for 
> marshalling and unmarshalling. If MSH-18 is empty,  it uses the standard 
> Camel charset properties/headers by default. If MSH-18 was populated, the 
> value is copied to a new message header "CamelHL7Charset"
> * the HL7DataFormat also offers an extension point in order to "guess" the 
> charset from the byte array content (e.g. using ICU4J's CharsetDetector).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to