You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2010/08/11 19:39:22 UTC
svn commit: r984490 - in /cxf/branches/2.2.x-fixes: ./
rt/core/src/main/java/org/apache/cxf/wsdl11/
tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/
tools/wsdlto/test/src/test/java/org/apache/cxf/...
Author: dkulp
Date: Wed Aug 11 17:39:22 2010
New Revision: 984490
URL: http://svn.apache.org/viewvc?rev=984490&view=rev
Log:
Merged revisions 984417 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r984417 | ema | 2010-08-11 10:12:50 -0400 (Wed, 11 Aug 2010) | 1 line
[CXF-2935]:Generate targetNamespace in @WebParam for the wrapped reference element
........
Added:
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf2935/
- copied from r984417, cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf2935/
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf2935/webservice.wsdl
- copied unchanged from r984417, cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf2935/webservice.wsdl
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?rev=984490&r1=984489&r2=984490&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java (original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java Wed Aug 11 17:39:22 2010
@@ -762,6 +762,7 @@ public class WSDLServiceBuilder {
mpi.setElementQName(el.getRefName());
mpi.setElement(true);
mpi.setXmlSchema(el);
+ mpi.setProperty("isRefElement", true);
// element reference is not permitted for wrapper element
if (!allowRefs) {
ret = false;
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?rev=984490&r1=984489&r2=984490&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Wed Aug 11 17:39:22 2010
@@ -35,6 +35,7 @@ import org.apache.cxf.common.util.String
import org.apache.cxf.jaxb.JAXBUtils;
import org.apache.cxf.service.model.MessageInfo;
import org.apache.cxf.service.model.MessagePartInfo;
+import org.apache.cxf.service.model.OperationInfo;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
@@ -420,7 +421,8 @@ public class ParameterProcessor extends
}
JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement,
JavaType.Style.INOUT, outputPart);
- if (!qualified) {
+
+ if (!qualified && !isRefElement(outputPart, outElement)) {
jp.setTargetNamespace("");
}
if (!jpIn.getClassName().equals(jp.getClassName())) {
@@ -471,7 +473,8 @@ public class ParameterProcessor extends
}
JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement,
JavaType.Style.INOUT, outputPart);
- if (!qualified) {
+
+ if (!qualified && !isRefElement(outputPart, outElement)) {
jp.setTargetNamespace("");
}
if (!jpIn.getClassName().equals(jp.getClassName())) {
@@ -486,7 +489,7 @@ public class ParameterProcessor extends
if (!sameWrapperChild) {
JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement,
JavaType.Style.OUT, outputPart);
- if (!qualified) {
+ if (!qualified && !isRefElement(outputPart, outElement)) {
jp.setTargetNamespace("");
}
@@ -801,4 +804,13 @@ public class ParameterProcessor extends
}
return true;
}
+
+ private boolean isRefElement(MessagePartInfo outputPart, QName outElement) {
+ OperationInfo wrappedOp = outputPart.getMessageInfo().getOperation().getUnwrappedOperation();
+ MessagePartInfo mpart = wrappedOp.getOutput().getMessagePart(outElement);
+ if (mpart == null) {
+ return false;
+ }
+ return mpart.getProperty("isRefElement") != null;
+ }
}
Modified: cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?rev=984490&r1=984489&r2=984490&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java Wed Aug 11 17:39:22 2010
@@ -27,6 +27,7 @@ import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;
+import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.namespace.QName;
import javax.xml.ws.WebFault;
@@ -50,6 +51,19 @@ import org.mortbay.jetty.handler.Resourc
public class CodeGenBugTest extends AbstractCodeGenTest {
+
+ @Test
+ public void testCXF2935() throws Exception {
+ env.put(ToolConstants.CFG_WSDLURL,
+ getLocation("/wsdl2java_wsdl/cxf2935/webservice.wsdl"));
+ env.put(ToolConstants.CFG_ALLOW_ELEMENT_REFS, "true");
+ processor.setContext(env);
+ processor.execute();
+ Class<?> clz = classLoader.loadClass("org.apache.cxf.WebParamWebService");
+ WebParam webParam = AnnotationUtil.getWebParam(clz.getMethods()[0], "Name");
+ assertEquals("helloString/Name", webParam.targetNamespace());
+
+ }
@Test