Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 91675 invoked from network); 4 May 2005 09:46:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 4 May 2005 09:46:27 -0000 Received: (qmail 1098 invoked by uid 500); 4 May 2005 09:47:28 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 1023 invoked by uid 500); 4 May 2005 09:47:27 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 926 invoked by uid 99); 4 May 2005 09:47:26 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Wed, 04 May 2005 02:47:24 -0700 Received: (qmail 91410 invoked by uid 1203); 4 May 2005 09:45:28 -0000 Date: 4 May 2005 09:45:28 -0000 Message-ID: <20050504094528.91409.qmail@minotaur.apache.org> From: dims@apache.org To: ws-axis-cvs@apache.org Subject: cvs commit: ws-axis/java/src/org/apache/axis/deployment/wsdd WSDDConstants.java WSDDOperation.java WSDDParameter.java X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N dims 2005/05/04 02:45:28 Modified: java/src/org/apache/axis/encoding/ser ArraySerializer.java java/src/org/apache/axis/wsdl/toJava JavaDeployWriter.java java/src/org/apache/axis/description ParameterDesc.java java/src/org/apache/axis/message RPCParam.java java/src/org/apache/axis/encoding SerializationContext.java java/src/org/apache/axis/deployment/wsdd WSDDConstants.java WSDDOperation.java WSDDParameter.java Log: Fix for the breakage in test/wsdl/marshall (jonas identified problem) Revision Changes Path 1.68 +8 -4 ws-axis/java/src/org/apache/axis/encoding/ser/ArraySerializer.java Index: ArraySerializer.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/ArraySerializer.java,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- ArraySerializer.java 1 May 2005 19:39:25 -0000 1.67 +++ ArraySerializer.java 4 May 2005 09:45:27 -0000 1.68 @@ -158,13 +158,17 @@ componentTypeQName = context.getCurrentXMLType(); if (componentTypeQName != null) { if ((componentTypeQName.equals(xmlType) || - componentTypeQName.equals(Constants.XSD_ANYTYPE) || - componentTypeQName.equals(soap.getArrayType()))) { - componentTypeQName = null; - } + componentTypeQName.equals(Constants.XSD_ANYTYPE) || + componentTypeQName.equals(soap.getArrayType()))) { + componentTypeQName = null; + } } } + if (componentTypeQName == null) { + componentTypeQName = context.getItemType(); + } + // Then check the type mapping for the class if (componentTypeQName == null) { componentTypeQName = context.getQNameForClass(componentClass); 1.94 +10 -1 ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java Index: JavaDeployWriter.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java,v retrieving revision 1.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- JavaDeployWriter.java 2 May 2005 11:39:36 -0000 1.93 +++ JavaDeployWriter.java 4 May 2005 09:45:27 -0000 1.94 @@ -573,12 +573,21 @@ Parameter retParam = params.returnParam; if (retParam != null) { - QName returnItemQName = Utils.getItemQName(retParam.getType()); + TypeEntry type = retParam.getType(); + QName returnItemQName = Utils.getItemQName(type); if (returnItemQName != null) { pw.print(" returnItemQName=\""); pw.print(Utils.genQNameAttributeString(returnItemQName, "tns")); pw.print("\""); } + if(type.getComponentType()!=null){ + QName returnItemType = type.getComponentType(); + if (returnItemType != null) { + pw.print(" returnItemType=\""); + pw.print(Utils.genQNameAttributeString(returnItemType, "tns2")); + pw.print("\""); + } + } } if (SOAPAction != null) { 1.33 +26 -18 ws-axis/java/src/org/apache/axis/description/ParameterDesc.java Index: ParameterDesc.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/description/ParameterDesc.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- ParameterDesc.java 12 Apr 2005 22:18:15 -0000 1.32 +++ ParameterDesc.java 4 May 2005 09:45:27 -0000 1.33 @@ -59,22 +59,22 @@ * determine if it gets written as a "bare" or a "wrapped" schema. */ private QName itemQName; + private QName itemType; /** Indicates whether input/output values are stored in the header */ private boolean inHeader = false; - private boolean outHeader = false; + private boolean outHeader = false; /** The documentation for the parameter */ private String documentation = null; - public ParameterDesc() { } /** * Constructor-copy * - * @param copy the copy + * @param copy the copy */ public ParameterDesc(ParameterDesc copy) { name = copy.name; @@ -138,9 +138,9 @@ String text=""; text+=indent + "name: " + name + "\n"; text+=indent + "typeEntry: " + typeEntry + "\n"; - text+=indent + "mode: " + (mode == IN ? - "IN" : mode == INOUT ? - "INOUT" : "OUT") + "\n"; + text+=indent + "mode: " + (mode == IN ? + "IN" : mode == INOUT ? + "INOUT" : "OUT") + "\n"; text+=indent + "position: " + order + "\n"; text+=indent + "isReturn: " + isReturn + "\n"; text+=indent + "typeQName: " + typeQName + "\n"; @@ -149,15 +149,15 @@ text+=indent + "outHeader: " + outHeader+ "\n"; return text; } // toString - + /** * Get a mode constant from a string. Defaults to IN, and returns * OUT or INOUT if the string matches (ignoring case). - */ + */ public static byte modeFromString(String modeStr) { byte ret = IN; - if (modeStr == null) { + if (modeStr == null) { return IN; } else if (modeStr.equalsIgnoreCase("out")) { ret = OUT; @@ -166,7 +166,7 @@ } return ret; } - + public static String getModeAsString(byte mode) { if (mode == INOUT) { @@ -176,7 +176,7 @@ } else if (mode == IN) { return "in"; } - + throw new IllegalArgumentException( Messages.getMessage("badParameterMode", Byte.toString(mode))); } @@ -210,7 +210,7 @@ this.typeQName = typeQName; } - /** + /** * Get the java type (note that this is javaType in the signature.) * @return Class javaType */ @@ -218,8 +218,8 @@ return javaType; } - /** - * Set the java type (note that this is javaType in the signature.) + /** + * Set the java type (note that this is javaType in the signature.) */ public void setJavaType(Class javaType) { // The javaType must match the mode. A Holder is expected for OUT/INOUT @@ -230,10 +230,10 @@ mode != IN && !isReturn && !javax.xml.rpc.holders.Holder.class.isAssignableFrom(javaType)) { throw new IllegalArgumentException( - Messages.getMessage("setJavaTypeErr00", + Messages.getMessage("setJavaTypeErr00", javaType.getName(), getModeAsString(mode))); - } + } } this.javaType = javaType; @@ -290,7 +290,7 @@ * get the documentation for the parameter */ public String getDocumentation() { - return documentation; + return documentation; } /** @@ -343,4 +343,12 @@ public void setItemQName(QName itemQName) { this.itemQName = itemQName; } -} // class ParameterDesc + + public QName getItemType() { + return itemType; + } + + public void setItemType(QName itemType) { + this.itemType = itemType; + } +} 1.65 +3 -0 ws-axis/java/src/org/apache/axis/message/RPCParam.java Index: RPCParam.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/message/RPCParam.java,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- RPCParam.java 12 Apr 2005 22:18:15 -0000 1.64 +++ RPCParam.java 4 May 2005 09:45:27 -0000 1.65 @@ -193,6 +193,9 @@ } } context.setItemQName(itemQName); + + QName itemType = paramDesc.getItemType(); + context.setItemType(itemType); } context.serialize(getQName(), // element qname null, // no extra attrs 1.108 +11 -1 ws-axis/java/src/org/apache/axis/encoding/SerializationContext.java Index: SerializationContext.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/SerializationContext.java,v retrieving revision 1.107 retrieving revision 1.108 diff -u -r1.107 -r1.108 --- SerializationContext.java 12 Apr 2005 22:18:15 -0000 1.107 +++ SerializationContext.java 4 May 2005 09:45:27 -0000 1.108 @@ -101,6 +101,8 @@ private QName currentXMLType; /** The item QName if we're serializing a literal array... */ private QName itemQName; + /** The item type if we're serializing a literal array... */ + private QName itemType; /** The SOAP context we're using */ private SOAPConstants soapConstants = SOAPConstants.SOAP11_CONSTANTS; @@ -167,7 +169,7 @@ /** The encoding to serialize */ private String encoding = XMLEncoderFactory.DEFAULT_ENCODING; - + class MultiRefItem { String id; QName xmlType; @@ -1595,4 +1597,12 @@ public void setItemQName(QName itemQName) { this.itemQName = itemQName; } + + public QName getItemType() { + return itemType; + } + + public void setItemType(QName itemType) { + this.itemType = itemType; + } } \ No newline at end of file 1.37 +3 -1 ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java Index: WSDDConstants.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- WSDDConstants.java 18 Apr 2005 17:17:12 -0000 1.36 +++ WSDDConstants.java 4 May 2005 09:45:28 -0000 1.37 @@ -138,7 +138,9 @@ public static final String ATTR_RETQNAME = "returnQName"; public static final String ATTR_RETTYPE = "returnType"; public static final String ATTR_RETITEMQNAME = "returnItemQName"; - public static final String ATTR_ITEMQNAME = "itemQName"; + public static final String ATTR_RETITEMTYPE = "returnItemType"; + public static final String ATTR_ITEMQNAME = "itemQName"; + public static final String ATTR_ITEMTYPE = "itemType"; public static final String ATTR_MODE = "mode"; public static final String ATTR_INHEADER = "inHeader"; public static final String ATTR_OUTHEADER = "outHeader"; 1.32 +12 -6 ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDOperation.java Index: WSDDOperation.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDOperation.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- WSDDOperation.java 18 Apr 2005 17:17:12 -0000 1.31 +++ WSDDOperation.java 4 May 2005 09:45:28 -0000 1.32 @@ -90,11 +90,17 @@ param.setItemQName(XMLUtils.getQNameFromString(retItemQName, e)); } + String retItemType = e.getAttribute(ATTR_RETITEMTYPE); + if (retItemType != null && !retItemType.equals("")) { + ParameterDesc param = desc.getReturnParamDesc(); + param.setItemType(XMLUtils.getQNameFromString(retItemType, e)); + } + String soapAction = e.getAttribute(ATTR_SOAPACTION); if (soapAction != null) { desc.setSoapAction(soapAction); } - + String mepString = e.getAttribute(ATTR_MEP); if (mepString != null) { desc.setMep(mepString); @@ -106,7 +112,7 @@ WSDDParameter parameter = new WSDDParameter(paramEl, desc); desc.addParameter(parameter.getParameter()); } - + Element [] faultElems = getChildElements(e, ELEM_WSDD_FAULT); for (int i = 0; i < faultElems.length; i++) { Element faultElem = faultElems[i]; @@ -118,7 +124,7 @@ if (docElem != null) { WSDDDocumentation documentation = new WSDDDocumentation(docElem); desc.setDocumentation(documentation.getValue()); - } + } } /** @@ -147,10 +153,10 @@ if (desc.getName() != null) { attrs.addAttribute("", ATTR_NAME, ATTR_NAME, "CDATA", desc.getName()); } - + if (desc.getElementQName() != null) { - attrs.addAttribute("", ATTR_QNAME, ATTR_QNAME, - "CDATA", + attrs.addAttribute("", ATTR_QNAME, ATTR_QNAME, + "CDATA", context.qName2String(desc.getElementQName())); } 1.20 +11 -0 ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDParameter.java Index: WSDDParameter.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/deployment/wsdd/WSDDParameter.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- WSDDParameter.java 18 Apr 2005 17:17:12 -0000 1.19 +++ WSDDParameter.java 4 May 2005 09:45:28 -0000 1.20 @@ -73,6 +73,11 @@ parameter.setItemQName(XMLUtils.getQNameFromString(itemQNameStr, e)); } + String itemTypeStr = e.getAttribute(ATTR_ITEMTYPE); + if (itemTypeStr != null && !itemTypeStr.equals("")) { + parameter.setItemType(XMLUtils.getQNameFromString(itemTypeStr, e)); + } + Element docElem = getChildElement(e, ELEM_WSDD_DOC); if (docElem != null) { WSDDDocumentation documentation = new WSDDDocumentation(docElem); @@ -136,6 +141,12 @@ context.qName2String(itemQName)); } + QName itemType = parameter.getItemType(); + if (itemType != null) { + attrs.addAttribute("", ATTR_ITEMTYPE, ATTR_ITEMTYPE, "CDATA", + context.qName2String(itemType)); + } + context.startElement(getElementName(), attrs); if (parameter.getDocumentation() != null) {