summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java
diff options
context:
space:
mode:
authorscottkurz <scottkurz@13f79535-47bb-0310-9956-ffa450edef68>2011-01-26 01:18:02 +0000
committerscottkurz <scottkurz@13f79535-47bb-0310-9956-ffa450edef68>2011-01-26 01:18:02 +0000
commitdac345d5480d52c4071c22fbdeba605dc1236cc0 (patch)
treec63f2f6803ec3f22357558d58f55ddfe3e753af6 /sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java
parent875e50908c2630d263661af492654cd44bef2d65 (diff)
Fix more issues with multiple outputs.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1063548 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java')
-rw-r--r--sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java b/sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
index 8e65cca7e6..57f2b9c3a1 100644
--- a/sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
+++ b/sca-java-2.x/trunk/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
@@ -186,11 +186,7 @@ public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor {
}
ParameterMode mode = operation.getParameterModes().get(i);
}
-
- //
- // Note for BARE mapping this will NOT be WS-I compliant, but let's assume this is not the place to
- // worry about non-compliance, and keep on going.
- //
+
WebResult result = method.getAnnotation(WebResult.class);
if (result != null) {
String ns = getValue(result.targetNamespace(), tns);
@@ -351,6 +347,19 @@ public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor {
operation.setWrapper(wrapperInfo);
}
+
+ // In both bare and wrapped cases, remove OUT-only parameters from input DataType.
+ // This is a key point then because it's the last time in which the number of parameters in
+ // Java matches the number of logical inputs. After this, things will be out of synch, for
+ // example the number of parameter modes won't match the number of inputs.
+ List<ParameterMode> parmModes = operation.getParameterModes();
+ List<DataType> inputDTs = operation.getInputType().getLogical();
+ for (int i = parmModes.size() - 1; i>=0; i--) {
+ if (parmModes.get(i).equals(ParameterMode.OUT)) {
+ inputDTs.remove(i);
+ }
+ }
+
}
}