You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2013/03/23 12:17:34 UTC

svn commit: r1460127 - in /webservices/axiom/trunk/modules: axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/ axiom-impl/src/test/java/org/apache/axiom/om/impl/llo...

Author: veithen
Date: Sat Mar 23 11:17:32 2013
New Revision: 1460127

URL: http://svn.apache.org/r1460127
Log:
Added test cases for the OMDataSource to SAX serialization code (in push mode) and implemented some unimplemented methods.

Added:
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestGetSAXSourceWithPushOMDataSource.java   (with props)
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementScenario.java   (with props)
Modified:
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerXMLStreamWriter.java
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXHelper.java
    webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
    webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestPushOMDataSourceExpansion.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/GetNamespaceContextScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/PushOMDataSourceScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteAttributeNoNamespaceScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCDataScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCommentScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerProviderScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementAutoPrefixScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteNamespaceScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction1Scenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction2Scenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementAutoPrefixScenario.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementWithDefaultNamespaceDeclaredOnParentScenario.java

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerXMLStreamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerXMLStreamWriter.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerXMLStreamWriter.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerXMLStreamWriter.java Sat Mar 23 11:17:32 2013
@@ -18,17 +18,22 @@
  */
 package org.apache.axiom.om.impl.common.serializer.push.sax;
 
+import java.io.IOException;
+
+import javax.activation.DataHandler;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
+import org.apache.axiom.ext.stax.datahandler.DataHandlerWriter;
+import org.apache.axiom.util.base64.Base64EncodingWriterOutputStream;
 import org.apache.axiom.util.namespace.ScopedNamespaceContext;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.AttributesImpl;
 
