diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules')
3 files changed, 16 insertions, 9 deletions
diff --git a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java index c1fa4d4e4c..95256101d0 100644 --- a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java +++ b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java @@ -64,7 +64,7 @@ public class OperationImpl implements Operation { private List<Intent> requiredIntents = new ArrayList<Intent>(); private ExtensionType type; private DataType<List<DataType>> outputType; - private boolean hasMultipleOutputs; + private boolean hasArrayWrappedOutput; /** * @param name @@ -301,11 +301,11 @@ public class OperationImpl implements Operation { } public boolean hasArrayWrappedOutput() { - return this.hasMultipleOutputs; + return this.hasArrayWrappedOutput; } public void setHasArrayWrappedOutput(boolean value) { - this.hasMultipleOutputs = value; + this.hasArrayWrappedOutput = value; } } diff --git a/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java b/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java index 1dcd89ce2a..0b0a6cdee6 100644 --- a/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java +++ b/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java @@ -298,13 +298,13 @@ public class JavaInterfaceImpl extends InterfaceImpl implements JavaInterface { */ private boolean isAsyncServerOperation( Operation operation ) { // Async form operations have: - // 1) void return type + // 1) void return type (equivalent to an output logical List of size '0') // 2) name ending in "Async" // 3) final parameter which is of ResponseDispatch<?> type - DataType<?> response = operation.getOutputType().getLogical().get(0); - if( response != null ) { - if ( response.getPhysical() != void.class ) return false; - } // end if + int size = operation.getOutputType().getLogical().size(); + if (size != 0) { + return false; + } if ( !operation.getName().endsWith("Async") ) return false; diff --git a/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java b/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java index 48aab67ded..739cf4af75 100644 --- a/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java +++ b/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java @@ -38,6 +38,8 @@ import org.apache.tuscany.sca.contribution.processor.ProcessorContext; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.interfacedef.DataType; import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.interfacedef.ParameterMode; + import static org.apache.tuscany.sca.interfacedef.Operation.IDL_INPUT; import static org.apache.tuscany.sca.interfacedef.Operation.IDL_OUTPUT; import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; @@ -209,7 +211,12 @@ public class WSDLOperationIntrospectorImpl { operationModel.setName(operation.getName()); operationModel.setFaultTypes(getFaultTypes()); operationModel.setNonBlocking(oneway); - operationModel.setInputType(getInputType()); + DataType<List<DataType>> inputType = getInputType(); + operationModel.setInputType(inputType); + List<ParameterMode> modes = operationModel.getParameterModes(); + for (DataType dt : inputType.getLogical()) { + modes.add(ParameterMode.IN); + } operationModel.setOutputType(getOutputType()); operationModel.setWrapperStyle(isWrapperStyle()); |