Author: chinthaka
Date: Mon Jul 24 00:58:24 2006
New Revision: 424954

URL: http://svn.apache.org/viewvc?rev=424954&view=rev
Log:
Reverting the last commit as the build is failing due to that. PLEASE DO NOT 
COMMIT ANYTHING WITHOUT TESTING THE BUILD.

Added:
    webservices/commons/trunk/modules/axiom/test-resources/binary/
Removed:
    
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/om/impl/serializer/StreamingOMSerializerTest.java
Modified:
    
webservices/commons/trunk/modules/axiom/src/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java
    
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/om/impl/serializer/NoNamespaceSerializerTest.java

Modified: 
webservices/commons/trunk/modules/axiom/src/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/src/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java?rev=424954&r1=424953&r2=424954&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/src/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/src/org/apache/axiom/om/impl/serialize/StreamingOMSerializer.java
 Mon Jul 24 00:58:24 2006
@@ -1,6 +1,5 @@
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
- * Copyright 2006 International Business Machines Corp.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,8 +16,6 @@
 
 package org.apache.axiom.om.impl.serialize;
 
-import java.util.ArrayList;
-
 import org.apache.axiom.om.OMSerializer;
 
 import javax.xml.namespace.NamespaceContext;
@@ -103,7 +100,6 @@
     }
 
     /**
-     * Write out the start element, its namespace/prefixes and attributes
      * @param reader
      * @param writer
      * @throws XMLStreamException
@@ -111,176 +107,47 @@
     protected void serializeElement(XMLStreamReader reader,
                                     XMLStreamWriter writer)
             throws XMLStreamException {
-        
-       ArrayList  prefixList = null;
-       ArrayList  nsList = null;
-       
-       // The algorithm is:
-        // ... generate setPrefix/setDefaultNamespace for each namespace 
declaration if the prefix is unassociated.
-       // ... generate setPrefix/setDefaultNamespace if the prefix of the 
element is unassociated
-       // ... generate setPrefix/setDefaultNamespace for each unassociated 
prefix of the attributes.
-       //
-       // ... generate writeStartElement
-       //
-       // ... generate writeNamespace/writerDefaultNamespace for each 
namespace declaration on the element
-       // ... generate writeNamespace/writeDefaultNamespace for any new 
"autogen" namespace/prefixes
-       // ... generate writeAttribute for each attribute
-       
-        // Generate setPrefix for the namespace declarations
-        int count = reader.getNamespaceCount();
-        for (int i = 0; i < count; i++) {
-               String prefix = reader.getNamespacePrefix(i);
-               prefix = (prefix != null && prefix.length() == 0) ? null : 
prefix;
-               String namespace = reader.getNamespaceURI(i);
-               namespace = (namespace != null && namespace.length() == 0) ? 
null : namespace;
-               
-               generateSetPrefix(prefix, namespace, writer);
-        }
-        
-       // Generate setPrefix for the element
-       // Get the prefix and namespace of the element.  "" and null are 
identical.
-        String ePrefix = reader.getPrefix();
-       ePrefix = (ePrefix != null && ePrefix.length() == 0) ? null : ePrefix;
-       String eNamespace = reader.getNamespaceURI();
-       eNamespace = (eNamespace != null && eNamespace.length() == 0) ? null : 
eNamespace;
-       String newPrefix = generateSetPrefix(ePrefix, eNamespace, writer);
-       // If the prefix is not associated with a namespace yet, remember it so 
that we can
-       // write out a namespace declaration
-       if (newPrefix != null) {
-               if (prefixList == null) {
-                       prefixList= new ArrayList();
-                       nsList = new ArrayList();
-               }
-               prefixList.add(newPrefix);
-               nsList.add(eNamespace);
-       }
-    
-        // Now write the namespaces for each attribute
-        count = reader.getAttributeCount();
-        for (int i = 0; i < count; i++) {
-            String prefix = reader.getAttributePrefix(i);
-            prefix = (prefix != null && prefix.length() == 0) ? null : prefix;
-            String namespace = reader.getAttributeNamespace(i);
-            namespace = (namespace != null && namespace.length() == 0) ? null 
: namespace;
-            
-            // Default prefix referencing is not allowed on an attribute
-            if (prefix == null && namespace != null) {
-               String writerPrefix = writer.getPrefix(namespace);
-               writerPrefix = (writerPrefix != null && writerPrefix.length() 
== 0) ? null : writerPrefix;
-               prefix = (writerPrefix != null) ? 
-                               writerPrefix :
-                       generateUniquePrefix(writer.getNamespaceContext());
+        String prefix = reader.getPrefix();
+        String nameSpaceName = reader.getNamespaceURI();
+        if (nameSpaceName != null) {
+            String writer_prefix = writer.getPrefix(nameSpaceName);
+            if (writer_prefix != null) {
+                writer.writeStartElement(nameSpaceName, reader.getLocalName());
+            } else {
+                if (prefix != null) {
+                    writer.writeStartElement(prefix, reader.getLocalName(),
+                            nameSpaceName);
+                    writer.writeNamespace(prefix, nameSpaceName);
+                    writer.setPrefix(prefix, nameSpaceName);
+                } else {
+                    writer.writeStartElement(nameSpaceName,
+                            reader.getLocalName());
+                    writer.writeDefaultNamespace(nameSpaceName);
+                    writer.setDefaultNamespace(nameSpaceName);
+                }
             }
-            newPrefix = generateSetPrefix(prefix, namespace, writer);
-            // If the prefix is not associated with a namespace yet, remember 
it so that we can
-               // write out a namespace declaration
-               if (newPrefix != null) {
-                       if (prefixList == null) {
-                               prefixList= new ArrayList();
-                               nsList = new ArrayList();
-                       }
-                       prefixList.add(newPrefix);
-                       nsList.add(eNamespace);
-               }
-        }
-        
-        // Now write the startElement
-        if (eNamespace != null) {
-               writer.writeStartElement(ePrefix, reader.getLocalName(), 
eNamespace);
         } else {
-               writer.writeStartElement(reader.getLocalName());
-        }
-        
-        // Now write the namespace declarations
-        count = reader.getNamespaceCount();
-        for (int i = 0; i < count; i++) {
-               String prefix = reader.getNamespacePrefix(i);
-               prefix = (prefix != null && prefix.length() == 0) ? null : 
prefix;
-               String namespace = reader.getNamespaceURI(i);
-               if (prefix != null) {
-                       writer.writeNamespace(prefix, namespace);
-               } else {
-                       writer.writeDefaultNamespace(namespace);
-               }
+            writer.writeStartElement(reader.getLocalName());
         }
-        
-        // Now write out the namespaces that for prefixes that are not 
associated
-        if (prefixList != null) {
-               for (int i=0; i<prefixList.size(); i++) {
-                       String prefix = (String) prefixList.get(i);
-                       String namespace = (String) nsList.get(i);
-                       if (prefix != null) {
-                       writer.writeNamespace(prefix, namespace);
-               } else {
-                       writer.writeDefaultNamespace(namespace);
-               }
-               }
-        }
-        
-        // Now write the attributes
-        count = reader.getAttributeCount();
+
+
+        // add the namespaces
+        int count = reader.getNamespaceCount();
+        String namespacePrefix;
         for (int i = 0; i < count; i++) {
-            String prefix = reader.getAttributePrefix(i);
-            prefix = (prefix != null && prefix.length() == 0) ? null : prefix;
-            String namespace = reader.getAttributeNamespace(i);
-            namespace = (namespace != null && namespace.length() == 0) ? null 
: namespace;
-            
-            
-            if (prefix == null && namespace != null) {
-               // Default namespaces are not allowed on an attribute reference.
-                // Earlier in this code, a unique prefix was added for this 
case...now obtain and use it
-               prefix = writer.getPrefix(namespace);
-            } else if (namespace != null) {
-               // Use the writer's prefix if it is different
-               String writerPrefix = writer.getPrefix(namespace);
-               if (!prefix.equals(writerPrefix)) {
-                       prefix = writerPrefix;
-               }
-            }
-            if (namespace != null) {
-               // Qualified attribute
-               writer.writeAttribute(prefix, namespace,
-                    reader.getAttributeLocalName(i),
-                    reader.getAttributeValue(i));
-            } else {
-               // Unqualified attribute
-               writer.writeAttribute(reader.getAttributeLocalName(i),
-                        reader.getAttributeValue(i));
-            }
-        }
-    }
+            namespacePrefix = reader.getNamespacePrefix(i);
+            if(namespacePrefix != null && namespacePrefix.length()==0)
+                continue;
 
-    /**
-     * Generate setPrefix/setDefaultNamespace if the prefix is not associated
-     * @param prefix
-     * @param namespace
-     * @param writer
-     * @return prefix name if a setPrefix/setDefaultNamespace is performed
-     */
-    private String generateSetPrefix(String prefix, String namespace, 
XMLStreamWriter writer) throws XMLStreamException {
-       // Generate setPrefix/setDefaultNamespace if the prefix is not 
associated.
-        if (namespace != null) {
-               String writerPrefix = writer.getPrefix(namespace);
-               writerPrefix = (writerPrefix != null && writerPrefix.length() 
== 0) ? null : writerPrefix;
-               // Qualified Name
-               if (writerPrefix == prefix ||
-                   (writerPrefix != null && writerPrefix.equals(prefix))) {
-                       // Already associated...a setPrefix is not needed
-                       return null;
-               } else {
-                       if (prefix == null) {
-                               writer.setDefaultNamespace(namespace);
-                       } else {
-                               writer.setPrefix(prefix, namespace);
-                       }
-                       return prefix;
-               }
-        } else {
-               // Disable the default namespace
-               writer.setDefaultNamespace("");
+            serializeNamespace(namespacePrefix,
+                    reader.getNamespaceURI(i), writer);
         }
-        return null;
+
+        // add attributes
+        serializeAttributes(reader, writer);
+
     }
