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/26 21:45:45 UTC

[17/50] [abbrv] cxf git commit: Adding outbound serializing functionality

Adding outbound serializing functionality


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

Branch: refs/heads/master-jaxrs-2.1
Commit: bba546b4cdde6ff35f935a0bef30394fd4fc0e52
Parents: c29c334
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Fri May 20 11:44:12 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Fri May 20 14:01:19 2016 +0100

----------------------------------------------------------------------
 .../cxf/ws/security/wss4j/StaxSerializer.java   | 26 ++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/bba546b4/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
----------------------------------------------------------------------
diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
index 9af3d2f..cc9045b 100644
--- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
+++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
@@ -19,16 +19,20 @@
 package org.apache.cxf.ws.security.wss4j;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.StringReader;
 
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 
 import org.apache.cxf.staxutils.StaxUtils;
@@ -61,6 +65,28 @@ public class StaxSerializer extends AbstractSerializer {
         String fragment = createContext(source, ctx);
         return deserialize(ctx, new InputSource(new StringReader(fragment)));
     }
+    
+    @Override
+    public byte[] serializeToByteArray(Element element) throws Exception {
+        try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
+            XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(baos);
+            StaxUtils.copy(element, writer);
+            writer.close();
+            return baos.toByteArray();
+        }
+    }
+    
+    @Override
+    public byte[] serializeToByteArray(NodeList content) throws Exception {
+        try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
+            XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(baos);
+            for (int i = 0; i < content.getLength(); i++) {
+                StaxUtils.copy(new DOMSource(content.item(i)), writer);
+            }
+            writer.close();
+            return baos.toByteArray();
+        }
+    }
 
     /**
      * @param ctx