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 de...@apache.org on 2006/03/07 13:03:09 UTC

svn commit: r383857 - in /webservices/axis2/trunk/java/modules: adb/src/org/apache/axis2/databinding/utils/ core/src/org/apache/axis2/engine/ integration/test/org/apache/axis2/rpc/

Author: deepal
Date: Tue Mar  7 04:03:06 2006
New Revision: 383857

URL: http://svn.apache.org/viewcvs?rev=383857&view=rev
Log:
-small fixing in BeanUtil
- there are few code duplication I will fix that soon

Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCServiceClass.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?rev=383857&r1=383856&r2=383857&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java Tue Mar  7 04:03:06 2006
@@ -26,12 +26,7 @@
 import org.apache.ws.commons.om.OMFactory;
 import org.apache.ws.commons.om.impl.llom.builder.StAXOMBuilder;
 import org.apache.ws.commons.om.impl.llom.factory.OMXMLBuilderFactory;
-import org.codehaus.jam.JClass;
-import org.codehaus.jam.JProperty;
-import org.codehaus.jam.JamClassIterator;
-import org.codehaus.jam.JamService;
-import org.codehaus.jam.JamServiceFactory;
-import org.codehaus.jam.JamServiceParams;
+import org.codehaus.jam.*;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
@@ -323,6 +318,7 @@
         //to support array . if the parameter type is array , then all the omelemnts with that paramtre name
         // has to  get and add to the list
         Class classType;
+        String currentLocalName = "";
         while (parts.hasNext() && count < length) {
             Object objValue = parts.next();
             OMElement omElement;
@@ -331,45 +327,136 @@
             } else {
                 continue;
             }
+            currentLocalName = omElement.getLocalName();
             classType = (Class) javaTypes[count];
