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 2007/02/07 11:27:34 UTC

svn commit: r504490 - in /webservices/axis2/trunk/java/modules: adb/src/org/apache/axis2/databinding/utils/ adb/src/org/apache/axis2/rpc/client/ adb/src/org/apache/axis2/rpc/receivers/ kernel/src/org/apache/axis2/deployment/ kernel/src/org/apache/axis2...

Author: deepal
Date: Wed Feb  7 02:27:33 2007
New Revision: 504490

URL: http://svn.apache.org/viewvc?view=rev&rev=504490
Log:
applied the patch AXIS2-1606

Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
    webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- 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 Wed Feb  7 02:27:33 2007
@@ -78,6 +78,15 @@
             QName elemntNameSpace = null;
             if (typeTable != null && qualified) {
                 QName qNamefortheType = typeTable.getQNamefortheType(beanObject.getClass().getName());
+                if (qNamefortheType == null) {
+                    qNamefortheType = typeTable.getQNamefortheType(
+                            beanObject.getClass().getPackage().getName());
+                }
+                if (qNamefortheType == null) {
+                    throw new AxisFault("Mapping qname not fond for the package: " +
+                            beanObject.getClass().getPackage().getName());
+                }
+
                 elemntNameSpace = new QName(qNamefortheType.getNamespaceURI(),
                         "elementName");
             }
@@ -196,7 +205,7 @@
                     object.add(value);
                 }
             }
