You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/12/20 03:46:31 UTC
svn commit: r357882 - in /webservices/axis2/trunk/java/modules/codegen:
src/org/apache/axis2/databinding/DeserializationContext.java
src/org/apache/axis2/rpc/RPCInOutMessageReceiver.java
test/org/apache/axis2/rpc/SimpleTest.java
Author: dims
Date: Mon Dec 19 18:46:24 2005
New Revision: 357882
URL: http://svn.apache.org/viewcvs?rev=357882&view=rev
Log:
get rid of RPC-isms from databinding package
Modified:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/DeserializationContext.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/RPCInOutMessageReceiver.java
webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/rpc/SimpleTest.java
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/DeserializationContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/DeserializationContext.java?rev=357882&r1=357881&r2=357882&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/DeserializationContext.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/DeserializationContext.java Mon Dec 19 18:46:24 2005
@@ -16,7 +16,6 @@
package org.apache.axis2.databinding;
-import org.apache.axis2.AxisFault;
import org.apache.axis2.databinding.deserializers.BeanDeserializer;
import org.apache.axis2.databinding.metadata.BeanManager;
import org.apache.axis2.databinding.metadata.TypeDesc;
@@ -24,9 +23,6 @@
import org.apache.axis2.om.OMAttribute;
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.OMNode;
-import org.apache.axis2.rpc.RPCMethod;
-import org.apache.axis2.rpc.RPCParameter;
-import org.apache.axis2.rpc.RPCValues;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
@@ -142,50 +138,4 @@
return target.getValue();
}
- public RPCValues deserializeRPCElement(RPCMethod method,
- OMElement rpcElement)
- throws Exception {
- RPCValues values = new RPCValues();
-
- // Run each argument (sub-element) through the appropriate deser
- Iterator args = rpcElement.getChildElements();
- Map elementCounts = new HashMap();
- while (args.hasNext()) {
- OMElement arg = (OMElement) args.next();
- QName qname = arg.getQName();
- RPCParameter param = method.getParameter(qname);
- if (param == null) {
- // unknown parameter. Fault or continue depending on
- // strictness configuration.
- continue;
- }
- Integer count = (Integer)elementCounts.get(qname);
- if (count == null) count = new Integer(0);
- elementCounts.put(qname, new Integer(count.intValue() + 1));
- Deserializer dser = param.getDeserializer(count.intValue(), values);
- // Got a recognized param, so feed this through the deserializer
- try {
- deserialize(arg.getXMLStreamReader(), dser);
- } catch (Exception e) {
- throw AxisFault.makeFault(e);
- }
- }
-
- // OK, now we're done with the children. If this is SOAP 1.2, we're
- // finished. If it's SOAP 1.1, there may be multirefs which still
- // need to be deserialized after the RPC element.
- if (isIncomplete()) {
- try {
- processRest(rpcElement);
- } catch (Exception e) {
- throw AxisFault.makeFault(e);
- }
-
- if (isIncomplete()) {
- throw new AxisFault("Unresolved multirefs!");
- }
- }
-
- return values;
- }
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/RPCInOutMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/RPCInOutMessageReceiver.java?rev=357882&r1=357881&r2=357882&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/RPCInOutMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/RPCInOutMessageReceiver.java Mon Dec 19 18:46:24 2005
@@ -20,6 +20,7 @@
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.databinding.DeserializationContext;
+import org.apache.axis2.databinding.Deserializer;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.om.OMAbstractFactory;
import org.apache.axis2.om.OMElement;
@@ -28,8 +29,11 @@
import org.apache.axis2.soap.SOAPEnvelope;
import org.apache.axis2.soap.SOAPFactory;
+import javax.xml.namespace.QName;
import java.lang.reflect.Method;
import java.util.Iterator;
+import java.util.Map;
+import java.util.HashMap;
/**
*
@@ -65,7 +69,7 @@
DeserializationContext dserContext = new DeserializationContext();
RPCValues values = null;
try {
- values = dserContext.deserializeRPCElement(method, rpcElement);
+ values = deserializeRPCElement(dserContext, method, rpcElement);
} catch (Exception e) {
throw AxisFault.makeFault(e);
}
@@ -107,5 +111,53 @@
} catch (Exception e) {
throw AxisFault.makeFault(e);
}
+ }
+
+ public RPCValues deserializeRPCElement(DeserializationContext dserContext,
+ RPCMethod method,
+ OMElement rpcElement)
+ throws Exception {
+ RPCValues values = new RPCValues();
+
+ // Run each argument (sub-element) through the appropriate deser
+ Iterator args = rpcElement.getChildElements();
+ Map elementCounts = new HashMap();
+ while (args.hasNext()) {
+ OMElement arg = (OMElement) args.next();
+ QName qname = arg.getQName();
+ RPCParameter param = method.getParameter(qname);
+ if (param == null) {
+ // unknown parameter. Fault or continue depending on
+ // strictness configuration.
+ continue;
+ }
+ Integer count = (Integer)elementCounts.get(qname);
+ if (count == null) count = new Integer(0);
+ elementCounts.put(qname, new Integer(count.intValue() + 1));
+ Deserializer dser = param.getDeserializer(count.intValue(), values);
+ // Got a recognized param, so feed this through the deserializer
+ try {
+ dserContext.deserialize(arg.getXMLStreamReader(), dser);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ // OK, now we're done with the children. If this is SOAP 1.2, we're
+ // finished. If it's SOAP 1.1, there may be multirefs which still
+ // need to be deserialized after the RPC element.
+ if (dserContext.isIncomplete()) {
+ try {
+ dserContext.processRest(rpcElement);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+
+ if (dserContext.isIncomplete()) {
+ throw new AxisFault("Unresolved multirefs!");
+ }
+ }
+
+ return values;
}
}
Modified: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/rpc/SimpleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/rpc/SimpleTest.java?rev=357882&r1=357881&r2=357882&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/rpc/SimpleTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/rpc/SimpleTest.java Mon Dec 19 18:46:24 2005
@@ -192,9 +192,10 @@
SOAPEnvelope respEnv = call.invokeBlocking("echoArray", env);
assertNotNull("No response envelope!", respEnv);
+ RPCInOutMessageReceiver receiver = new RPCInOutMessageReceiver();
// Got a response envelope, let's deserialize it back to Java
DeserializationContext dserContext = new DeserializationContext();
- values = dserContext.deserializeRPCElement(method, respEnv.getBody().getFirstElement());
+ values = receiver.deserializeRPCElement(dserContext, method, respEnv.getBody().getFirstElement());
Object ret = method.getResponseParameter().getValue(values);
assertNotNull("No return parameter value", ret);