You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by di...@apache.org on 2007/07/12 18:32:05 UTC

svn commit: r555689 - in /webservices/commons/trunk/modules/axiom: ./ modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/ modules/axiom-api/src/main/java/org/apache/axiom/om/impl/util/ modules/axiom-api/src/main/java/org/apache/axiom/so...

Author: dims
Date: Thu Jul 12 09:31:59 2007
New Revision: 555689

URL: http://svn.apache.org/viewvc?view=rev&rev=555689
Log:
Fix for WSCOMMONS-214 - Test Failures when switching parser to sjsxp 1.0.1 

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/util/OMSerializerUtil.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMSourcedElementTest.java
    webservices/commons/trunk/modules/axiom/pom.xml

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java?view=diff&rev=555689&r1=555688&r2=555689
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java Thu Jul 12 09:31:59 2007
@@ -139,8 +139,28 @@
         if (!setPrefixFirst) {
             if (eNamespace != null) {
                 if (ePrefix == null) {
-                    writer.writeStartElement("", reader.getLocalName(), eNamespace);
+                    if (writer.getNamespaceContext().getNamespaceURI(eNamespace) == null) {
+                        
+                        if (writePrefixList == null) {
+                            writePrefixList = new ArrayList();
+                            writeNSList = new ArrayList();
+                        }
+                        writePrefixList.add("");
+                        writeNSList.add(eNamespace);
+                    }   
+                    
+                    writer.writeStartElement("", reader.getLocalName(), eNamespace);    
                 } else {
+                    
+                    if (writer.getNamespaceContext().getNamespaceURI(eNamespace) == null) {
+                        if (writePrefixList == null) {
+                            writePrefixList = new ArrayList();
+                            writeNSList = new ArrayList();
+                        }   
+                        writePrefixList.add(ePrefix);
+                        writeNSList.add(eNamespace);
+                    }
+                    
                     writer.writeStartElement(ePrefix, reader.getLocalName(), eNamespace);
                 }
             } else {

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/util/OMSerializerUtil.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/util/OMSerializerUtil.java?view=diff&rev=555689&r1=555688&r2=555689
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/util/OMSerializerUtil.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/util/OMSerializerUtil.java Thu Jul 12 09:31:59 2007
@@ -157,7 +157,7 @@
      */
     public static boolean isSetPrefixBeforeStartElement(XMLStreamWriter writer) {
         NamespaceContext nc = writer.getNamespaceContext();
-        return (nc == null || nc.getClass().getName().indexOf("wstx") == -1);
+        return (nc == null || (nc.getClass().getName().indexOf("wstx") == -1 && nc.getClass().getName().indexOf("sun") == -1));
     }
 
     /**
@@ -216,11 +216,39 @@
 
         // Write the startElement if required
         boolean setPrefixFirst = isSetPrefixBeforeStartElement(writer);
+        
         if (!setPrefixFirst) {
             if (eNamespace != null) {
                 if (ePrefix == null) {
+                    if (writer.getNamespaceContext().getNamespaceURI("") == null 
+                        ||  !writer.getNamespaceContext().getNamespaceURI("").equals(eNamespace)) {
+                        
+                        if (writePrefixList == null) {
+                            writePrefixList = new ArrayList();
+                            writeNSList = new ArrayList();
+                        }
+                        if (! writePrefixList.contains("")) {
+                            writePrefixList.add("");
+                            writeNSList.add(eNamespace);
+                        }
+                    }
                     writer.writeStartElement("", localName, eNamespace);
                 } else {
+                    /*
+                     * If XMLStreamWriter.writeStartElement(prefix,localName,namespaceURI) associates
+                     * the prefix with the namespace .. 
+                     */
+                    if (writer.getNamespaceContext().getNamespaceURI(ePrefix) == null) {
+                        if (writePrefixList == null) {
+                            writePrefixList = new ArrayList();
+                            writeNSList = new ArrayList();
+                        }
+                        if (! writePrefixList.contains(ePrefix)) {
+                            writePrefixList.add(ePrefix);
+                            writeNSList.add(eNamespace);
+                        }
+                    }
+                    
                     writer.writeStartElement(ePrefix, localName, eNamespace);
                 }
             } else {
@@ -375,7 +403,7 @@
                 // prefix is empty then do not replace because attributes do not
                 // default to the default namespace like elements do.
                 String writerPrefix = writer.getPrefix(namespace);
-                if (!prefix.equals(writerPrefix) && !"".equals(writerPrefix)) {
+                if (!prefix.equals(writerPrefix) && writerPrefix  != null && !"".equals(writerPrefix)) {
                     prefix = writerPrefix;
                 }
             }
@@ -546,6 +574,7 @@
                 // No Action needed..The writer already has associated this prefix to this namespace
                 if(isSetPrefixFirst){
                     newPrefix = writer.getNamespaceContext().getPrefix(namespace);
+                    newPrefix = (newPrefix == null || newPrefix.length() == 0)  ? null : newPrefix ;
                 }
             }
         } else {

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java?view=diff&rev=555689&r1=555688&r2=555689
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java Thu Jul 12 09:31:59 2007
@@ -43,11 +43,10 @@
     protected void processNamespaceData(OMElement node, boolean checkSOAPNamespace) {
         int namespaceCount = parser.getNamespaceCount();
         for (int i = 0; i < namespaceCount; i++) {
-            String nsp = parser.getNamespaceURI(i);
-            String prefix = parser.getNamespacePrefix(i);
-            if(nsp != null && prefix != null) {
-                node.declareNamespace(nsp,
-                        prefix);
+            String namespaceURI = parser.getNamespaceURI(i);
+            if (namespaceURI != null) {
+                node.declareNamespace(parser.getNamespaceURI(i),
+                            parser.getNamespacePrefix(i));
             }
         }
 

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?view=diff&rev=555689&r1=555688&r2=555689
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java Thu Jul 12 09:31:59 2007
@@ -315,6 +315,9 @@
             this.namespaces = new HashMap(5);
         }
         namespaces.put("", namespace);
+        if (ns == null || "".equals(ns.getPrefix())) {
+            ns = namespace;
+        }
         return namespace;
     }
 

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMSourcedElementTest.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMSourcedElementTest.java?view=diff&rev=555689&r1=555688&r2=555689
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMSourcedElementTest.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMSourcedElementTest.java Thu Jul 12 09:31:59 2007
@@ -139,12 +139,12 @@
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         element.serialize(bos);
         String newText = new String(bos.toByteArray());
-        assertXMLEqual("Serialized text error", testDocument, newText);
+        assertEquals("Serialized text error", testDocument, newText);
         assertTrue("Element not expanded when serializing", element.isExpanded());
 
         bos = new ByteArrayOutputStream();
         element.serialize(bos);
-        assertXMLEqual("Serialized text error", testDocument,
+        assertEquals("Serialized text error", testDocument,
                      new String(bos.toByteArray()));
         assertTrue("Element not expanded when serializing", element.isExpanded());
     }
@@ -171,13 +171,13 @@
         StringWriter writer = new StringWriter();
         element.serialize(writer);
         String result = writer.toString();
-        assertXMLEqual("Serialized text error", testDocument, result);
+        assertEquals("Serialized text error", testDocument, result);
         assertTrue("Element not expanded when serializing", element.isExpanded());
 
         writer = new StringWriter();
         element.serialize(writer);
         result = writer.toString();
-        assertXMLEqual("Serialized text error", testDocument, result);
+        assertEquals("Serialized text error", testDocument, result);
         assertTrue("Element not expanded when serializing", element.isExpanded());
     }
 
