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 2011/07/25 20:26:13 UTC
svn commit: r1150825 - in /cxf/branches/2.4.x-fixes: ./
tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/
tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/proces...
Author: dkulp
Date: Mon Jul 25 18:26:12 2011
New Revision: 1150825
URL: http://svn.apache.org/viewvc?rev=1150825&view=rev
Log:
Merged revisions 1150822 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1150822 | dkulp | 2011-07-25 14:20:40 -0400 (Mon, 25 Jul 2011) | 3 lines
[CXF-3684] Move @WebParam(header=true) processing for out-of-band
headers into the ParameterProcessor which actually knows that it's
out-of-band and can force the header=true flag there.
........
Modified:
cxf/branches/2.4.x-fixes/ (props changed)
cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WebParamAnnotator.java
cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessorTest.java
Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.4.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.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?rev=1150825&r1=1150824&r2=1150825&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Mon Jul 25 18:26:12 2011
@@ -103,14 +103,16 @@ public class ParameterProcessor extends
MessagePartInfo part,
JavaType.Style style)
throws ToolException {
- return addParameter(method, getParameterFromPart(method, part, style));
+ return addParameter(part, method, getParameterFromPart(method, part, style));
}
private JavaParameter getParameterFromPart(JavaMethod jm, MessagePartInfo part, JavaType.Style style) {
return ParameterMapper.map(jm, part, style, context);
}
- protected JavaParameter addParameter(JavaMethod method, JavaParameter parameter) throws ToolException {
+ protected JavaParameter addParameter(MessagePartInfo mpart,
+ JavaMethod method,
+ JavaParameter parameter) throws ToolException {
if (parameter == null) {
return null;
}
@@ -123,7 +125,7 @@ public class ParameterProcessor extends
}
parameter.setMethod(method);
- parameter.annotate(new WebParamAnnotator());
+ parameter.annotate(new WebParamAnnotator(isOutOfBandHeader(mpart)));
method.addParameter(parameter);
return parameter;
@@ -171,6 +173,9 @@ public class ParameterProcessor extends
}
private boolean isOutOfBandHeader(final MessagePartInfo part) {
+ if (part == null) {
+ return false;
+ }
return Boolean.TRUE.equals(part.getProperty(OUT_OF_BAND_HEADER));
}
@@ -219,7 +224,7 @@ public class ParameterProcessor extends
}
}
}
- addParameter(method, param);
+ addParameter(part, method, param);
}
}
@@ -249,7 +254,7 @@ public class ParameterProcessor extends
jp.setTargetNamespace("");
}
- addParameter(method, jp);
+ addParameter(part, method, jp);
}
// Adding out of band headers
@@ -258,7 +263,7 @@ public class ParameterProcessor extends
if (!isOutOfBandHeader(hpart)) {
continue;
}
- addParameter(method, getParameterFromPart(method, hpart, JavaType.Style.IN));
+ addParameter(hpart, method, getParameterFromPart(method, hpart, JavaType.Style.IN));
}
}
}
@@ -303,12 +308,13 @@ public class ParameterProcessor extends
p.setClassName(holderClass);
p.getAnnotations().clear();
p.setStyle(JavaType.Style.INOUT);
- p.annotate(new WebParamAnnotator());
+ p.annotate(new WebParamAnnotator(isOutOfBandHeader(outpart)));
found = true;
}
}
if (!found) {
- addParameter(method, getParameterFromPart(method, outpart, JavaType.Style.INOUT));
+ addParameter(outpart, method,
+ getParameterFromPart(method, outpart, JavaType.Style.INOUT));
}
continue;
} else if (!isSamePart(inpart, outpart)) {
@@ -341,7 +347,7 @@ public class ParameterProcessor extends
}
}
- addParameter(method, param);
+ addParameter(part, method, param);
}
} else {
processReturn(method, null);
@@ -360,7 +366,7 @@ public class ParameterProcessor extends
if (!isOutOfBandHeader(hpart) || !requireOutOfBandHeader()) {
continue;
}
- addParameter(method, getParameterFromPart(method, hpart, JavaType.Style.OUT));
+ addParameter(hpart, method, getParameterFromPart(method, hpart, JavaType.Style.OUT));
}
}
}
@@ -422,7 +428,7 @@ public class ParameterProcessor extends
if (!jpIn.getClassName().equals(jp.getClassName())) {
jp.setStyle(JavaType.Style.OUT);
}
- addParameter(method, jp);
+ addParameter(outputPart, method, jp);
sameWrapperChild = true;
if (method.getReturn() == null) {
@@ -476,7 +482,7 @@ public class ParameterProcessor extends
checkPartName(outputMessage, outElement, jp);
}
- addParameter(method, jp);
+ addParameter(outputPart, method, jp);
sameWrapperChild = true;
break;
}
@@ -490,7 +496,7 @@ public class ParameterProcessor extends
}
checkPartName(outputMessage, outElement, jp);
- addParameter(method, jp);
+ addParameter(outputPart, method, jp);
}
}
if (method.getReturn() == null) {
@@ -727,17 +733,17 @@ public class ParameterProcessor extends
style = JavaType.Style.INOUT;
}
if (part != null) {
- addParameter(method, getParameterFromPart(method, part, style));
+ addParameter(part, method, getParameterFromPart(method, part, style));
}
index++;
}
// now from unlisted input parts
for (MessagePartInfo part : inputUnlistedParts) {
- addParameter(method, getParameterFromPart(method, part, JavaType.Style.IN));
+ addParameter(part, method, getParameterFromPart(method, part, JavaType.Style.IN));
}
// now from unlisted output parts
for (MessagePartInfo part : outputUnlistedParts) {
- addParameter(method, getParameterFromPart(method, part, JavaType.Style.INOUT));
+ addParameter(part, method, getParameterFromPart(method, part, JavaType.Style.INOUT));
}
}
Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java?rev=1150825&r1=1150824&r2=1150825&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ServiceProcessor.java Mon Jul 25 18:26:12 2011
@@ -39,6 +39,7 @@ import org.w3c.dom.Element;
import org.apache.commons.lang.StringUtils;
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.service.model.BindingInfo;
+import org.apache.cxf.service.model.BindingMessageInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.service.model.MessageInfo;
@@ -473,6 +474,9 @@ public class ServiceProcessor extends Ab
for (ExtensibilityElement ext : outbindings) {
if (SOAPBindingUtil.isSOAPHeader(ext)) {
SoapHeader soapHeader = SOAPBindingUtil.getSoapHeader(ext);
+ if (isOutOfBandHeader(operation.getOutput(), ext)) {
+ continue;
+ }
boolean found = false;
for (JavaParameter parameter : jm.getParameters()) {
if (soapHeader.getPart().equals(parameter.getPartName())) {
@@ -518,7 +522,19 @@ public class ServiceProcessor extends Ab
}
}
+ private boolean isOutOfBandHeader(BindingMessageInfo bmi, ExtensibilityElement ext) {
+ SoapHeader soapHeader = SOAPBindingUtil.getSoapHeader(ext);
+ if (soapHeader.getMessage() != null
+ && !bmi.getMessageInfo().getName().equals(soapHeader.getMessage())) {
+ return true;
+ }
+ return false;
+ }
+
private void processSoapHeader(JavaMethod jm, BindingOperationInfo operation, ExtensibilityElement ext) {
+ if (isOutOfBandHeader(operation.getInput(), ext)) {
+ return;
+ }
SoapHeader soapHeader = SOAPBindingUtil.getSoapHeader(ext);
for (JavaParameter parameter : jm.getParameters()) {
if (soapHeader.getPart().equals(parameter.getPartName())) {
Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WebParamAnnotator.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WebParamAnnotator.java?rev=1150825&r1=1150824&r2=1150825&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WebParamAnnotator.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/annotator/WebParamAnnotator.java Mon Jul 25 18:26:12 2011
@@ -31,6 +31,14 @@ import org.apache.cxf.tools.common.model
import org.apache.cxf.tools.common.model.JavaType;
public class WebParamAnnotator implements Annotator {
+ boolean forceHeader;
+
+ public WebParamAnnotator() {
+ }
+ public WebParamAnnotator(boolean head) {
+ forceHeader = head;
+ }
+
public void annotate(JavaAnnotatable ja) {
JavaParameter parameter = null;
if (ja instanceof JavaParameter) {
@@ -86,6 +94,10 @@ public class WebParamAnnotator implement
for (String importClz : webParamAnnotation.getImports()) {
parameter.getMethod().getInterface().addImport(importClz);
}
+
+ if (forceHeader) {
+ webParamAnnotation.addElement(new JAnnotationElement("header", true, true));
+ }
parameter.addAnnotation("WebParam", webParamAnnotation);
}
}
Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessorTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessorTest.java?rev=1150825&r1=1150824&r2=1150825&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessorTest.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/frontend/jaxws/src/test/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessorTest.java Mon Jul 25 18:26:12 2011
@@ -34,11 +34,11 @@ public class ParameterProcessorTest exte
JavaMethod method = new JavaMethod();
JavaParameter p1 = new JavaParameter("request", String.class.getName(), null);
p1.setStyle(JavaType.Style.IN);
- processor.addParameter(method, p1);
+ processor.addParameter(null, method, p1);
JavaParameter p2 = new JavaParameter("request", String.class.getName(), null);
p2.setStyle(JavaType.Style.OUT);
- processor.addParameter(method, p2);
+ processor.addParameter(null, method, p2);
assertEquals(1, method.getParameters().size());
assertEquals(JavaType.Style.INOUT, method.getParameters().get(0).getStyle());