You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2016/05/09 23:38:13 UTC

[06/16] cxf git commit: [CXF-6895] Adding DOM4JProvider reading XML with BOM

[CXF-6895] Adding DOM4JProvider reading XML with BOM


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/33865ba7
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/33865ba7
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/33865ba7

Branch: refs/heads/master-jaxrs-2.1
Commit: 33865ba7f470d4241b176c516250508e28c16439
Parents: b875cec
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon May 9 10:55:15 2016 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon May 9 10:55:15 2016 +0100

----------------------------------------------------------------------
 .../jaxrs/provider/dom4j/DOM4JProviderTest.java | 23 ++++++++++++++++++++
 1 file changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/33865ba7/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/dom4j/DOM4JProviderTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/dom4j/DOM4JProviderTest.java b/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/dom4j/DOM4JProviderTest.java
index a0912a0..98c3845 100644
--- a/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/dom4j/DOM4JProviderTest.java
+++ b/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/dom4j/DOM4JProviderTest.java
@@ -20,6 +20,8 @@ package org.apache.cxf.jaxrs.provider.dom4j;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.SequenceInputStream;
 import java.lang.annotation.Annotation;
 import java.nio.charset.StandardCharsets;
 
@@ -27,6 +29,7 @@ import javax.ws.rs.core.Application;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.ext.Providers;
 
+import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.jaxrs.impl.MetadataMap;
 import org.apache.cxf.jaxrs.impl.ProvidersImpl;
@@ -51,9 +54,29 @@ public class DOM4JProviderTest extends Assert {
         // starts with the xml PI
         assertTrue(str.contains("<a/>") || str.contains("<a></a>"));
     }
+    @Test
+    public void testReadXMLWithBom() throws Exception {
+        String str = readXMLBom().asXML();
+        // starts with the xml PI
+        assertTrue(str.contains("<a/>") || str.contains("<a></a>"));
+    }
     private org.dom4j.Document readXML() throws Exception {
         return readXML(MediaType.APPLICATION_XML_TYPE, "<a/>");
     }
+    private org.dom4j.Document readXMLBom() throws Exception {
+        byte[] bom = new byte[]{(byte)239, (byte)187, (byte)191};
+        assertEquals("efbbbf", StringUtils.toHexString(bom));
+        byte[] strBytes = "<a/>".getBytes(StandardCharsets.UTF_8);
+        InputStream is = new SequenceInputStream(new ByteArrayInputStream(bom),
+                                                 new ByteArrayInputStream(strBytes));
+        DOM4JProvider p = new DOM4JProvider();
+        p.setProviders(new ProvidersImpl(createMessage(false)));
+        org.dom4j.Document dom = p.readFrom(org.dom4j.Document.class, org.dom4j.Document.class, 
+            new Annotation[] {}, MediaType.valueOf("text/xml;a=b"), 
+            new MetadataMap<String, String>(),
+            is);
+        return dom;
+    }
     private org.dom4j.Document readXML(MediaType ct, final String xml) throws Exception {
         DOM4JProvider p = new DOM4JProvider();
         p.setProviders(new ProvidersImpl(createMessage(false)));