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);
}
}
}