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/04/23 09:16:42 UTC

svn commit: r531357 - in /webservices/axis2/branches/java/1_2/modules: java2wsdl/src/org/apache/ws/java2wsdl/ kernel/src/org/apache/axis2/deployment/ kernel/src/org/apache/axis2/deployment/util/ samples/soapwithattachments/src/sample/soapwithattachment...

Author: deepal
Date: Mon Apr 23 00:16:41 2007
New Revision: 531357

URL: http://svn.apache.org/viewvc?view=rev&rev=531357
Log:
fixing the issue in AXIS2-2325 (applied the patch with modifications)
- Fixed hot update issue in POJODeployer

Modified:
    webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2OMBuilder.java
    webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/SchemaGenerator.java
    webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
    webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
    webservices/axis2/branches/java/1_2/modules/samples/soapwithattachments/src/sample/soapwithattachments/client/SWAClient.java

Modified: webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2OMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2OMBuilder.java?view=diff&rev=531357&r1=531356&r2=531357
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2OMBuilder.java (original)
+++ webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2OMBuilder.java Mon Apr 23 00:16:41 2007
@@ -9,6 +9,7 @@
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.java2wsdl.utils.TypeTable;
 import org.codehaus.jam.JMethod;
+import org.codehaus.jam.JClass;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
@@ -206,7 +207,7 @@
                     .getSimpleName()
                     + RESPONSE)) != null) {
                 namespaceURI = messagePartType.getNamespaceURI();
-                if ((namespacePrefix = (String) messagePartType.getPrefix()) == null &&
+                if ((namespacePrefix = messagePartType.getPrefix()) == null &&
                         (namespacePrefix = (String) namespaceMap.get(namespaceURI)) == null) {
                     namespacePrefix = generatePrefix();
                     namespaceMap.put(namespaceURI, namespacePrefix);
@@ -229,30 +230,32 @@
             }
 
             if (jmethod.getExceptionTypes().length > 0) {
-                if ((messagePartType = typeTable.getComplexSchemaType(jmethod.getSimpleName() + "Fault")) != null) {
-                    namespaceURI = messagePartType.getNamespaceURI();
-                    if ((namespacePrefix = (String) messagePartType.getPrefix()) == null &&
-                            (namespacePrefix = (String) namespaceMap.get(namespaceURI)) == null) {
-                        namespacePrefix = generatePrefix();
-                        namespaceMap.put(namespaceURI, namespacePrefix);
+                JClass[] extypes = jmethod.getExceptionTypes() ;
+                for (int j= 0 ; j < extypes.length ; j++) {
+                    JClass extype = extypes[j] ;
+                    String exname = extype.getSimpleName() ;
+                    String q_exname= extype.getQualifiedName() ;
+                    if ((messagePartType = typeTable.getComplexSchemaType(q_exname)) != null) {
+                        namespaceURI = messagePartType.getNamespaceURI();
+                        if ((namespacePrefix = messagePartType.getPrefix()) == null &&
+                                (namespacePrefix = (String) namespaceMap.get(namespaceURI)) == null) {
+                            namespacePrefix = generatePrefix();
+                            namespaceMap.put(namespaceURI, namespacePrefix);
+                        }
+                        OMElement responseMessge = fac.createOMElement(
+                                MESSAGE_LOCAL_NAME, wsdl);
+                        responseMessge.addAttribute(ATTRIBUTE_NAME, exname, null);
+                        definitions.addChild(responseMessge);
+                        OMElement responsePart = fac.createOMElement(
+                                PART_ATTRIBUTE_NAME, wsdl);
+                        responseMessge.addChild(responsePart);
+                        responsePart.addAttribute(ATTRIBUTE_NAME, "part1", null);
+                        responsePart.addAttribute(ELEMENT_ATTRIBUTE_NAME,
+                                namespacePrefix + COLON_SEPARATOR
+                                        + exname, null);
                     }
-                    //Response Message
-                    OMElement responseMessge = fac.createOMElement(
-                            MESSAGE_LOCAL_NAME, wsdl);
-                    responseMessge.addAttribute(ATTRIBUTE_NAME, jmethod
-                            .getSimpleName()
-                            + "Fault", null);
-                    definitions.addChild(responseMessge);
-                    OMElement responsePart = fac.createOMElement(
-                            PART_ATTRIBUTE_NAME, wsdl);
-                    responseMessge.addChild(responsePart);
-                    responsePart.addAttribute(ATTRIBUTE_NAME, "part1", null);
-
-                    responsePart.addAttribute(ELEMENT_ATTRIBUTE_NAME,
-                            namespacePrefix + COLON_SEPARATOR
-                                    + jmethod.getSimpleName() + "Fault", null);
                 }
-            }
+            }// end for loop
         }
 
         // now add these unique namespaces to the the definitions element
@@ -307,16 +310,18 @@
                 operation.addChild(message);
             }
             if (jmethod.getExceptionTypes().length > 0) {
-                message = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
-                message.addAttribute(MESSAGE_LOCAL_NAME, tns.getPrefix()
-                        + COLON_SEPARATOR + jmethod.getSimpleName()
-                        + "Fault", null);
-                message.addAttribute(ATTRIBUTE_NAME, jmethod.getSimpleName()
-                        + "Fault", null);
-                namespace = message.declareNamespace(WSAD_NS,
-                        "wsaw");
-                message.addAttribute("Action", "urn:" + jmethod.getSimpleName(), namespace);
-                operation.addChild(message);
+            	JClass[] extypes = jmethod.getExceptionTypes() ;
+           	 	for (int j= 0 ; j < extypes.length ; j++) {
+           		 JClass extype = extypes[j] ;
+           		 String exname = extype.getSimpleName() ;
+
+           		 message = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
+           		 message.addAttribute(MESSAGE_LOCAL_NAME, tns.getPrefix()
+                        + COLON_SEPARATOR + exname, null);
+           		 message.addAttribute(ATTRIBUTE_NAME, exname, null);
+          		 operation.addChild(message);
+
+           	 	} // end for
             }
         }
 
