Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 25419 invoked from network); 18 May 2007 10:58:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 18 May 2007 10:58:42 -0000 Received: (qmail 80077 invoked by uid 500); 18 May 2007 10:58:48 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 80037 invoked by uid 500); 18 May 2007 10:58:47 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 80028 invoked by uid 99); 18 May 2007 10:58:47 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 May 2007 03:58:47 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 May 2007 03:58:40 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 9BE9E1A981D; Fri, 18 May 2007 03:58:20 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r539379 - in /incubator/cxf/trunk: rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/ Date: Fri, 18 May 2007 10:58:20 -0000 To: cxf-commits@incubator.apache.org From: ema@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070518105820.9BE9E1A981D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ema Date: Fri May 18 03:58:19 2007 New Revision: 539379 URL: http://svn.apache.org/viewvc?view=rev&rev=539379 Log: Fixed issue CXF-564 Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?view=diff&rev=539379&r1=539378&r2=539379 ============================================================================== --- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original) +++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Fri May 18 03:58:19 2007 @@ -402,6 +402,16 @@ createWrappedSchema(serviceInfo, op.getInput(), op.getUnwrappedOperation().getInput(), wraperBeanName); } + + for (MessagePartInfo mpi : op.getInput().getMessageParts()) { + if (Boolean.TRUE.equals(mpi.getProperty(HEADER))) { + QName qn = (QName)mpi.getProperty(ELEMENT_NAME); + mpi.setElement(true); + mpi.setElementQName(qn); + } + } + + } if (op.hasOutput()) { QName wraperBeanName = op.getOutput().getMessageParts().get(0).getElementQName(); @@ -416,6 +426,14 @@ createWrappedSchema(serviceInfo, op.getOutput(), op.getUnwrappedOperation() .getOutput(), wraperBeanName); } + + for (MessagePartInfo mpi : op.getOutput().getMessageParts()) { + if (Boolean.TRUE.equals(mpi.getProperty(HEADER))) { + QName qn = (QName)mpi.getProperty(ELEMENT_NAME); + mpi.setElement(true); + mpi.setElementQName(qn); + } + } } } } @@ -603,6 +621,22 @@ } + private boolean isExistSchemaElement(XmlSchema schema, QName qn) { + boolean isExist = false; + for (Iterator ite = schema.getItems().getIterator(); ite.hasNext();) { + XmlSchemaObject obj = (XmlSchemaObject)ite.next(); + if (obj instanceof XmlSchemaElement) { + XmlSchemaElement xsEle = (XmlSchemaElement)obj; + if (xsEle.getQName().equals(qn)) { + isExist = true; + break; + } + } + } + return isExist; + } + + private void createWrappedMessageSchema(AbstractMessageContainer wrappedMessage, AbstractMessageContainer unwrappedMessage, XmlSchema schema, QName wrapperName) { @@ -623,11 +657,16 @@ ct.setParticle(seq); for (MessagePartInfo mpi : unwrappedMessage.getMessageParts()) { - if (!Boolean.TRUE.equals(mpi.getProperty(HEADER))) { - el = new XmlSchemaElement(); - el.setName(mpi.getName().getLocalPart()); - el.setQName(mpi.getName()); + el = new XmlSchemaElement(); + el.setName(mpi.getName().getLocalPart()); + el.setQName(mpi.getName()); + if (mpi.isElement()) { + el.setRefName(mpi.getElementQName()); + } else { + el.setSchemaTypeName(mpi.getTypeQName()); + } + if (!Boolean.TRUE.equals(mpi.getProperty(HEADER))) { if (mpi.getTypeClass() != null && mpi.getTypeClass().isArray() && !Byte.TYPE.equals(mpi.getTypeClass().getComponentType())) { el.setMinOccurs(0); @@ -638,13 +677,18 @@ el.setMinOccurs(0); } } + seq.getItems().add(el); + } + if (Boolean.TRUE.equals(mpi.getProperty(HEADER))) { - if (mpi.isElement()) { - el.setRefName(mpi.getElementQName()); - } else { - el.setSchemaTypeName(mpi.getTypeQName()); + QName qn = (QName)mpi.getProperty(ELEMENT_NAME); + + el.setName(qn.getLocalPart()); + el.setQName(qn); + + if (!isExistSchemaElement(schema, qn)) { + schema.getItems().add(el); } - seq.getItems().add(el); } } } @@ -667,7 +711,8 @@ } if (isHeader(method, j)) { - part.setElementQName(q); + //part.setElementQName(q); + part.setProperty(ELEMENT_NAME, q); part.setProperty(HEADER, Boolean.TRUE); } part.setIndex(j); @@ -718,7 +763,8 @@ part.setProperty(MODE_INOUT, Boolean.TRUE); } if (isHeader(method, j)) { - part.setElementQName(q2); + //part.setElementQName(q2); + part.setProperty(ELEMENT_NAME, q2); part.setProperty(HEADER, Boolean.TRUE); } } @@ -767,8 +813,8 @@ } } - protected void createOutputWrappedMessageParts(OperationInfo op, Method method, MessageInfo inMsg) { - MessagePartInfo part = inMsg.addMessagePart("parameters"); + protected void createOutputWrappedMessageParts(OperationInfo op, Method method, MessageInfo outMsg) { + MessagePartInfo part = outMsg.addMessagePart("parameters"); part.setElement(true); part.setIndex(-1); for (Iterator itr = serviceConfigurations.iterator(); itr.hasNext();) { @@ -780,7 +826,7 @@ } if (part.getElementQName() == null) { - part.setElementQName(inMsg.getName()); + part.setElementQName(outMsg.getName()); } else if (!part.getElementQName().equals(op.getOutput().getName())) { op.getOutput().setName(part.getElementQName()); } @@ -789,6 +835,14 @@ part.setTypeClass(this.getResponseWrapper(method)); } else if (getResponseWrapperClassName(method) != null) { part.setProperty("RESPONSE.WRAPPER.CLASSNAME", getResponseWrapperClassName(method)); + } + + for (MessagePartInfo mpart : op.getOutput().getMessageParts()) { + if (Boolean.TRUE.equals(mpart.getProperty(HEADER))) { + int idx = mpart.getIndex(); + outMsg.addMessagePart(mpart); + mpart.setIndex(idx); + } } } Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl?view=diff&rev=539379&r1=539378&r2=539379 ============================================================================== --- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl (original) +++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/expected/expected_holder.wsdl Fri May 18 03:58:19 2007 @@ -40,6 +40,7 @@ + @@ -68,6 +69,8 @@ + +