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