Author: amilas
Date: Wed Aug 29 13:04:09 2012
New Revision: 1378528

URL: http://svn.apache.org/viewvc?rev=1378528&view=rev
Log:
applying patches for AXIS2-5404,AXIS2-5403,AXIS2-5402

Modified:
    
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/GsonXMLStreamReader.java
    
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/JsonUtils.java
    
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/XmlNodeGenerator.java

Modified: 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/GsonXMLStreamReader.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/GsonXMLStreamReader.java?rev=1378528&r1=1378527&r2=1378528&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/GsonXMLStreamReader.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/GsonXMLStreamReader.java
 Wed Aug 29 13:04:09 2012
@@ -82,11 +82,6 @@ public class GsonXMLStreamReader impleme
     private String namespace;
 
 
-    // Default namespace
-    final static private String DEFAULT_NAMESPACE = 
"http://axis2.apache.org/axis/json";;
-
-    final static private String DEFAULT_NAMESPACE_PREFIX = "ns";
-
     public GsonXMLStreamReader(JsonReader jsonReader) {
         this.jsonReader = jsonReader;
     }
@@ -653,7 +648,7 @@ public class GsonXMLStreamReader impleme
                 namespace = jsonObj.getNamespaceUri();
                 stackObj.push(miniStack.pop());
             } else {
-                throw new 
XMLStreamException(JsonConstant.IN_JSON_MESSAGE_NOT_VALID + "required : " + 
jsonObj.getName() + " but get : " + name);
+                throw new 
XMLStreamException(JsonConstant.IN_JSON_MESSAGE_NOT_VALID + "expected : " + 
jsonObj.getName() + " but found : " + name);
             }
         } else if (!queue.isEmpty()) {
             JsonObject jsonObj = queue.peek();
@@ -661,7 +656,7 @@ public class GsonXMLStreamReader impleme
                 namespace = jsonObj.getNamespaceUri();
                 stackObj.push(queue.poll());
             } else {
-                throw new 
XMLStreamException(JsonConstant.IN_JSON_MESSAGE_NOT_VALID + "required : " + 
jsonObj.getName() + " but get : " + name);
+                throw new 
XMLStreamException(JsonConstant.IN_JSON_MESSAGE_NOT_VALID + "expected : " + 
jsonObj.getName() + " but found : " + name);
             }
         } else {
             throw new 
XMLStreamException(JsonConstant.IN_JSON_MESSAGE_NOT_VALID);
@@ -692,6 +687,7 @@ public class GsonXMLStreamReader impleme
                     value = String.valueOf(jsonReader.nextDouble());
                 }
             } else if (tokenType == JsonToken.NULL) {
+                jsonReader.nextNull();
                 value = null;
             } else {
                 log.error("Couldn't read the value, Illegal state exception");

Modified: 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/JsonUtils.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/JsonUtils.java?rev=1378528&r1=1378527&r2=1378528&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/JsonUtils.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/JsonUtils.java
 Wed Aug 29 13:04:09 2012
@@ -46,21 +46,19 @@ public class JsonUtils {
             jsonReader.setLenient(true);
         }
         jsonReader.beginObject();
-        String requestMethodName=jsonReader.nextName();     // get request 
method name from input json stream
-        if (paramCount > 1) {
-            jsonReader.beginArray();
-        }
+        String messageName=jsonReader.nextName();     // get message name from 
input json stream
+        jsonReader.beginArray();
+
         int i = 0;
         for (Class paramType : paramClasses) {
             jsonReader.beginObject();
             argNames[i] = jsonReader.nextName();
-            methodParam[i] = gson.fromJson(jsonReader, paramType);   // gson 
handle all types well and retuen an object from it
+            methodParam[i] = gson.fromJson(jsonReader, paramType);   // gson 
handle all types well and return an object from it
             jsonReader.endObject();
             i++;
         }
-        if (paramCount > 1) {
-            jsonReader.endArray();
-        }
+
+        jsonReader.endArray();
         jsonReader.endObject();
 
         return  operation.invoke(service, methodParam);

Modified: 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/XmlNodeGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/XmlNodeGenerator.java?rev=1378528&r1=1378527&r2=1378528&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/XmlNodeGenerator.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/json/src/org/apache/axis2/json/impl/utils/XmlNodeGenerator.java
 Wed Aug 29 13:04:09 2012
@@ -57,56 +57,58 @@ public class XmlNodeGenerator {
     private void processSchemaList() {
         // get the operation schema and process.
         XmlSchema operationSchema = getXmlSchema(elementQname);
-        XmlSchemaElement methodElement = 
operationSchema.getElementByName(elementQname.getLocalPart());
-        mainXmlNode = new XmlNode(elementQname.getLocalPart(), 
elementQname.getNamespaceURI() , false, (methodElement.getMaxOccurs() == 1 ? 
false : true) , "");
-        QName methodSchemaTypeName = methodElement.getSchemaTypeName();
+        XmlSchemaElement messageElement = 
operationSchema.getElementByName(elementQname.getLocalPart());
+        mainXmlNode = new XmlNode(elementQname.getLocalPart(), 
elementQname.getNamespaceURI() , false, (messageElement.getMaxOccurs() == 1 ? 
false : true) , "");
+
+        QName messageSchemaTypeName = messageElement.getSchemaTypeName();
         XmlSchemaType schemaType = null;
-        if (methodSchemaTypeName != null){
-            schemaType = 
getXmlSchema(methodSchemaTypeName).getTypeByName(methodSchemaTypeName.getLocalPart());
+        XmlSchema schemaOfType = null;
+        if (messageSchemaTypeName != null) {
+            schemaType = operationSchema.getTypeByName(messageSchemaTypeName);
+            if (schemaType == null) {
+                schemaOfType = getXmlSchema(messageSchemaTypeName);
+                schemaType = 
schemaOfType.getTypeByName(messageSchemaTypeName.getLocalPart());
+            } else {
+                schemaOfType = operationSchema;
+            }
         } else {
-            schemaType = methodElement.getSchemaType();
+            schemaType = messageElement.getSchemaType();
+            schemaOfType = operationSchema;
         }
 
         if (schemaType != null) {
-            processSchemaType(schemaType, mainXmlNode , operationSchema);
+            processSchemaType(schemaType, mainXmlNode, schemaOfType);
         } else {
             // nothing to do
         }
     }
 
     private void processElement(XmlSchemaElement element, XmlNode parentNode , 
XmlSchema schema) {
+        String targetNamespace = schema.getTargetNamespace();
+        XmlNode xmlNode;
         QName schemaTypeName = element.getSchemaTypeName();
-        QName qName = element.getQName();
-        String pref = schemaTypeName.getPrefix();
-        XmlNode tempNode;
-        if (qName == null) {
-            tempNode = new XmlNode(element.getName(), 
parentNode.getNamespaceUri(), false, (element.getMaxOccurs() == 1 ? false : 
true), schemaTypeName.getLocalPart());
-
-        } else {
-            tempNode = new XmlNode(qName.getLocalPart(), 
qName.getNamespaceURI(), false, (element.getMaxOccurs() == 1 ? false : true), 
schemaTypeName.getLocalPart());
-        }
-        parentNode.addChildtoList(tempNode);
-        if (("xs").equals(pref)) {
-            // this element doesn't has child elements
-        } else {
-            XmlSchema childSchema = null;
-            XmlSchemaElement childEle = 
schema.getElementByName(schemaTypeName);
-            XmlSchemaType childType = schema.getTypeByName(schemaTypeName);
-            if (childEle == null && childType == null) {
-                childSchema = getXmlSchema(schemaTypeName);
-                childEle = childSchema.getElementByName(schemaTypeName);
-                childType = childSchema.getTypeByName(schemaTypeName);
-            } else {
-                childSchema = schema;
-            }
-
-            if (childEle == null) {
-                processSchemaType(childType, tempNode, childSchema);
+        XmlSchemaType schemaType = element.getSchemaType();
+        if (schemaTypeName != null) {
+            xmlNode = new XmlNode(element.getName(), targetNamespace, false, 
(element.getMaxOccurs() == 1 ? false : true), schemaTypeName.getLocalPart());
+            parentNode.addChildtoList(xmlNode);
+            if 
(("http://www.w3.org/2001/XMLSchema";).equals(schemaTypeName.getNamespaceURI())) 
{
             } else {
-                processElement(childEle, tempNode, childSchema);
+                XmlSchema schemaOfType;
+                // see whether Schema type is in the same schema
+                XmlSchemaType childSchemaType = 
schema.getTypeByName(schemaTypeName.getLocalPart());
+                if (childSchemaType == null) {
+                    schemaOfType = getXmlSchema(schemaTypeName);
+                    childSchemaType = 
schemaOfType.getTypeByName(schemaTypeName.getLocalPart());
+                }else{
+                    schemaOfType = schema;
+                }
+                processSchemaType(childSchemaType, xmlNode, schemaOfType);
             }
+        }else if (schemaType != null) {
+            xmlNode = new XmlNode(element.getName(), targetNamespace, false, 
(element.getMaxOccurs() == 1 ? false : true), 
schemaType.getQName().getLocalPart());
+            parentNode.addChildtoList(xmlNode);
+            processSchemaType(schemaType, xmlNode, schema);
         }
-
     }
 
 
@@ -122,9 +124,6 @@ public class XmlNodeGenerator {
                     Object obj = objectIterator.next();
                     if (obj instanceof XmlSchemaElement) {
                         processElement((XmlSchemaElement)obj , parentNode , 
schema);
-                    }else if (obj instanceof XmlSchemaComplexType || obj 
instanceof  XmlSchemaSimpleType) {     // never come to this
-                        XmlSchemaType schemaType = (XmlSchemaType)obj;
-                        processSchemaType(schemaType , parentNode , schema);
                     }
                 }
             }


Reply via email to