-            return new ADBXMLStreamReaderImpl(beanName, object.toArray(), null, typeTable,qualified);
+            return new ADBXMLStreamReaderImpl(beanName, object.toArray(), null, typeTable, qualified);
         } catch (java.io.IOException e) {
             throw new RuntimeException(e);
         } catch (java.beans.IntrospectionException e) {
@@ -561,7 +570,8 @@
                                          Object [] args,
                                          QName partName,
                                          boolean qualifed,
-                                         TypeTable typeTable) {
+                                         TypeTable typeTable,
+                                         boolean isCustomwsdl) {
         ArrayList objects;
         objects = new ArrayList();
         int argCount = 0;

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/client/RPCServiceClient.java Wed Feb  7 02:27:33 2007
@@ -63,7 +63,7 @@
      * @return Response OMElement
      */
     public OMElement invokeBlocking(QName opName, Object [] args) throws AxisFault {
-        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
         if (notNullService) {
             return super.sendReceive(opName, omElement);
         }
@@ -87,7 +87,7 @@
      */
 
     public Object[]  invokeBlocking(QName opName, Object [] args, Class [] returnTypes) throws AxisFault {
-        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
         OMElement response;
         if (notNullService) {
             response = super.sendReceive(opName, omElement);
@@ -112,7 +112,7 @@
                                   Object [] args,
                                   Callback callback)
             throws AxisFault {
-        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
         //call the underline implementation
         if (notNullService) {
             super.sendReceiveNonBlocking(opName, omElement, callback);
@@ -123,7 +123,7 @@
 
     public void invokeRobust(QName opName,
                              Object [] args) throws AxisFault {
-        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null);
+        OMElement omElement = BeanUtil.getOMElement(opName, args, null, false, null , false);
         //call the underline implementation
         if (notNullService) {
             super.sendRobust(opName, omElement);

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCInOutAsyncMessageReceiver.java Wed Feb  7 02:27:33 2007
@@ -73,7 +73,7 @@
                     .getFirstElement();
 
             AxisMessage inaxisMessage = op.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-            String messageNameSpace;
+            String messageNameSpace = null;
             QName elementQName;
             String methodName = op.getName().getLocalPart();
             Method[] methods = ImplClass.getMethods();
@@ -114,7 +114,13 @@
             SOAPFactory fac = getSOAPFactory(inMessage);
 
             // Handling the response
-            OMNamespace ns = fac.createOMNamespace(service.getSchematargetNamespace(),
+
+            AxisMessage outaxisMessage = op.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+            if (outaxisMessage != null) {
+                messageNameSpace = outaxisMessage.getElementQName().getNamespaceURI();
+            }
+
+            OMNamespace ns = fac.createOMNamespace(messageNameSpace,
                     service.getSchematargetNamespacePrefix());
             SOAPEnvelope envelope = fac.getDefaultEnvelope();
             OMElement bodyContent = null;

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java Wed Feb  7 02:27:33 2007
@@ -148,8 +148,8 @@
                         method.getName();
             }
             log.error(msg, e);
-            if(cause instanceof AxisFault) {
-                throw (AxisFault)cause;
+            if (cause instanceof AxisFault) {
+                throw (AxisFault) cause;
             }
             throw new AxisFault(msg);
         } catch (Exception e) {

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java Wed Feb  7 02:27:33 2007
@@ -109,25 +109,44 @@
         return BeanUtil.deserialize(methodElement, parameters, objectSupplier);
     }
 
-    public static OMElement getResponseElement(QName resname, Object [] objs,
-                                               boolean qualified, TypeTable typeTable) {
+    public static OMElement getResponseElement(QName resname,
+                                               Object [] objs,
+                                               boolean qualified,
+                                               TypeTable typeTable,
+                                               boolean isCustomWsdl) {
         if (qualified) {
             return BeanUtil.getOMElement(resname, objs,
-                    new QName(resname.getNamespaceURI(), RETURN_WRAPPER, resname.getPrefix()), qualified, typeTable);
+                    new QName(resname.getNamespaceURI(),
+                            RETURN_WRAPPER,
+                            resname.getPrefix()),
+                    qualified,
+                    typeTable,
+                    isCustomWsdl);
         } else {
             return BeanUtil.getOMElement(resname, objs,
-                    new QName(RETURN_WRAPPER), qualified, typeTable);
+                    new QName(RETURN_WRAPPER), qualified,
+                    typeTable,
+                    isCustomWsdl);
         }
     }
 
     public static OMElement getResponseElementForArray(QName resname, Object [] objs,
-                                                       boolean qualified, TypeTable typeTable) {
+                                                       boolean qualified,
+                                                       TypeTable typeTable, boolean isCustomWsdl) {
         if (qualified) {
             return BeanUtil.getOMElement(resname, objs,
-                    new QName(resname.getNamespaceURI(), RETURN_WRAPPER, resname.getPrefix()), qualified, typeTable);
+                    new QName(resname.getNamespaceURI(),
+                            RETURN_WRAPPER,
+                            resname.getPrefix()),
+                    qualified,
+                    typeTable,
+                    isCustomWsdl);
         } else {
             return BeanUtil.getOMElement(resname, objs,
-                    new QName(RETURN_WRAPPER), qualified, typeTable);
+                    new QName(RETURN_WRAPPER),
+                    qualified,
+                    typeTable,
+                    isCustomWsdl);
         }
     }
 
@@ -140,6 +159,7 @@
                                        OMElement bodyContent,
                                        MessageContext outMessage
     ) throws Exception {
+         QName elementQName = outMessage.getAxisMessage().getElementQName();
         if (resObject == null) {
             QName resName;
             if (service.isElementFormDefault()) {
@@ -161,11 +181,14 @@
             envelope.getBody().addChild(bodyChild);
         } else {
             if (resObject instanceof Object[]) {
-                QName resName = new QName(service.getSchematargetNamespace(),
+                QName resName = new QName(elementQName.getNamespaceURI(),
                         method.getName() + "Response",
-                        service.getSchematargetNamespacePrefix());
+                        elementQName.getPrefix());
                 OMElement bodyChild = RPCUtil.getResponseElement(resName,
-                        (Object[]) resObject, service.isElementFormDefault(), service.getTypeTable());
+                        (Object[]) resObject,
+                        service.isElementFormDefault(),
+                        service.getTypeTable(),
+                        service.isCustomWsld());
                 envelope.getBody().addChild(bodyChild);
             } else {
                 if (resObject.getClass().isArray()) {
@@ -181,11 +204,12 @@
                         }
                     }
 
-                    QName resName = new QName(service.getSchematargetNamespace(),
+                    QName resName = new QName(elementQName.getNamespaceURI(),
                             method.getName() + "Response",
-                            service.getSchematargetNamespacePrefix());
+                            elementQName.getPrefix());
                     OMElement bodyChild = RPCUtil.getResponseElementForArray(resName,
-                            objArray, service.isElementFormDefault(), service.getTypeTable());
+                            objArray, service.isElementFormDefault(), service.getTypeTable(),
+                            service.isCustomWsld());
                     envelope.getBody().addChild(bodyChild);
                 } else {
                     if (service.isElementFormDefault()) {

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Wed Feb  7 02:27:33 2007
@@ -39,6 +39,10 @@
     String TAG_PHASE_ORDER = "phaseOrder";
     String TAG_PHASE = "phase";
     String TAG_PARAMETER = "parameter";
+    String TAG_MAPPING = "mapping";
+    String TAG_PACKAGE_NAME = "packageName";
+    String TAG_QNAME= "qName";
+    String TAG_PACKAGE2QNAME= "packageMapping";
     String TAG_MODULE = "module";
     String TAG_MODULE_CONFIG = "moduleConfig";
     String TAG_MESSAGE = "message";

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Feb  7 02:27:33 2007
@@ -249,6 +249,7 @@
                             new WSDL11ToAxisServiceBuilder(wsdlStream, null, null);
                     axisService = wsdl2AxisServiceBuilder.populateService();
                     axisService.setWsdlFound(true);
+                    axisService.setCustomWsld(true);
                     axisService.setName(serviceName);
                 }
                 if (axisService == null) {
@@ -279,6 +280,7 @@
                                     new WSDL11ToAxisServiceBuilder(wsdlStream, axisService);
                             axisService = wsdl2AxisServiceBuilder.populateService();
                             axisService.setWsdlFound(true);
+                            axisService.setCustomWsld(true);
                             // Set the default message receiver for the operations that were
                             // not listed in the services.xml
                             Iterator operations = axisService.getOperations();

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Wed Feb  7 02:27:33 2007
@@ -33,6 +33,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.java2wsdl.Java2WSDLConstants;
+import org.apache.ws.java2wsdl.utils.TypeTable;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -314,6 +315,14 @@
                     }
                 }
             }
+            if (service.isCustomWsld()) {
+                OMElement mappingElement = service_element.getFirstChildWithName(
+                        new QName(TAG_PACKAGE2QNAME));
+                if (mappingElement != null) {
+                    processTypeMappings(mappingElement);
+                }
+            }
+
             for (int i = 0; i < excludeops.size(); i++) {
                 String opName = (String) excludeops.get(i);
                 service.removeOperation(new QName(opName));
@@ -351,6 +360,41 @@
         } catch (Exception e) {
             throw new AxisFault(e);
         }
+    }
+
+    /**
+     * To process the packe name to Qname mapping
+     * <packageMapping>
+     * <mapping packageName="foo.bar" qname="http://foo/bar/xsd">
+     * ......
+     * ......
+     * </packageMapping>
+     *
+     * @param packageMappingElement
+     */
+    private void processTypeMappings(OMElement packageMappingElement) {
+        Iterator elementItr = packageMappingElement.getChildrenWithName(new QName(TAG_MAPPING));
+        TypeTable typeTable = service.getTypeTable();
+        if (typeTable == null) {
+            typeTable = new TypeTable();
+        }
+        while (elementItr.hasNext()) {
+            OMElement mappingElement = (OMElement) elementItr.next();
+            String packageName = mappingElement.getAttributeValue(new QName(TAG_PACKAGE_NAME));
+            String qName = mappingElement.getAttributeValue(new QName(TAG_QNAME));
+            if (packageName == null || qName == null) {
+                continue;
+            }
+            Iterator keys = service.getNameSpacesMap().keySet().iterator();
+            while (keys.hasNext()) {
+                String key = (String) keys.next();
+                if (qName.equals(service.getNameSpacesMap().get(key))) {
+                    typeTable.addComplexSchema(packageName,
+                            new QName(qName, packageName, key));
+                }
+            }
+        }
+        service.setTypeTable(typeTable);
     }
 
     private void loadServiceLifeCycleClass(String className) throws DeploymentException {

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java Wed Feb  7 02:27:33 2007
@@ -86,6 +86,7 @@
                         axisService = new AxisService(serviceName);
                     } else {
                         axisService.setWsdlFound(true);
+                        axisService.setCustomWsld(true);
                     }
 
                     // the service that has to be deployed

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Wed Feb  7 02:27:33 2007
@@ -84,6 +84,7 @@
                 axisService = new AxisService(serviceName);
             } else {
                 axisService.setWsdlFound(true);
+                axisService.setCustomWsld(true);
             }
 
             axisService.setParent(axisServiceGroup);

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java Wed Feb  7 02:27:33 2007
@@ -202,6 +202,8 @@
         this.endpointMap.put(key,axisEndpoint);
     }
 