@@ -391,11 +396,15 @@
             }
 
             if (jmethod.getExceptionTypes().length > 0) {
-
-                OMElement fault = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
-                fault.addAttribute(ATTRIBUTE_NAME, jmethod.getSimpleName() + "Fault", null);
-                addExtensionElement(fac, fault, soap, SOAP_BODY, SOAP_USE, use);
-                operation.addChild(fault);
+            	JClass[] extypes = jmethod.getExceptionTypes() ;
+           	 	for (int j= 0 ; j < extypes.length ; j++) {
+           	 		JClass extype = extypes[j] ;
+           	 		String exname = extype.getSimpleName() ;
+           	 		OMElement fault = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
+           	 		fault.addAttribute(ATTRIBUTE_NAME, exname, null);
+           	 		addExtensionElement(fac, fault, soap, SOAP_BODY, SOAP_USE, use);
+           	 		operation.addChild(fault);
+           	 	}
             }
         }
     }
@@ -437,11 +446,15 @@
                 operation.addChild(output);
             }
             if (jmethod.getExceptionTypes().length > 0) {
-
-                OMElement fault = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
-                fault.addAttribute(ATTRIBUTE_NAME, jmethod.getSimpleName() + "Fault", null);
-                addExtensionElement(fac, fault, soap12, SOAP_BODY, SOAP_USE, use);
-                operation.addChild(fault);
+                JClass[] extypes = jmethod.getExceptionTypes() ;
+                for (int j= 0 ; j < extypes.length ; j++) {
+                    JClass extype = extypes[j] ;
+                    String exname = extype.getSimpleName() ;
+                    OMElement fault = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
+                    fault.addAttribute(ATTRIBUTE_NAME, exname, null);
+                    addExtensionElement(fac, fault, soap12, SOAP_BODY, SOAP_USE, use);
+                    operation.addChild(fault);
+                }
             }
         }
     }

