Author: scottkurz
Date: Thu Jul 28 03:21:39 2011
New Revision: 1151710
URL: http://svn.apache.org/viewvc?rev=1151710&view=rev
Log:
TUSCANY-3894. Refactor WSDL InterfaceContract generation so it's only done if
the BindingSCATransformer calls for it.
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java?rev=1151710&r1=1151709&r2=1151710&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
Thu Jul 28 03:21:39 2011
@@ -50,8 +50,9 @@ public class DefaultLocalSCAReferenceBin
protected InterfaceContractMapper interfaceContractMapper;
protected ExtensionPointRegistry extensionPoints;
protected Mediator mediator;
- protected InterfaceContract wsdlBindingInterfaceContract;
-
+ protected InterfaceContract componentTypeRefInterfaceContract;
+ protected InterfaceContract wsdlBindingInterfaceContract; // Computed
lazily
+
public DefaultLocalSCAReferenceBindingProvider(ExtensionPointRegistry
extensionPoints, RuntimeEndpointReference endpointReference, SCABindingMapper
mapper) {
this.extensionPoints = extensionPoints;
UtilityExtensionPoint utilities =
extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
@@ -65,8 +66,12 @@ public class DefaultLocalSCAReferenceBin
return DOMDataBinding.NAME;
}
- private InterfaceContract getWSDLInterfaceContract(InterfaceContract
interfaceContract) {
- InterfaceContract wsdlInterfaceContract =
(WSDLInterfaceContract)endpointReference.getGeneratedWSDLContract(interfaceContract);
+ protected InterfaceContract getWSDLBindingInterfaceContract() {
+ if (this.wsdlBindingInterfaceContract != null) {
+ return this.wsdlBindingInterfaceContract;
+ }
+
+ InterfaceContract wsdlInterfaceContract =
(WSDLInterfaceContract)endpointReference.getGeneratedWSDLContract(componentTypeRefInterfaceContract);
// Validation may be unnecessary. This check may already be
guaranteed at this point, not sure.
Endpoint target = endpointReference.getTargetEndpoint();
@@ -93,19 +98,16 @@ public class DefaultLocalSCAReferenceBin
if (wsdlInterfaceContract.getCallbackInterface() != null) {
wsdlInterfaceContract.getCallbackInterface().resetDataBinding(dataBinding);
}
+ this.wsdlBindingInterfaceContract = wsdlInterfaceContract;
+
return wsdlInterfaceContract;
-
}
@Override
public InterfaceContract getBindingInterfaceContract() {
- InterfaceContract componentTypeRefIC =
endpointReference.getComponentTypeReferenceInterfaceContract();
- if (componentTypeRefIC.getInterface().isRemotable()) {
- this.wsdlBindingInterfaceContract =
getWSDLInterfaceContract(componentTypeRefIC);
- }
-
// Since we want to disable DataTransformationInterceptor and handle
copy in the binding
- return componentTypeRefIC;
+ this.componentTypeRefInterfaceContract =
endpointReference.getComponentTypeReferenceInterfaceContract();
+ return componentTypeRefInterfaceContract;
}
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java?rev=1151710&r1=1151709&r2=1151710&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
Thu Jul 28 03:21:39 2011
@@ -23,6 +23,7 @@ import org.apache.tuscany.sca.binding.sc
import
org.apache.tuscany.sca.binding.sca.transform.DefaultBindingSCATransformer;
import org.apache.tuscany.sca.binding.sca.transform.XMLWFBindingSCATransformer;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.InvocationChain;
import org.apache.tuscany.sca.provider.SCABindingMapper;
@@ -36,8 +37,12 @@ public class XMLWFLocalSCAReferenceBindi
super(extensionPoints, endpointReference, mapper);
}
- protected BindingSCATransformer getBindingTransformer(Operation operation,
InvocationChain chain) {
- Operation wsdlBindingOperation =
interfaceContractMapper.map(wsdlBindingInterfaceContract.getInterface(),
operation);
+ protected BindingSCATransformer getBindingTransformer(Operation operation,
InvocationChain chain) {
+ InterfaceContract bindingInterfaceContract =
getWSDLBindingInterfaceContract();
+ if (!bindingInterfaceContract.getInterface().isRemotable()) {
+ throw new IllegalStateException("This method should only have been
called for a remotable interface.");
+ }
+ Operation wsdlBindingOperation =
interfaceContractMapper.map(bindingInterfaceContract.getInterface(),
operation);
return new XMLWFBindingSCATransformer(mediator, operation,
wsdlBindingOperation, chain);
}
}