+
     /**
      * Method serializeEndElement.
      *
@@ -344,14 +211,14 @@
         for (int i = 0; i < count; i++) {
             prefix = reader.getAttributePrefix(i);
             namespaceName = reader.getAttributeNamespace(i);
-            //
-            //   Due to parser implementations returning null as the namespace 
URI
-            //  (for the empty namespace) we need to make sure that we deal 
with
-            //  a namespace name that is not null. The best way to work around 
this
-            //  issue is to set the namespace uri to "" if it is null
-           
+            /*
+               Due to parser implementations returning null as the namespace 
URI
+              (for the empty namespace) we need to make sure that we deal with
+              a namespace name that is not null. The best way to work around 
this
+              issue is to set the namespace uri to "" if it is null
+            */
             if (namespaceName==null) namespaceName="";
-            
+
             writerPrefix 
=writer.getNamespaceContext().getPrefix(namespaceName);
 
             if (!"".equals(namespaceName)){
@@ -405,5 +272,22 @@
         }
 
         return prefix;
+    }
+    /**
+     * Method serializeNamespace.
+     * @param prefix
+     * @param URI
+     * @param writer
+     * @throws XMLStreamException
+     */
+    private void serializeNamespace(String prefix,
+                                    String URI,
+                                    XMLStreamWriter writer)
+            throws XMLStreamException {
+        String prefix1 = writer.getPrefix(URI);
+        if (prefix1 == null) {
+            writer.writeNamespace(prefix, URI);
+            writer.setPrefix(prefix, URI);
+        }
     }
 }

Modified: 
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/om/impl/serializer/NoNamespaceSerializerTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/test/org/apache/axiom/om/impl/serializer/NoNamespaceSerializerTest.java?rev=424954&r1=424953&r2=424954&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/om/impl/serializer/NoNamespaceSerializerTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/om/impl/serializer/NoNamespaceSerializerTest.java
 Mon Jul 24 00:58:24 2006
@@ -19,19 +19,16 @@
 import junit.framework.TestCase;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.InputStreamReader;
 
 public class NoNamespaceSerializerTest extends TestCase {
@@ -108,7 +105,7 @@
 
     }
 
-    public void testsubmitPurchaseOrder()
+    public void submitPurchaseOrderTest()
             throws Exception {
         SOAPFactory omFactory = OMAbstractFactory.getSOAP11Factory();
         SOAPEnvelope env = omFactory.getDefaultEnvelope();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to