+    private boolean customWsld = false;
+
     public String getWSAddressingFlag() {
         return wsaddressingFlag;
     }
@@ -1909,5 +1911,13 @@
 
     public Map getEndpoints() {
         return endpointMap;
+    }
+
+    public boolean isCustomWsld() {
+        return customWsld;
+    }
+
+    public void setCustomWsld(boolean customWsld) {
+        this.customWsld = customWsld;
     }
 }

Modified: webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java?view=diff&rev=504490&r1=504489&r2=504490
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java (original)
+++ webservices/axis2/trunk/java/modules/samples/servicelifecycle/src/sample/servicelifecycle/LibraryLifeCycle.java Wed Feb  7 02:27:33 2007
@@ -82,17 +82,17 @@
             Book[] bookList = allBookList.getBookList();
             libElement.addChild(BeanUtil.getOMElement(
                     new QName(LibraryConstants.ALL_BOOK),
-                    bookList, new QName("book"), false, null));
+                    bookList, new QName("book"), false, null, false));
             libElement.addChild(BeanUtil.getOMElement(
                     new QName(LibraryConstants.AVAILABLE_BOOK),
-                    availableBookList.getBookList(), new QName("book"), false, null));
+                    availableBookList.getBookList(), new QName("book"), false, null, false));
             libElement.addChild(BeanUtil.getOMElement(
                     new QName(LibraryConstants.LEND_BOOK),
-                    lendBookList.getBookList(), new QName("book"), false, null));
+                    lendBookList.getBookList(), new QName("book"), false, null, false));
 
             libElement.addChild(BeanUtil.getOMElement(
                     new QName(LibraryConstants.USER_LIST),
-                    userList.getUsers(), new QName("user"), false, null));
+                    userList.getUsers(), new QName("user"), false, null,false));
 
             String tempDir = System.getProperty("java.io.tmpdir");
             File tempFile = new File(tempDir);



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org