-final class ContentHandlerXMLStreamWriter implements XMLStreamWriter {
+final class ContentHandlerXMLStreamWriter implements XMLStreamWriter, DataHandlerWriter {
     private final SAXHelper helper;
     private final ContentHandler contentHandler;
     private final LexicalHandler lexicalHandler;
@@ -48,8 +53,6 @@ final class ContentHandlerXMLStreamWrite
      * {@link ContentHandler#endPrefixMapping(String)} events.
      */
     private final ScopedNamespaceContext outputNsContext = new ScopedNamespaceContext();
-    
-    private final AttributesImpl attributes = new AttributesImpl();
 
     ContentHandlerXMLStreamWriter(SAXHelper helper, ContentHandler contentHandler, LexicalHandler lexicalHandler,
             ScopedNamespaceContext nsContext) {
@@ -63,10 +66,31 @@ final class ContentHandlerXMLStreamWrite
         return s == null ? "" : s;
     }
     
+    private String internalGetPrefix(String namespaceURI) throws XMLStreamException {
+        String prefix = writerNsContext.getPrefix(namespaceURI);
+        if (prefix == null) {
+            throw new XMLStreamException("Unbound namespace URI '" + namespaceURI + "'");
+        } else {
+            return prefix;
+        }
+    }
+    
+    public Object getProperty(String name) throws IllegalArgumentException {
+        if (name.equals(DataHandlerWriter.PROPERTY)) {
+            return this;
+        } else {
+            return null;
+        }
+    }
+
     public NamespaceContext getNamespaceContext() {
         return writerNsContext;
     }
 
+    public void setPrefix(String prefix, String uri) throws XMLStreamException {
+        writerNsContext.setPrefix(normalize(prefix), normalize(uri));
+    }
+
     public void setDefaultNamespace(String uri) throws XMLStreamException {
         writerNsContext.setPrefix("", normalize(uri));
     }
@@ -82,6 +106,36 @@ final class ContentHandlerXMLStreamWrite
         outputNsContext.startScope();
     }
 
+    public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {
+        writeStartElement(internalGetPrefix(namespaceURI), localName, namespaceURI);
+    }
+
+    public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {
+        finishStartElementIfNecessary();
+        helper.beginStartElement(normalize(prefix), normalize(namespaceURI), localName);
+        try {
+            helper.finishStartElement(contentHandler);
+            helper.writeEndElement(contentHandler, null);
+        } catch (SAXException ex) {
+            throw new SAXExceptionWrapper(ex);
+        }
+    }
+
+    public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {
+        writeEmptyElement(internalGetPrefix(namespaceURI), localName, namespaceURI);
+    }
+
+    public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException {
+        prefix = normalize(prefix);
+        namespaceURI = normalize(namespaceURI);
+        outputNsContext.setPrefix(prefix, namespaceURI);
+        try {
+            contentHandler.startPrefixMapping(prefix, namespaceURI);
+        } catch (SAXException ex) {
+            throw new SAXExceptionWrapper(ex);
+        }
+    }
+
     public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException {
         namespaceURI = normalize(namespaceURI);
         outputNsContext.setPrefix("", namespaceURI);
@@ -96,6 +150,10 @@ final class ContentHandlerXMLStreamWrite
         helper.addAttribute(normalize(prefix), normalize(namespaceURI), localName, "CDATA", value);
     }
 
+    public void writeAttribute(String localName, String value) throws XMLStreamException {
+        helper.addAttribute("", "", localName, "CDATA", value);
+    }
+
     private void finishStartElementIfNecessary() throws XMLStreamException {
         if (helper.isInStartElement()) {
             try {
@@ -126,70 +184,93 @@ final class ContentHandlerXMLStreamWrite
         }
     }
 
-    public void flush() throws XMLStreamException {
-    }
-
-    public void close() throws XMLStreamException {
+    public void writeCData(String data) throws XMLStreamException {
+        finishStartElementIfNecessary();
+        try {
+            if (lexicalHandler != null) {
+                lexicalHandler.startCDATA();
+            }
+            char[] ch = data.toCharArray();
+            contentHandler.characters(ch, 0, ch.length);
+            if (lexicalHandler != null) {
+                lexicalHandler.endCDATA();
+            }
+        } catch (SAXException ex) {
+            throw new SAXExceptionWrapper(ex);
+        }
     }
 
-    public Object getProperty(String name) throws IllegalArgumentException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void writeDataHandler(DataHandler dataHandler, String contentID, boolean optimize)
+            throws IOException, XMLStreamException {
+        finishStartElementIfNecessary();
+        Base64EncodingWriterOutputStream out = new Base64EncodingWriterOutputStream(new ContentHandlerWriter(contentHandler));
+        dataHandler.writeTo(out);
+        out.complete();
     }
 
-    public void setNamespaceContext(NamespaceContext context) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void writeDataHandler(DataHandlerProvider dataHandlerProvider, String contentID,
+            boolean optimize) throws IOException, XMLStreamException {
+        writeDataHandler(dataHandlerProvider.getDataHandler(), contentID, optimize);
     }
 
-    public void setPrefix(String prefix, String uri) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void writeComment(String data) throws XMLStreamException {
+        finishStartElementIfNecessary();
+        if (lexicalHandler != null) {
+            try {
+                char[] ch = data.toCharArray();
+                lexicalHandler.comment(ch, 0, ch.length);
+            } catch (SAXException ex) {
+                throw new SAXExceptionWrapper(ex);
+            }
+        }
     }
 
-    public void writeAttribute(String localName, String value) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void writeProcessingInstruction(String target) throws XMLStreamException {
+        finishStartElementIfNecessary();
+        try {
+            contentHandler.processingInstruction(target, "");
+        } catch (SAXException ex) {
+            throw new SAXExceptionWrapper(ex);
+        }
     }
 
-    public void writeAttribute(String namespaceURI, String localName, String value)
-            throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void writeProcessingInstruction(String target, String data) throws XMLStreamException {
+        finishStartElementIfNecessary();
+        try {
+            contentHandler.processingInstruction(target, data);
+        } catch (SAXException ex) {
+            throw new SAXExceptionWrapper(ex);
+        }
     }
 
-    public void writeCData(String data) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void flush() throws XMLStreamException {
     }
 
-    public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
+    public void close() throws XMLStreamException {
     }
 
-    public void writeComment(String data) throws XMLStreamException {
+    public void setNamespaceContext(NamespaceContext context) throws XMLStreamException {
         // TODO
         throw new UnsupportedOperationException();
     }
 
-    public void writeDTD(String dtd) throws XMLStreamException {
+    public void writeAttribute(String namespaceURI, String localName, String value)
+            throws XMLStreamException {
         // TODO
         throw new UnsupportedOperationException();
     }
 
-    public void writeEmptyElement(String localName) throws XMLStreamException {
+    public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {
         // TODO
         throw new UnsupportedOperationException();
     }
 
-    public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {
+    public void writeDTD(String dtd) throws XMLStreamException {
         // TODO
         throw new UnsupportedOperationException();
     }
 
-    public void writeEmptyElement(String prefix, String localName, String namespaceURI)
-            throws XMLStreamException {
+    public void writeEmptyElement(String localName) throws XMLStreamException {
         // TODO
         throw new UnsupportedOperationException();
     }
@@ -204,21 +285,6 @@ final class ContentHandlerXMLStreamWrite
         throw new UnsupportedOperationException();
     }
 
-    public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
-
-    public void writeProcessingInstruction(String target) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
-
-    public void writeProcessingInstruction(String target, String data) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
-
     public void writeStartDocument() throws XMLStreamException {
         // TODO
         throw new UnsupportedOperationException();
@@ -238,9 +304,4 @@ final class ContentHandlerXMLStreamWrite
         // TODO
         throw new UnsupportedOperationException();
     }
-
-    public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
 }

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXHelper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXHelper.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXHelper.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXHelper.java Sat Mar 23 11:17:32 2013
@@ -70,9 +70,11 @@ final class SAXHelper {
         String elementLocalName = (String)elementNameStack.pop();
         String elementURI = (String)elementNameStack.pop();
         contentHandler.endElement(elementURI, elementLocalName, elementQName);
-        for (int i=nsContext.getBindingsCount()-1; i>=nsContext.getFirstBindingInCurrentScope(); i--) {
-            contentHandler.endPrefixMapping(nsContext.getPrefix(i));
+        if (nsContext != null) {
+            for (int i=nsContext.getBindingsCount()-1; i>=nsContext.getFirstBindingInCurrentScope(); i--) {
+                contentHandler.endPrefixMapping(nsContext.getPrefix(i));
+            }
+            nsContext.endScope();
         }
-        nsContext.endScope();
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java Sat Mar 23 11:17:32 2013
@@ -34,6 +34,7 @@ import org.apache.axiom.ts.om.factory.Te
 import org.apache.axiom.ts.om.factory.TestCreateOMElementWithNamespaceInScope1;
 import org.apache.axiom.ts.om.node.TestInsertSiblingAfterOnChild;
 import org.apache.axiom.ts.om.node.TestInsertSiblingBeforeOnChild;
+import org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource;
 
 public class OMImplementationTest extends TestCase {
     public static TestSuite suite() {
@@ -66,6 +67,11 @@ public class OMImplementationTest extend
         // TODO: this is not supported yet
         builder.exclude(TestGetXMLStreamReaderWithIncompleteDescendant.class, "(cache=false)");
         
+        // TODO: not yet working
+        builder.exclude(TestGetSAXSourceWithPushOMDataSource.class, "(|(scenario=writeDataHandler)(scenario=writeDataHandlerProvider))");
+        // TODO: need to evaluate if the test case is correct
+        builder.exclude(TestGetSAXSourceWithPushOMDataSource.class, "(&(scenario=getNamespaceContext)(serializeParent=false))");
+        
         return builder.build();
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java Sat Mar 23 11:17:32 2013
@@ -30,6 +30,7 @@ import org.apache.axiom.ts.om.document.T
 import org.apache.axiom.ts.om.element.TestGetXMLStreamReaderWithIncompleteDescendant;
 import org.apache.axiom.ts.om.node.TestInsertSiblingAfterOnChild;
 import org.apache.axiom.ts.om.node.TestInsertSiblingBeforeOnChild;
+import org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource;
 
 public class OMImplementationTest extends TestCase {
     public static TestSuite suite() {
@@ -51,6 +52,11 @@ public class OMImplementationTest extend
         // TODO: if there is a comment node surrounded by text, then these text nodes need to be merged
         builder.exclude(TestDigest.class, "(|(file=digest3.xml)(file=digest4.xml))");
         
+        // TODO: not yet working
+        builder.exclude(TestGetSAXSourceWithPushOMDataSource.class, "(|(scenario=writeDataHandler)(scenario=writeDataHandlerProvider))");
+        // TODO: need to evaluate if the test case is correct
+        builder.exclude(TestGetSAXSourceWithPushOMDataSource.class, "(&(scenario=getNamespaceContext)(serializeParent=false))");
+        
         return builder.build();
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Sat Mar 23 11:17:32 2013
@@ -456,6 +456,11 @@ public class OMTestSuiteBuilder extends 
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNextOMSiblingIncomplete(metaFactory));
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetObject(metaFactory));
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetReaderException(metaFactory));
+            for (int i=0; i<PushOMDataSourceScenario.INSTANCES.length; i++) {
+                PushOMDataSourceScenario scenario = PushOMDataSourceScenario.INSTANCES[i];
+                addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource(metaFactory, scenario, false));
+                addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource(metaFactory, scenario, true));
+            }
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetTextAsStreamWithNonDestructiveOMDataSource(metaFactory));
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestInputStreamDS(metaFactory));
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1DefaultPrefix(metaFactory));

Added: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestGetSAXSourceWithPushOMDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestGetSAXSourceWithPushOMDataSource.java?rev=1460127&view=auto
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestGetSAXSourceWithPushOMDataSource.java (added)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestGetSAXSourceWithPushOMDataSource.java Sat Mar 23 11:17:32 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.ts.om.sourcedelement;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.transform.sax.SAXSource;
+
+import org.apache.axiom.om.OMContainer;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMSourcedElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.ds.AbstractPushOMDataSource;
+import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.om.sourcedelement.push.PushOMDataSourceScenario;
+
+/**
+ * Tests that the {@link SAXSource} returned by {@link OMContainer#getSAXSource(boolean)} correctly
+ * serializes an {@link OMSourcedElement} backed by an {@link AbstractPushOMDataSource}.
+ */
+public class TestGetSAXSourceWithPushOMDataSource extends AxiomTestCase {
+    private final PushOMDataSourceScenario scenario;
+    private boolean serializeParent;
+    
+    public TestGetSAXSourceWithPushOMDataSource(OMMetaFactory metaFactory, PushOMDataSourceScenario scenario, boolean serializeParent) {
+        super(metaFactory);
+        this.scenario = scenario;
+        this.serializeParent = serializeParent;
+        scenario.addTestParameters(this);
+        addTestParameter("serializeParent", Boolean.toString(serializeParent));
+    }
+
+    protected void runTest() throws Throwable {
+        final Map testContext = new HashMap();
+        OMFactory factory = metaFactory.getOMFactory();
+        OMSourcedElement sourcedElement = factory.createOMElement(new AbstractPushOMDataSource() {
+            public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+                scenario.serialize(writer, testContext);
+            }
+            
+            public boolean isDestructiveWrite() {
+                return false;
+            }
+        });
+        Iterator it = scenario.getNamespaceContext().entrySet().iterator();
+        OMElement parent;
+        if (it.hasNext()) {
+            Map.Entry binding = (Map.Entry)it.next();
+            parent = factory.createOMElement("parent", factory.createOMNamespace((String)binding.getValue(), (String)binding.getKey()));
+            while (it.hasNext()) {
+                binding = (Map.Entry)it.next();
+                parent.declareNamespace(factory.createOMNamespace((String)binding.getValue(), (String)binding.getKey()));
+            }
+        } else {
+            parent = factory.createOMElement("parent", null);
+        }
+        parent.addChild(sourcedElement);
+        SAXSource saxSource = (serializeParent ? parent : sourcedElement).getSAXSource(true);
+        OMElement element = OMXMLBuilderFactory.createOMBuilder(factory, saxSource, false).getDocumentElement();
+        if (serializeParent) {
+            element = element.getFirstElement();
+        }
+        scenario.validate(element, false, testContext);
+    }
+}

Propchange: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestGetSAXSourceWithPushOMDataSource.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestPushOMDataSourceExpansion.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestPushOMDataSourceExpansion.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestPushOMDataSourceExpansion.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestPushOMDataSourceExpansion.java Sat Mar 23 11:17:32 2013
@@ -67,6 +67,6 @@ public class TestPushOMDataSourceExpansi
             }
             parent.addChild(element);
         }
-        scenario.validate(element, testContext);
+        scenario.validate(element, true, testContext);
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/GetNamespaceContextScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/GetNamespaceContextScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/GetNamespaceContextScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/GetNamespaceContextScenario.java Sat Mar 23 11:17:32 2013
@@ -48,7 +48,7 @@ public class GetNamespaceContextScenario
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         // Expand element
         element.getFirstOMChild();
         Assert.assertEquals("urn:test", testContext.get("uri"));

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/PushOMDataSourceScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/PushOMDataSourceScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/PushOMDataSourceScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/PushOMDataSourceScenario.java Sat Mar 23 11:17:32 2013
@@ -20,6 +20,7 @@ package org.apache.axiom.ts.om.sourcedel
 
 import java.util.Map;
 
+import javax.activation.DataHandler;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
@@ -40,6 +41,7 @@ public interface PushOMDataSourceScenari
             new WriteCommentScenario(),
             new WriteDataHandlerScenario(),
             new WriteDataHandlerProviderScenario(),
+            new WriteEmptyElementScenario(),
             new WriteEmptyElementAutoPrefixScenario(),
             new WriteNamespaceScenario("", ""),
             new WriteNamespaceScenario("", "urn:test"),
@@ -64,7 +66,7 @@ public interface PushOMDataSourceScenari
      *            the {@link XMLStreamWriter}
      * @param testContext
      *            a map to store context information for the current test case execution; the same
-     *            object is passed to {@link #validate(OMElement, Map)}
+     *            object is passed to {@link #validate(OMElement, boolean, Map)}
      * @throws XMLStreamException
      */
     void serialize(XMLStreamWriter writer, Map testContext) throws XMLStreamException;
@@ -75,9 +77,15 @@ public interface PushOMDataSourceScenari
      * @param element
      *            the {@link OMElement} representing the XML data produced by
      *            {@link #serialize(XMLStreamWriter, Map)}
+     * @param dataHandlersPreserved
+     *            <code>true</code> if {@link DataHandler} objects written to the
+     *            {@link XMLStreamWriter} are expected to have been preserved as is;
+     *            <code>false</code> if they are expected to have been transformed to base64 encoded
+     *            character data
      * @param testContext
      *            a map to store context information for the current test case execution; the same
      *            object is passed to {@link #serialize(XMLStreamWriter, Map)}
+     * @throws Throwable
      */
-    void validate(OMElement element, Map testContext);
+    void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable;
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteAttributeNoNamespaceScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteAttributeNoNamespaceScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteAttributeNoNamespaceScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteAttributeNoNamespaceScenario.java Sat Mar 23 11:17:32 2013
@@ -47,7 +47,7 @@ public class WriteAttributeNoNamespaceSc
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         Assert.assertEquals("value", element.getAttributeValue(new QName("attr")));
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCDataScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCDataScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCDataScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCDataScenario.java Sat Mar 23 11:17:32 2013
@@ -45,7 +45,7 @@ public class WriteCDataScenario implemen
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMNode child = element.getFirstOMChild();
         Assert.assertTrue(child instanceof OMText);
         OMText text = (OMText)child;

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCommentScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCommentScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCommentScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteCommentScenario.java Sat Mar 23 11:17:32 2013
@@ -45,7 +45,7 @@ public class WriteCommentScenario implem
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMNode child = element.getFirstOMChild();
         Assert.assertTrue(child instanceof OMComment);
         Assert.assertEquals("comment", ((OMComment)child).getValue());

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerProviderScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerProviderScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerProviderScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerProviderScenario.java Sat Mar 23 11:17:32 2013
@@ -30,6 +30,7 @@ import org.apache.axiom.ext.stax.datahan
 import org.apache.axiom.ext.stax.datahandler.DataHandlerWriter;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMText;
+import org.apache.axiom.testutils.io.IOTestUtils;
 import org.apache.axiom.testutils.suite.MatrixTestCase;
 import org.apache.axiom.util.stax.XMLStreamWriterUtils;
 import org.junit.Assert;
@@ -68,9 +69,14 @@ public class WriteDataHandlerProviderSce
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMText child = (OMText)element.getFirstOMChild();
-        Assert.assertTrue(child.isBinary());
-        Assert.assertSame(dh, child.getDataHandler());
+        if (dataHandlersPreserved) {
+            Assert.assertTrue(child.isBinary());
+            Assert.assertSame(dh, child.getDataHandler());
+        } else {
+            child.setBinary(true);
+            IOTestUtils.compareStreams(dh.getInputStream(), ((DataHandler)child.getDataHandler()).getInputStream());
+        }
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteDataHandlerScenario.java Sat Mar 23 11:17:32 2013
@@ -29,6 +29,7 @@ import javax.xml.stream.XMLStreamWriter;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerWriter;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMText;
+import org.apache.axiom.testutils.io.IOTestUtils;
 import org.apache.axiom.testutils.suite.MatrixTestCase;
 import org.apache.axiom.util.stax.XMLStreamWriterUtils;
 import org.junit.Assert;
@@ -58,9 +59,14 @@ public class WriteDataHandlerScenario im
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMText child = (OMText)element.getFirstOMChild();
-        Assert.assertTrue(child.isBinary());
-        Assert.assertSame(dh, child.getDataHandler());
+        if (dataHandlersPreserved) {
+            Assert.assertTrue(child.isBinary());
+            Assert.assertSame(dh, child.getDataHandler());
+        } else {
+            child.setBinary(true);
+            IOTestUtils.compareStreams(dh.getInputStream(), ((DataHandler)child.getDataHandler()).getInputStream());
+        }
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementAutoPrefixScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementAutoPrefixScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementAutoPrefixScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementAutoPrefixScenario.java Sat Mar 23 11:17:32 2013
@@ -49,7 +49,7 @@ public class WriteEmptyElementAutoPrefix
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMElement child = element.getFirstElement();
         Assert.assertEquals("p", child.getPrefix());
         Assert.assertEquals("urn:test", child.getNamespaceURI());

Added: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementScenario.java?rev=1460127&view=auto
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementScenario.java (added)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementScenario.java Sat Mar 23 11:17:32 2013
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.ts.om.sourcedelement.push;
+
+import java.util.Collections;
+import java.util.Map;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.testutils.suite.MatrixTestCase;
+import org.junit.Assert;
+
+/**
+ * Scenario that uses {@link XMLStreamWriter#writeEmptyElement(String, String, String)}.
+ */
+public class WriteEmptyElementScenario implements PushOMDataSourceScenario {
+    public void addTestParameters(MatrixTestCase testCase) {
+        testCase.addTestParameter("scenario", "writeEmptyElement");
+    }
+
+    public Map getNamespaceContext() {
+        return Collections.EMPTY_MAP;
+    }
+
+    public void serialize(XMLStreamWriter writer, Map testContext) throws XMLStreamException {
+        writer.writeStartElement(null, "root", null);
+        writer.writeNamespace("p", "urn:test");
+        writer.writeEmptyElement("p", "child", "urn:test");
+        writer.writeEndElement();
+    }
+
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
+        OMElement child = element.getFirstElement();
+        Assert.assertEquals("p", child.getPrefix());
+        Assert.assertEquals("urn:test", child.getNamespaceURI());
+        Assert.assertEquals("child", child.getLocalName());
+    }
+}

Propchange: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteEmptyElementScenario.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteNamespaceScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteNamespaceScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteNamespaceScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteNamespaceScenario.java Sat Mar 23 11:17:32 2013
@@ -60,7 +60,7 @@ public class WriteNamespaceScenario impl
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMNamespace decl = null;
         Iterator it = element.getAllDeclaredNamespaces();
         while (it.hasNext()) {

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction1Scenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction1Scenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction1Scenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction1Scenario.java Sat Mar 23 11:17:32 2013
@@ -45,7 +45,7 @@ public class WriteProcessingInstruction1
         writer.writeEndElement();
     }
     
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMNode child = element.getFirstOMChild();
         Assert.assertTrue(child instanceof OMProcessingInstruction);
         OMProcessingInstruction pi = (OMProcessingInstruction)child;

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction2Scenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction2Scenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction2Scenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteProcessingInstruction2Scenario.java Sat Mar 23 11:17:32 2013
@@ -45,7 +45,7 @@ public class WriteProcessingInstruction2
         writer.writeEndElement();
     }
     
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMNode child = element.getFirstOMChild();
         Assert.assertTrue(child instanceof OMProcessingInstruction);
         OMProcessingInstruction pi = (OMProcessingInstruction)child;

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementAutoPrefixScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementAutoPrefixScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementAutoPrefixScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementAutoPrefixScenario.java Sat Mar 23 11:17:32 2013
@@ -51,7 +51,7 @@ public class WriteStartElementAutoPrefix
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMElement child = element.getFirstElement();
         Assert.assertEquals("p", child.getPrefix());
         Assert.assertEquals("urn:test", child.getNamespaceURI());

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementWithDefaultNamespaceDeclaredOnParentScenario.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementWithDefaultNamespaceDeclaredOnParentScenario.java?rev=1460127&r1=1460126&r2=1460127&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementWithDefaultNamespaceDeclaredOnParentScenario.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/push/WriteStartElementWithDefaultNamespaceDeclaredOnParentScenario.java Sat Mar 23 11:17:32 2013
@@ -51,7 +51,7 @@ public class WriteStartElementWithDefaul
         writer.writeEndElement();
     }
 
-    public void validate(OMElement element, Map testContext) {
+    public void validate(OMElement element, boolean dataHandlersPreserved, Map testContext) throws Throwable {
         OMElement child = element.getFirstElement();
         Assert.assertNull(child.getPrefix());
         Assert.assertEquals("urn:test", child.getNamespaceURI());