@@ -190,7 +190,7 @@
         StringWriter writer = new StringWriter();
         element.serializeAndConsume(writer);
         String result = writer.toString();
-        assertXMLEqual("Serialized text error", testDocument, result);
+        assertEquals("Serialized text error", testDocument, result);
         assertFalse("Element expansion when serializing", element.isExpanded());
     }
 
@@ -204,14 +204,14 @@
         XMLStreamWriter xmlwriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
         element.serialize(writer);
         xmlwriter.flush();
-        assertXMLEqual("Serialized text error", testDocument, writer.toString());
+        assertEquals("Serialized text error", testDocument, writer.toString());
         assertTrue("Element not expanded when serializing", element.isExpanded());
 
         writer = new StringWriter();
         xmlwriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
         element.serialize(writer);
         xmlwriter.flush();
-        assertXMLEqual("Serialized text error", testDocument, writer.toString());
+        assertEquals("Serialized text error", testDocument, writer.toString());
         assertTrue("Element not expanded when serializing", element.isExpanded());
     }
 
@@ -225,7 +225,7 @@
         XMLStreamWriter xmlwriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
         element.serializeAndConsume(writer);
         xmlwriter.flush();
-        assertXMLEqual("Serialized text error", testDocument, writer.toString());
+        assertEquals("Serialized text error", testDocument, writer.toString());
         assertFalse("Element expansion when serializing", element.isExpanded());
     }
 

Modified: webservices/commons/trunk/modules/axiom/pom.xml
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/pom.xml?view=diff&rev=555689&r1=555688&r2=555689
==============================================================================
--- webservices/commons/trunk/modules/axiom/pom.xml (original)
+++ webservices/commons/trunk/modules/axiom/pom.xml Thu Jul 12 09:31:59 2007
@@ -505,5 +505,10 @@
         <stax.impl.groupid>org.codehaus.woodstox</stax.impl.groupid>
         <stax.impl.artifact>wstx-asl</stax.impl.artifact>
         <stax.impl.version>3.2.1</stax.impl.version>
+        <!--
+        <stax.impl.groupid>com.sun.xml.stream</stax.impl.groupid>
+        <stax.impl.artifact>sjsxp</stax.impl.artifact>
+        <stax.impl.version>1.0.1</stax.impl.version>
+        -->
     </properties>
 </project>



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org