Author: veithen
Date: Sun May 20 11:13:56 2012
New Revision: 1340672

URL: http://svn.apache.org/viewvc?rev=1340672&view=rev
Log:
* Let JiBX use the feature introduced by AXIOM-420.
* Also declare the JiBXDataSource as non destructive.

Modified:
    
axis/axis2/java/core/trunk/modules/jibx/src/main/java/org/apache/axis2/jibx/JiBXDataSource.java

Modified: 
axis/axis2/java/core/trunk/modules/jibx/src/main/java/org/apache/axis2/jibx/JiBXDataSource.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jibx/src/main/java/org/apache/axis2/jibx/JiBXDataSource.java?rev=1340672&r1=1340671&r2=1340672&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/jibx/src/main/java/org/apache/axis2/jibx/JiBXDataSource.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/jibx/src/main/java/org/apache/axis2/jibx/JiBXDataSource.java
 Sun May 20 11:13:56 2012
@@ -19,9 +19,8 @@
 
 package org.apache.axis2.jibx;
 
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.QNameAwareOMDataSource;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.ds.AbstractPushOMDataSource;
 import org.jibx.runtime.IBindingFactory;
 import org.jibx.runtime.IMarshallable;
 import org.jibx.runtime.IMarshaller;
@@ -31,16 +30,11 @@ import org.jibx.runtime.JiBXException;
 import org.jibx.runtime.impl.StAXWriter;
 
 import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
-import java.io.Writer;
 
 /** Data source for OM element backed by JiBX data bound object. */
-public class JiBXDataSource implements QNameAwareOMDataSource {
+public class JiBXDataSource extends AbstractPushOMDataSource implements 
QNameAwareOMDataSource {
     
     /** Mapping name, for when abstract mapping is used directly; 
<code>null</code> if not used). */
     private final String marshallerName;
@@ -157,6 +151,10 @@ public class JiBXDataSource implements Q
         return elementNamespacePrefix;
     }
 
+    public boolean isDestructiveWrite() {
+        return false;
+    }
+
     /**
      * Internal method to handle the actual marshalling. If the source object 
is marshallable it's
      * it's just marshalled directly, without worrying about redundant 
namespace declarations and
@@ -214,38 +212,6 @@ public class JiBXDataSource implements Q
     }
 
     /* (non-Javadoc)
-     * @see org.apache.axiom.om.OMDataSource#serialize(java.io.OutputStream, 
org.apache.axiom.om.OMOutputFormat)
-     */
-    public void serialize(OutputStream output, OMOutputFormat format) throws 
XMLStreamException {
-        try {
-            
-            // marshal with all namespace declarations, since external state 
unknown
-            IMarshallingContext ctx = 
bindingFactory.createMarshallingContext();
-            ctx.setOutput(output, format == null ? null : 
format.getCharSetEncoding());
-            marshal(true, ctx);
-            
-        } catch (JiBXException e) {
-            throw new XMLStreamException("Error in JiBX marshalling: " + 
e.getMessage(), e);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.axiom.om.OMDataSource#serialize(java.io.Writer, 
org.apache.axiom.om.OMOutputFormat)
-     */
-    public void serialize(Writer writer, OMOutputFormat format) throws 
XMLStreamException {
-        try {
-            
-            // marshal with all namespace declarations, since external state 
unknown
-            IMarshallingContext ctx = 
bindingFactory.createMarshallingContext();
-            ctx.setOutput(writer);
-            marshal(true, ctx);
-            
-        } catch (JiBXException e) {
-            throw new XMLStreamException("Error in JiBX marshalling: " + 
e.getMessage(), e);
-        }
-    }
-
-    /* (non-Javadoc)
      * @see 
org.apache.axiom.om.OMDataSource#serialize(javax.xml.stream.XMLStreamWriter)
      */
     public void serialize(XMLStreamWriter xmlWriter) throws XMLStreamException 
{
@@ -279,13 +245,4 @@ public class JiBXDataSource implements Q
             throw new XMLStreamException("Error in JiBX marshalling: " + 
e.getMessage(), e);
         }
     }
-
-    /* (non-Javadoc)
-     * @see org.apache.axiom.om.OMDataSource#getReader()
-     */
-    public XMLStreamReader getReader() throws XMLStreamException {
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        serialize(bos, null);
-        return StAXUtils.createXMLStreamReader(new 
ByteArrayInputStream(bos.toByteArray()));
-    }
 }
\ No newline at end of file


Reply via email to