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 2008/07/30 16:13:40 UTC
svn commit: r681060 -
/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
Author: dkulp
Date: Wed Jul 30 07:13:38 2008
New Revision: 681060
URL: http://svn.apache.org/viewvc?rev=681060&view=rev
Log:
Double check that we really can map all the wrapped parameters to classes. If not, fallback to bare mode.
Modified:
cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
Modified: cxf/trunk/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/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?rev=681060&r1=681059&r2=681060&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original)
+++ cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Wed Jul 30 07:13:38 2008
@@ -489,6 +489,48 @@
private void buildParamModelsWithoutOrdering(JavaMethod method,
MessageInfo inputMessage,
MessageInfo outputMessage) throws ToolException {
+ boolean wrapped = method.isWrapperStyle();
+ if (wrapped) {
+ //check if really can be wrapper style....
+ List<MessagePartInfo> outputParts = outputMessage.getMessageParts();
+ List<MessagePartInfo> inputParts = inputMessage.getMessageParts();
+
+ MessagePartInfo inputPart = inputParts.size() > 0 ? inputParts.iterator().next() : null;
+ MessagePartInfo outputPart = outputParts.size() > 0 ? outputParts.iterator().next() : null;
+
+ List<QName> inputWrapElement = null;
+ List<QName> outputWrapElement = null;
+
+ if (inputPart != null) {
+ inputWrapElement = ProcessorUtil.getWrappedElementQNames(context,
+ inputPart.getElementQName());
+ }
+ if (outputPart != null) {
+ outputWrapElement = ProcessorUtil.getWrappedElementQNames(context,
+ outputPart.getElementQName());
+ }
+ for (QName item : inputWrapElement) {
+ String fullJavaName = this.dataBinding.getWrappedElementType(inputPart.getElementQName(),
+ item);
+ if (StringUtils.isEmpty(fullJavaName)) {
+ wrapped = false;
+ break;
+ }
+ }
+ for (QName item : outputWrapElement) {
+ String fullJavaName = this.dataBinding.getWrappedElementType(outputPart.getElementQName(),
+ item);
+ if (StringUtils.isEmpty(fullJavaName)) {
+ wrapped = false;
+ break;
+ }
+ }
+ if (!wrapped) {
+ //could not map one of the parameters to a java type, need to drop down to bare style
+ method.setWrapperStyle(false);
+ }
+ }
+
if (inputMessage != null) {
if (method.isWrapperStyle()) {
processWrappedInput(method, inputMessage);