-            //handling refs
-            OMAttribute omatribute = MultirefHelper.processRefAtt(omElement);
-            String ref = null;
-            if (omatribute != null) {
-                hasRef = true;
-                ref = MultirefHelper.getAttvalue(omatribute);
-            }
+            if (classType.isArray()) {
+                ArrayList valueList = new ArrayList();
+                Class arrayClassType = classType.getComponentType();
+
+                OMAttribute omatribute = MultirefHelper.processRefAtt(omElement);
+                String ref = null;
+                if (omatribute != null) {
+                    hasRef = true;
+                    ref = MultirefHelper.getAttvalue(omatribute);
+                }
 
-            if (OMElement.class.isAssignableFrom(classType)) {
-                if (hasRef) {
-                    OMElement elemnt = helper.getOMElement(ref);
-                    if (elemnt == null) {
-                        retObjs[count] = helper.processOMElementRef(ref);
+                if (OMElement.class.isAssignableFrom(arrayClassType)) {
+                    if (hasRef) {
+                        OMElement elemnt = helper.getOMElement(ref);
+                        if (elemnt == null) {
+                            valueList.add(helper.processOMElementRef(ref));
+                        } else {
+                            valueList.add(omElement);
+                        }
+                    } else
+                        valueList.add(omElement);
+                } else {
+                    if (hasRef) {
+                        if (helper.getObject(ref) != null) {
+                            valueList.add(helper.getObject(ref));
+                        } else {
+                            valueList.add(helper.processRef(classType, ref));
+                        }
                     } else {
-                        retObjs[count] = omElement;
+                        if (SimpleTypeMapper.isSimpleType(arrayClassType)) {
+                            valueList.add(SimpleTypeMapper.getSimpleTypeObject(arrayClassType, omElement));
+                        } else if (SimpleTypeMapper.isArrayList(arrayClassType)) {
+                            valueList.add(SimpleTypeMapper.getArrayList(omElement));
+                        } else {
+                            valueList.add(BeanUtil.deserialize(arrayClassType, omElement));
+                        }
                     }
-                } else
-                    retObjs[count] = omElement;
-            } else {
-                if (hasRef) {
-                    if (helper.getObject(ref) != null) {
-                        retObjs[count] = helper.getObject(ref);
+                }
+
+                while (parts.hasNext()) {
+                    objValue = parts.next();
+                    if (objValue instanceof OMElement) {
+                        omElement = (OMElement) objValue;
+                    } else {
+                        continue;
+                    }
+
+                    if (!currentLocalName.equals(omElement.getLocalName())) {
+                        break;
+                    }
+                    omatribute = MultirefHelper.processRefAtt(omElement);
+                    ref = null;
+                    if (omatribute != null) {
+                        hasRef = true;
+                        ref = MultirefHelper.getAttvalue(omatribute);
+                    }
+
+                    if (OMElement.class.isAssignableFrom(arrayClassType)) {
+                        if (hasRef) {
+                            OMElement elemnt = helper.getOMElement(ref);
+                            if (elemnt == null) {
+                                valueList.add(helper.processOMElementRef(ref));
+                            } else {
+                                valueList.add(omElement);
+                            }
+                        } else
+                            valueList.add(omElement);
                     } else {
-                        retObjs[count] = helper.processRef(classType, ref);
+                        if (hasRef) {
+                            if (helper.getObject(ref) != null) {
+                                valueList.add(helper.getObject(ref));
+                            } else {
+                                valueList.add(helper.processRef(classType, ref));
+                            }
+                        } else {
+                            if (SimpleTypeMapper.isSimpleType(arrayClassType)) {
+                                valueList.add(SimpleTypeMapper.getSimpleTypeObject(arrayClassType, omElement));
+                            } else if (SimpleTypeMapper.isArrayList(arrayClassType)) {
+                                valueList.add(SimpleTypeMapper.getArrayList(omElement));
+                            } else {
+                                valueList.add(BeanUtil.deserialize(arrayClassType, omElement));
+                            }
+                        }
                     }
+
+                }
+                retObjs[count] = ConverterUtil.convertToArray(arrayClassType, valueList);
+            } else {
+                //handling refs
+                OMAttribute omatribute = MultirefHelper.processRefAtt(omElement);
+                String ref = null;
+                if (omatribute != null) {
+                    hasRef = true;
+                    ref = MultirefHelper.getAttvalue(omatribute);
+                }
+
+                if (OMElement.class.isAssignableFrom(classType)) {
+                    if (hasRef) {
+                        OMElement elemnt = helper.getOMElement(ref);
+                        if (elemnt == null) {
+                            retObjs[count] = helper.processOMElementRef(ref);
+                        } else {
+                            retObjs[count] = omElement;
+                        }
+                    } else
+                        retObjs[count] = omElement;
                 } else {
-                    if (SimpleTypeMapper.isSimpleType(classType)) {
-                        retObjs[count] = SimpleTypeMapper.getSimpleTypeObject(classType, omElement);
-                    } else if (SimpleTypeMapper.isArrayList(classType)) {
-                        retObjs[count] = SimpleTypeMapper.getArrayList(omElement);
+                    if (hasRef) {
+                        if (helper.getObject(ref) != null) {
+                            retObjs[count] = helper.getObject(ref);
+                        } else {
+                            retObjs[count] = helper.processRef(classType, ref);
+                        }
                     } else {
-                        retObjs[count] = BeanUtil.deserialize(classType, omElement);
+                        if (SimpleTypeMapper.isSimpleType(classType)) {
+                            retObjs[count] = SimpleTypeMapper.getSimpleTypeObject(classType, omElement);
+                        } else if (SimpleTypeMapper.isArrayList(classType)) {
+                            retObjs[count] = SimpleTypeMapper.getArrayList(omElement);
+                        } else {
+                            retObjs[count] = BeanUtil.deserialize(classType, omElement);
+                        }
                     }
                 }
             }
             hasRef = false;
             count ++;
         }
+
         helper.clean();
         return retObjs;
     }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java?rev=383857&r1=383856&r2=383857&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java Tue Mar  7 04:03:06 2006
@@ -454,7 +454,7 @@
      * @throws AxisFault
      */
     public void receiveFault(MessageContext msgContext) throws AxisFault {
-        log.info( Messages.getMessage("receivederrormessage",
+        log.info(Messages.getMessage("receivederrormessage",
                 msgContext.getMessageID()));
         ConfigurationContext confContext = msgContext.getConfigurationContext();
         ArrayList preCalculatedPhases =
@@ -569,7 +569,8 @@
         private MessageContext msgctx;
         private TransportSender sender;
 
-        public TranportNonBlockingInvocationWorker(MessageContext msgctx, TransportSender sender) {
+        public TranportNonBlockingInvocationWorker(MessageContext msgctx,
+                                                   TransportSender sender) {
             this.msgctx = msgctx;
             this.sender = sender;
         }

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java?rev=383857&r1=383856&r2=383857&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java Tue Mar  7 04:03:06 2006
@@ -101,7 +101,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem(clientHome,null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem(clientHome, null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
         options.setTo(targetEPR);
@@ -153,7 +153,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -186,7 +186,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -204,7 +204,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -218,7 +218,7 @@
     public void testAdd() throws AxisFault {
         configureSystem("add");
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
 
         Options options = new Options();
@@ -241,7 +241,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -261,7 +261,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -281,7 +281,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -299,7 +299,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -337,7 +337,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -356,7 +356,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -377,7 +377,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -410,7 +410,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -432,7 +432,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -449,6 +449,43 @@
 //        assertEquals(Byte.parseByte(response.getFirstElement().getText()),1);
     }
 
+    public void testStringArray() throws AxisFault {
+        configureSystem("handleStringArray");
+
+        Options options = new Options();
+        options.setTo(targetEPR);
+        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+
+        ConfigurationContext configContext =
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
+        RPCServiceClient sender = new RPCServiceClient(configContext, null);
+        sender.setOptions(options);
+
+        String str = "<req:handleStringArray xmlns:req=\"http://org.apache.axis2/xsd\">\n" +
+                "    <item0>abc</item0>\n" +
+                "    <item0>def</item0>\n" +
+                "    <item0>ghi</item0>\n" +
+                "    <item0>klm</item0>\n" +
+                "</req:handleStringArray>";
+        StAXOMBuilder staxOMBuilder;
+        try {
+            XMLStreamReader xmlReader = XMLInputFactory.newInstance().createXMLStreamReader(new
+                    ByteArrayInputStream(str.getBytes()));
+            OMFactory fac = OMAbstractFactory.getOMFactory();
+
+            staxOMBuilder = new
+                    StAXOMBuilder(fac, xmlReader);
+        } catch (XMLStreamException e) {
+            throw new AxisFault(e);
+        } catch (FactoryConfigurationError factoryConfigurationError) {
+            throw new AxisFault(factoryConfigurationError);
+        }
+        ;
+
+        OMElement result = sender.sendReceive(staxOMBuilder.getDocumentElement());
+        assertEquals(result.getFirstElement().getText(), "true");
+    }
+
     public void testmulReturn() throws AxisFault {
         configureSystem("mulReturn");
 
@@ -457,7 +494,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 
@@ -478,7 +515,7 @@
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo",null);
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
         RPCServiceClient sender = new RPCServiceClient(configContext, null);
         sender.setOptions(options);
 

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCServiceClass.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCServiceClass.java?rev=383857&r1=383856&r2=383857&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCServiceClass.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCServiceClass.java Tue Mar  7 04:03:06 2006
@@ -131,11 +131,11 @@
         return bean2 != null && bean != null;
     }
 
-    public String handleArrayList(ArrayList list, int b){
-        String str="";
+    public String handleArrayList(ArrayList list, int b) {
+        String str = "";
         for (int i = 0; i < list.size(); i++) {
             Object obj = list.get(i);
-            if(obj instanceof OMElement){
+            if (obj instanceof OMElement) {
                 OMElement omElement = (OMElement) obj;
                 str = str + omElement.getText();
             }
@@ -143,25 +143,29 @@
         return str + b;
     }
 
-    public Employee echoEmployee(Employee em){
+    public Employee echoEmployee(Employee em) {
         return em;
     }
 
 
     public Company echoCompany(Company com) throws AxisFault {
         ArrayList pss = com.getPersons();
-        ArrayList tems= new ArrayList();
+        ArrayList tems = new ArrayList();
         for (int i = 0; i < pss.size(); i++) {
             OMElement omElement = (OMElement) pss.get(i);
-            Person  p =(Person) BeanUtil.deserialize(Person.class,omElement);
+            Person p = (Person) BeanUtil.deserialize(Person.class, omElement);
             tems.add(p);
         }
         com.setPersons(tems);
         return com;
     }
 
-    public void handlAnyThing(String value1, int abc, Date date){
+    public void handlAnyThing(String value1, int abc, Date date) {
 
+    }
+
+    public boolean handleStringArray(String [] value) {
+        return value.length > 0;
     }
 
 }