Modified: webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/SchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/SchemaGenerator.java?view=diff&rev=531357&r1=531356&r2=531357
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/SchemaGenerator.java (original)
+++ webservices/axis2/branches/java/1_2/modules/java2wsdl/src/org/apache/ws/java2wsdl/SchemaGenerator.java Mon Apr 23 00:16:41 2007
@@ -218,19 +218,30 @@
                         continue;
                     }
                     if (jMethod.getExceptionTypes().length > 0) {
-                        methodSchemaType =
-                                createSchemaTypeForMethodPart(getSimpleName(jMethod) + "Fault");
-                        sequence = new XmlSchemaSequence();
-                        XmlSchemaElement elt1 = new XmlSchemaElement();
-                        elt1.setName(getSimpleName(jMethod) + "Fault");
-                        elt1.setSchemaTypeName(
-                                typeTable.getQNamefortheType(Object.class.getName()));
-                        sequence.getItems().add(elt1);
-                        methodSchemaType.setParticle(sequence);
+                    	/*
+                    	methodSchemaType = createSchemaTypeForMethodPart(getSimpleName(jMethod) + "Fault");
+                         sequence = new XmlSchemaSequence();
+                         XmlSchemaElement elt1 = new XmlSchemaElement();
+                         elt1.setName(getSimpleName(jMethod) + "Fault");
+                         elt1.setSchemaTypeName(typeTable.getQNamefortheType(Object.class.getName()));
+                         sequence.getItems().add(elt1);
+                         methodSchemaType.setParticle(sequence);
+                        */
+//                    	 begin mj
+                        JClass[] extypes = jMethod.getExceptionTypes() ;
+                        for (int j= 0 ; j < extypes.length ; j++) {
+                            JClass extype = extypes[j] ;
+                            methodSchemaType = createSchemaTypeForMethodPart(extype.getSimpleName()+ "Fault");
+                            sequence = new XmlSchemaSequence();
+                           // methodSchemaType = createSchemaTypeForMethodPart(extype.getSimpleName());
+                           // methodSchemaType.setParticle(sequence);
+                        	generateSchemaForType(sequence, extype, extype.getSimpleName());
+                            methodSchemaType.setParticle(sequence);
+                        }
+                        // end mj
                     }
                     uniqueMethods.put(getSimpleName(jMethod), jMethod);
                     //create the schema type for the method wrapper
-
                     uniqueMethods.put(getSimpleName(jMethod), jMethod);
                     JParameter [] paras = jMethod.getParameters();
                     String parameterNames [] = null;
@@ -346,7 +357,8 @@
             JClass sup = javaType.getSuperclass() ;
             
 //          AXIS2-1749 inheritance
-            if ((sup != null) && !( "java.lang.Object".compareTo(sup.getQualifiedName()) == 0)) {
+            if ((sup != null) && !( "java.lang.Object".compareTo(sup.getQualifiedName()) == 0) &&
+            		!("org.apache.axis2".compareTo(sup.getContainingPackage().getQualifiedName()) == 0)) {
             	String superClassName = sup.getQualifiedName();
             	String superclassname = getSimpleName(sup) ;
             	String tgtNamespace ;
@@ -361,7 +373,12 @@
                      tgtNamespacepfx = (String) targetNamespacePrefixMap.get(tgtNamespace);
                  }
 
-            	QName basetype = new QName(tgtNamespace,superclassname,tgtNamespacepfx) ;
+                if (tgtNamespacepfx == null) {
+                    tgtNamespacepfx = generatePrefix();
+                    targetNamespacePrefixMap.put(tgtNamespace, tgtNamespacepfx) ;
+                }
+
+                QName basetype = new QName(tgtNamespace,superclassname,tgtNamespacepfx) ;
             	
             	complexExtension.setBaseTypeName(basetype) ;
             	complexExtension.setParticle(sequence) ;
@@ -505,12 +522,9 @@
                 elt1.setMaxOccurs(Long.MAX_VALUE);
                 elt1.setMinOccurs(1);
             }
-    		  		
-    		if (String.class.getName().equals(propertyName)) {
-    			elt1.setNillable(true);
-    		}
-    		    		    		
-    		
+            if(type.isPrimitiveType() == false)
+                elt1.setNillable(true) ;
+
     	} else {
     		if (isArryType) {
     			generateSchema(type.getArrayComponentType());

Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java?view=diff&rev=531357&r1=531356&r2=531357
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java Mon Apr 23 00:16:41 2007
@@ -11,6 +11,8 @@
 import org.apache.axis2.util.Loader;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.axis2.Constants;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.i18n.Messages;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.java2wsdl.AnnotationConstants;
@@ -268,6 +270,30 @@
     }
 
     public void unDeploy(String fileName) {
+        if(fileName.endsWith(".class")){
+            String className = fileName.replaceAll(".class", "");
+            try {
+                AxisServiceGroup serviceGroup =
+                        configCtx.getAxisConfiguration().removeServiceGroup(className);
+                configCtx.removeServiceGroupContext(serviceGroup);
+                log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED,
+                        fileName));
+            } catch (AxisFault axisFault) {
+                //May be a faulty service
+                configCtx.getAxisConfiguration().removeFaultyService(fileName);
+            }
+        } else if (fileName.endsWith(".jar")){
+            try {
+                AxisServiceGroup serviceGroup =
+                        configCtx.getAxisConfiguration().removeServiceGroup(fileName);
+                configCtx.removeServiceGroupContext(serviceGroup);
+                log.info(Messages.getMessage(DeploymentErrorMsgs.SERVICE_REMOVED,
+                        fileName));
+            } catch (AxisFault axisFault) {
+                //May be a faulty service
+                configCtx.getAxisConfiguration().removeFaultyService(fileName);
+            }
+        }
     }
 }
 

Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java?view=diff&rev=531357&r1=531356&r2=531357
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java Mon Apr 23 00:16:41 2007
@@ -34,6 +34,7 @@
 import org.apache.ws.java2wsdl.utils.TypeTable;
 import org.codehaus.jam.JAnnotation;
 import org.codehaus.jam.JMethod;
