You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2013/01/09 15:52:26 UTC
svn commit: r1430873 - in /camel/branches/camel-2.9.x: ./
components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7DataFormat.java
components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java
Author: ningjiang
Date: Wed Jan 9 14:52:26 2013
New Revision: 1430873
URL: http://svn.apache.org/viewvc?rev=1430873&view=rev
Log:
CAMEL-5943 Applied the patch with thanks to Andrea
Merged revisions 1430868 via svnmerge from
https://svn.apache.org/repos/asf/camel/branches/camel-2.10.x
................
r1430868 | ningjiang | 2013-01-09 22:14:02 +0800 (Wed, 09 Jan 2013) | 10 lines
Merged revisions 1430724 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r1430724 | ningjiang | 2013-01-09 16:06:04 +0800 (Wed, 09 Jan 2013) | 1 line
CAMEL-5943 Applied the patch with thanks to Andrea
........
................
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7DataFormat.java
camel/branches/camel-2.9.x/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1430724
Merged /camel/branches/camel-2.10.x:r1430868
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.9.x/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7DataFormat.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7DataFormat.java?rev=1430873&r1=1430872&r2=1430873&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7DataFormat.java (original)
+++ camel/branches/camel-2.9.x/components/camel-hl7/src/main/java/org/apache/camel/component/hl7/HL7DataFormat.java Wed Jan 9 14:52:26 2013
@@ -24,6 +24,7 @@ import ca.uhn.hl7v2.util.Terser;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.util.ExchangeHelper;
+import org.apache.camel.util.IOHelper;
/**
* HL7 DataFormat (supports v2.x of the HL7 protocol).
@@ -67,7 +68,8 @@ public class HL7DataFormat implements Da
public void marshal(Exchange exchange, Object body, OutputStream outputStream) throws Exception {
Message message = ExchangeHelper.convertToMandatoryType(exchange, Message.class, body);
String encoded = HL7Converter.encode(message, validate);
- outputStream.write(encoded.getBytes());
+ String charsetName = IOHelper.getCharsetName(exchange);
+ outputStream.write(encoded.getBytes(charsetName));
}
public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
Modified: camel/branches/camel-2.9.x/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java?rev=1430873&r1=1430872&r2=1430873&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java (original)
+++ camel/branches/camel-2.9.x/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7DataFormatTest.java Wed Jan 9 14:52:26 2013
@@ -21,7 +21,7 @@ import ca.uhn.hl7v2.model.v24.message.AD
import ca.uhn.hl7v2.model.v24.segment.MSA;
import ca.uhn.hl7v2.model.v24.segment.MSH;
import ca.uhn.hl7v2.model.v24.segment.QRD;
-
+import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
@@ -31,7 +31,9 @@ import org.junit.Test;
* Unit test for HL7 DataFormat.
*/
public class HL7DataFormatTest extends CamelTestSupport {
-
+ private static final String NONE_ISO_8859_1 =
+ "\u221a\u00c4\u221a\u00e0\u221a\u00e5\u221a\u00ed\u221a\u00f4\u2248\u00ea";
+
@Test
public void testMarshal() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:marshal");
@@ -45,6 +47,32 @@ public class HL7DataFormatTest extends C
assertMockEndpointsSatisfied();
}
+
+ @Test
+ public void testMarshalISO8859() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:marshal");
+ mock.expectedMessageCount(1);
+ mock.message(0).body().isInstanceOf(byte[].class);
+ mock.message(0).body(String.class).contains("MSA|AA|123");
+ mock.message(0).body(String.class).contains("QRD|20080805120000");
+ mock.message(0).body(String.class).not().contains(NONE_ISO_8859_1);
+ Message message = createHL7AsMessage();
+ template.sendBodyAndProperty("direct:marshal", message, Exchange.CHARSET_NAME, "ISO-8859-1");
+ assertMockEndpointsSatisfied();
+ }
+
+ @Test
+ public void testMarshalUTF8() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:marshal");
+ mock.expectedMessageCount(1);
+ mock.message(0).body().isInstanceOf(byte[].class);
+ mock.message(0).body(String.class).contains("MSA|AA|123");
+ mock.message(0).body(String.class).contains("QRD|20080805120000");
+ mock.message(0).body(String.class).contains(NONE_ISO_8859_1);
+ Message message = createHL7AsMessage();
+ template.sendBodyAndProperty("direct:marshal", message, Exchange.CHARSET_NAME, "UTF-8");
+ assertMockEndpointsSatisfied();
+ }
@Test
public void testUnmarshal() throws Exception {
@@ -98,7 +126,7 @@ public class HL7DataFormatTest extends C
private static Message createHL7AsMessage() throws Exception {
ADR_A19 adr = new ADR_A19();
-
+
// Populate the MSH Segment
MSH mshSegment = adr.getMSH();
mshSegment.getFieldSeparator().setValue("|");
@@ -113,6 +141,7 @@ public class HL7DataFormatTest extends C
MSA msa = adr.getMSA();
msa.getAcknowledgementCode().setValue("AA");
msa.getMessageControlID().setValue("123");
+ msa.getMsa3_TextMessage().setValue(NONE_ISO_8859_1);
QRD qrd = adr.getQRD();
qrd.getQueryDateTime().getTimeOfAnEvent().setValue("20080805120000");