+import org.codehaus.jam.JClass;
 
 import javax.xml.namespace.QName;
 import java.io.BufferedReader;
@@ -370,11 +371,21 @@
                     outMessage.setName(opName + Java2WSDLConstants.RESPONSE);
                 }
                 if (jmethod.getExceptionTypes().length > 0) {
-                    AxisMessage faultMessage = new AxisMessage();
-                    faultMessage.setName(jmethod.getSimpleName() + "Fault");
-                    faultMessage.setElementQName(
-                            table.getComplexSchemaType(jmethod.getSimpleName() + "Fault"));
-                    operation.setFaultMessages(faultMessage);
+                    JClass[] extypes = jmethod.getExceptionTypes() ;
+                    for (int j= 0 ; j < extypes.length ; j++) {
+                        AxisMessage faultMessage = new AxisMessage();
+                        JClass extype = extypes[j] ;
+                        String exname = extype.getSimpleName() ;
+                        if(extypes.length>1){
+                            faultMessage.setName(jmethod.getSimpleName() + "Fault" + j);
+                        } else{
+                            faultMessage.setName(jmethod.getSimpleName() + "Fault");
+                        }
+                        faultMessage.setElementQName(
+                                table.getComplexSchemaType(exname + "Fault"));
+                        operation.setFaultMessages(faultMessage);
+                    }
+
                 }
             } else {
                 operation = getAxisOperationforJmethod(jmethod, table);
@@ -414,11 +425,20 @@
             outMessage.setName(opName + Java2WSDLConstants.RESPONSE);
         }
         if (jmethod.getExceptionTypes().length > 0) {
-            AxisMessage faultMessage = new AxisMessage();
-            faultMessage.setName(jmethod.getSimpleName() + "Fault");
-            faultMessage
-                    .setElementQName(table.getComplexSchemaType(jmethod.getSimpleName() + "Fault"));
-            operation.setFaultMessages(faultMessage);
+            JClass[] extypes = jmethod.getExceptionTypes() ;
+            for (int j= 0 ; j < extypes.length ; j++) {
+                AxisMessage faultMessage = new AxisMessage();
+                JClass extype = extypes[j] ;
+                String exname = extype.getSimpleName() ;
+                if(extypes.length >1){
+                    faultMessage.setName(jmethod.getSimpleName() + "Fault" + j);
+                } else {
+                    faultMessage.setName(jmethod.getSimpleName() + "Fault" );
+                }
+                faultMessage.setElementQName(
+                        table.getComplexSchemaType(exname + "Fault"));
+                operation.setFaultMessages(faultMessage);
+            }
         }
         operation.setName(new QName(opName));
         AxisMessage inMessage = operation.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);

Modified: webservices/axis2/branches/java/1_2/modules/samples/soapwithattachments/src/sample/soapwithattachments/client/SWAClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/samples/soapwithattachments/src/sample/soapwithattachments/client/SWAClient.java?view=diff&rev=531357&r1=531356&r2=531357
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/samples/soapwithattachments/src/sample/soapwithattachments/client/SWAClient.java (original)
+++ webservices/axis2/branches/java/1_2/modules/samples/soapwithattachments/src/sample/soapwithattachments/client/SWAClient.java Mon Apr 23 00:16:41 2007
@@ -134,7 +134,8 @@
 		MessageContext response = mepClient
 				.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
 	  	SOAPBody body = response.getEnvelope().getBody();
-	  	OMElement element = body.getFirstElement().getFirstChildWithName(new QName("return"));
+	  	OMElement element = body.getFirstElement().getFirstChildWithName(
+	  	new QName("http://service.soapwithattachments.sample/xsd","return"));
 		System.out.println(element.getText());
 	}
 }



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