I've not look at this code yet but i do remember Simon saying he'd
changed the build phase so that it always generated wsdl for remote
endpoints now. So is it really possible to avoid wsdl gen overhead on
a remote endpoint invocation?

   ...ant

On Thu, Jul 28, 2011 at 7:27 AM, Raymond Feng <enjoyj...@gmail.com> wrote:
> Thanks for the quick fix. It works.
> ________________________________________________________________
> Raymond Feng
> rf...@apache.org
> Apache Tuscany PMC member and committer: tuscany.apache.org
> Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
> Personal Web Site: www.enjoyjava.com
> ________________________________________________________________
> On Jul 27, 2011, at 8:29 PM, Scott Kurz wrote:
>
> Hi Raymond,
>
> Good point.  I refactored a bit and now in r1151710, we only build the
> WSDL if we need it.    Haven't run all the itests yet but I think I
> got it right so committed it.
>
> Scott
>
> On Wed, Jul 27, 2011 at 10:20 PM, Raymond Feng <enjoyj...@gmail.com> wrote:
>
> Hi,
>
> I have some concerns about the WSDL generation for all remotable interfaces.
>
> It's pretty expensive to generate the WSDL from a Java interface. As more
>
> and more web APIs move toward REST/JSON these days, I'm not sure why we need
>
> to pay the penalty if we'll never use the WSDL SOAP WS.
>
> Can we make it optional (or maybe we should only do thing for binding.ws)?
>
> Thanks,
>
> Raymond
>
> ________________________________________________________________
>
> Raymond Feng
>
> rf...@apache.org
>
> Apache Tuscany PMC member and committer: tuscany.apache.org
>
> Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
>
> Personal Web Site: www.enjoyjava.com
>
> ________________________________________________________________
>
> On Jul 27, 2011, at 2:20 PM, scottk...@apache.org wrote:
>
> Author: scottkurz
>
> Date: Wed Jul 27 21:20:22 2011
>
> New Revision: 1151632
>
> URL: http://svn.apache.org/viewvc?rev=1151632&view=rev
>
> Log:
>
> TUSCANY-3894.  Refactor local sca binding so that the exact details of the
>
> data copy can be plugged in via the BindingProviderFactory extension point,
>
> while keeping a core, base portion of the binding to do things like
>
> calculate whether to do the pass-by-reference optimization and establish
>
> other aspects of the invoker/interceptor chain.   The data handling is
>
> factored into a BindingSCATransformer class.  The default impl will continue
>
> to use MediatorImpl.copyXXX methods, and will use Java-serialization first
>
> then XML/JAXB-serialization.   The second impl included uses XML
>
> serialization and calculates a WSDL interfaceContract.
>
> Added:
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
>
>      - copied, changed from r1151463,
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCAReferenceBindingProvider.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCABindingProviderFactory.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/BindingSCATransformer.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/DefaultBindingSCATransformer.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/XMLWFBindingSCATransformer.java
>
> Removed:
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCAReferenceBindingProvider.java
>
> Modified:
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/META-INF/MANIFEST.MF
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/pom.xml
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingInvoker.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingProviderFactory.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAReferenceBindingProvider.java
>
>    tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
>
> Modified:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/META-INF/MANIFEST.MF
>
> URL:
>
> http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/META-INF/MANIFEST.MF?rev=1151632&r1=1151631&r2=1151632&view=diff
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/META-INF/MANIFEST.MF
>
> (original)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/META-INF/MANIFEST.MF
>
> Wed Jul 27 21:20:22 2011
>
> @@ -19,9 +19,11 @@ Import-Package: javax.xml.namespace,
>
>  org.apache.tuscany.sca.core;version="2.0.0",
>
>  org.apache.tuscany.sca.core.invocation;version="2.0.0",
>
>  org.apache.tuscany.sca.databinding;version="2.0.0",
>
> + org.apache.tuscany.sca.databinding.xml;version="2.0.0",
>
>  org.apache.tuscany.sca.definitions;version="2.0.0",
>
>  org.apache.tuscany.sca.extensibility;version="2.0.0",
>
>  org.apache.tuscany.sca.interfacedef;version="2.0.0",
>
> + org.apache.tuscany.sca.interfacedef.wsdl;version="2.0.0",
>
>  org.apache.tuscany.sca.invocation;version="2.0.0",
>
>  org.apache.tuscany.sca.monitor;version="2.0.0";resolution:=optional,
>
>  org.apache.tuscany.sca.policy;version="2.0.0",
>
> Modified: tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/pom.xml
>
> URL:
>
> http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/pom.xml?rev=1151632&r1=1151631&r2=1151632&view=diff
>
> ==============================================================================
>
> --- tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/pom.xml
>
> (original)
>
> +++ tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/pom.xml Wed Jul
>
> 27 21:20:22 2011
>
> @@ -46,6 +46,13 @@
>
>         <dependency>
>
>             <groupId>org.apache.tuscany.sca</groupId>
>
> +            <artifactId>tuscany-binding-ws-wsdlgen</artifactId>
>
> +            <version>2.0-SNAPSHOT</version>
>
> +            <scope>runtime</scope>
>
> +        </dependency>
>
> +
>
> +        <dependency>
>
> +            <groupId>org.apache.tuscany.sca</groupId>
>
>             <artifactId>tuscany-core-spi</artifactId>
>
>             <version>2.0-SNAPSHOT</version>
>
>         </dependency>
>
> Copied:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
>
> (from r1151463,
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCAReferenceBindingProvider.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?p2=tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCAReferenceBindingProvider.java&r1=1151463&r2=1151632&rev=1151632&view=diff
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCAReferenceBindingProvider.java
>
> (original)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/DefaultLocalSCAReferenceBindingProvider.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -22,13 +22,18 @@ package org.apache.tuscany.sca.binding.l
>
> import org.apache.tuscany.sca.assembly.Endpoint;
>
> import org.apache.tuscany.sca.assembly.Reference;
>
> import org.apache.tuscany.sca.binding.local.LocalSCABindingInvoker;
>
> +import org.apache.tuscany.sca.binding.sca.transform.BindingSCATransformer;
>
> +import
>
> org.apache.tuscany.sca.binding.sca.transform.DefaultBindingSCATransformer;
>
> import org.apache.tuscany.sca.core.ExtensionPointRegistry;
>
> import org.apache.tuscany.sca.core.UtilityExtensionPoint;
>
> import org.apache.tuscany.sca.databinding.Mediator;
>
> +import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
>
> import org.apache.tuscany.sca.interfacedef.Compatibility;
>
> +import
>
> org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
>
> import org.apache.tuscany.sca.interfacedef.InterfaceContract;
>
> import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
>
> import org.apache.tuscany.sca.interfacedef.Operation;
>
> +import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
>
> import org.apache.tuscany.sca.invocation.InvocationChain;
>
> import org.apache.tuscany.sca.invocation.Invoker;
>
> import org.apache.tuscany.sca.provider.EndpointReferenceAsyncProvider;
>
> @@ -36,42 +41,85 @@ import org.apache.tuscany.sca.provider.S
>
> import org.apache.tuscany.sca.runtime.RuntimeComponentService;
>
> import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
>
> import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
>
> +import org.oasisopen.sca.ServiceRuntimeException;
>
> import org.oasisopen.sca.ServiceUnavailableException;
>
> -public class LocalSCAReferenceBindingProvider implements
>
> EndpointReferenceAsyncProvider {
>
> +public class DefaultLocalSCAReferenceBindingProvider implements
>
> EndpointReferenceAsyncProvider {
>
>     private RuntimeEndpointReference endpointReference;
>
> -    private InterfaceContractMapper interfaceContractMapper;
>
> -    private ExtensionPointRegistry extensionPoints;
>
> -    private Mediator mediator;
>
> +    protected InterfaceContractMapper interfaceContractMapper;
>
> +    protected ExtensionPointRegistry extensionPoints;
>
> +    protected Mediator mediator;
>
> +    protected InterfaceContract wsdlBindingInterfaceContract;
>
> -    public LocalSCAReferenceBindingProvider(ExtensionPointRegistry
>
> extensionPoints, RuntimeEndpointReference endpointReference,
>
> SCABindingMapper mapper) {
>
> +    public DefaultLocalSCAReferenceBindingProvider(ExtensionPointRegistry
>
> extensionPoints, RuntimeEndpointReference endpointReference,
>
> SCABindingMapper mapper) {
>
>         this.extensionPoints = extensionPoints;
>
>         UtilityExtensionPoint utilities =
>
> extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
>
> -        this.interfaceContractMapper =
>
> utilities.getUtility(InterfaceContractMapper.class);
>
> +        this.interfaceContractMapper =
>
> utilities.getUtility(InterfaceContractMapper.class);
>
>         this.mediator = utilities.getUtility(Mediator.class);
>
>         this.endpointReference = endpointReference;
>
>     }
>
> +
>
> +    protected String getDataBinding() {
>
> +        return DOMDataBinding.NAME;
>
> +    }
>
> +
>
> +    private InterfaceContract getWSDLInterfaceContract(InterfaceContract
>
> interfaceContract) {
>
> +        InterfaceContract wsdlInterfaceContract =
>
> (WSDLInterfaceContract)endpointReference.getGeneratedWSDLContract(interfaceContract);
>
> +
>
> +        // Validation may be unnecessary.  This check may already be
>
> guaranteed at this point, not sure.
>
> +        Endpoint target = endpointReference.getTargetEndpoint();
>
> +        InterfaceContract targetInterfaceContract =
>
> target.getComponentServiceInterfaceContract();
>
> +        try {
>
> +
>
>            interfaceContractMapper.checkCompatibility(wsdlInterfaceContract,
>
> targetInterfaceContract,
>
> +
>
>                                                       Compatibility.SUBSET,
>
> true, false);
>
> +        } catch (IncompatibleInterfaceContractException exc) {
>
> +            throw new ServiceRuntimeException(exc);
>
> +        }
>
> +
>
> +        String dataBinding = getDataBinding();
>
> +
>
> +        // Clone
>
> +        try {
>
> +            wsdlInterfaceContract =
>
> (WSDLInterfaceContract)wsdlInterfaceContract.clone();
>
> +        } catch (CloneNotSupportedException exc) {
>
> +            throw new ServiceRuntimeException(exc);
>
> +        }
>
> +
>
> +        if (wsdlInterfaceContract.getInterface() != null) {
>
> +
>
>            wsdlInterfaceContract.getInterface().resetDataBinding(dataBinding);
>
> +        }
>
> +        if (wsdlInterfaceContract.getCallbackInterface() != null) {
>
> +
>
>            wsdlInterfaceContract.getCallbackInterface().resetDataBinding(dataBinding);
>
> +        }
>
> +        return wsdlInterfaceContract;
>
> +
>
> +    }
>
>     @Override
>
>     public InterfaceContract getBindingInterfaceContract() {
>
> -        RuntimeEndpoint endpoint = (RuntimeEndpoint)
>
> endpointReference.getTargetEndpoint();
>
> -        if (endpoint != null) {
>
> -            return endpoint.getComponentTypeServiceInterfaceContract();
>
> -        } else {
>
> -            return
>
> endpointReference.getComponentTypeReferenceInterfaceContract();
>
> +        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;
>
>     }
>
> +
>
> +
>
>     @Override
>
>     public Invoker createInvoker(Operation operation) {
>
>         Invoker result = null;
>
> -
>
> +        BindingSCATransformer bindingTransformer = null;
>
> +
>
>         Endpoint target = endpointReference.getTargetEndpoint();
>
>         if (target != null) {
>
>             RuntimeComponentService service = (RuntimeComponentService)
>
> target.getService();
>
>             if (service != null) { // not a callback wire
>
> +
>
>                 InvocationChain chain = ((RuntimeEndpoint)
>
> target).getInvocationChain(operation);
>
>                 boolean passByValue = false;
>
> @@ -90,15 +138,19 @@ public class LocalSCAReferenceBindingPro
>
>                         passByValue = false;
>
>                     } else if
>
> (interfaceContractMapper.isCompatibleWithoutUnwrapByValue(operation,
>
> targetOp, Compatibility.SUBSET)) {
>
>                         passByValue = true;
>
> +                    } else {
>
> +                        throw new IllegalStateException();
>
>                     }
>
> +                    bindingTransformer = getBindingTransformer(operation,
>
> chain);
>
>                 }
>
> +
>
>                 // it turns out that the chain source and target operations
>
> are
>
>                 // the same, and are the operation
>
>                 // from the target, not sure if thats by design or a bug.
>
> The
>
>                 // SCA binding invoker needs to know
>
>                 // the source and target class loaders so pass in the real
>
>                 // source operation in the constructor
>
> -                result = chain == null ? null : new
>
> LocalSCABindingInvoker(chain, operation, mediator, passByValue,
>
> endpointReference, extensionPoints);
>
> +                result = chain == null ? null : new
>
> LocalSCABindingInvoker(chain, operation, passByValue, endpointReference,
>
> extensionPoints, bindingTransformer);
>
>             }
>
>         }
>
> @@ -109,6 +161,10 @@ public class LocalSCAReferenceBindingPro
>
>         return result;
>
>     }
>
> +
>
> +    protected BindingSCATransformer getBindingTransformer(Operation
>
> operation, InvocationChain chain) {
>
> +        return new DefaultBindingSCATransformer(mediator, operation,
>
> chain);
>
> +    }
>
>     @Override
>
>     public boolean supportsOneWayInvocation() {
>
> @@ -143,4 +199,6 @@ public class LocalSCAReferenceBindingPro
>
>     public void setEndpointReference(RuntimeEndpointReference
>
> endpointReference){
>
>         this.endpointReference = endpointReference;
>
>     }
>
> +
>
> +
>
> }
>
> Modified:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingInvoker.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/LocalSCABindingInvoker.java?rev=1151632&r1=1151631&r2=1151632&view=diff
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingInvoker.java
>
> (original)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingInvoker.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -19,6 +19,7 @@
>
> package org.apache.tuscany.sca.binding.local;
>
> +import org.apache.tuscany.sca.binding.sca.transform.BindingSCATransformer;
>
> import org.apache.tuscany.sca.core.ExtensionPointRegistry;
>
> import org.apache.tuscany.sca.core.FactoryExtensionPoint;
>
> import org.apache.tuscany.sca.core.invocation.AsyncResponseInvoker;
>
> @@ -41,28 +42,26 @@ import org.apache.tuscany.sca.runtime.Ru
>
>  */
>
> public class LocalSCABindingInvoker extends InterceptorAsyncImpl {
>
>     private InvocationChain chain;
>
> -    private Mediator mediator;
>
> -    private Operation sourceOperation;
>
> -    private Operation targetOperation;
>
>     private boolean passByValue;
>
>     private RuntimeEndpointReference epr;
>
>     private RuntimeEndpoint ep;
>
>     private ExtensionPointRegistry registry;
>
> +    private BindingSCATransformer bindingSCATransformer;
>
>     /**
>
>      * Construct a SCABindingInvoker that delegates to the service
>
> invocation chain
>
>      */
>
> -    public LocalSCABindingInvoker(InvocationChain chain, Operation
>
> sourceOperation, Mediator mediator,
>
> -     boolean passByValue, RuntimeEndpointReference epr,
>
> ExtensionPointRegistry registry) {
>
> +    public LocalSCABindingInvoker(InvocationChain chain, Operation
>
> sourceOperation,
>
> +                                  boolean passByValue,
>
> RuntimeEndpointReference epr, ExtensionPointRegistry registry,
>
> +                                  BindingSCATransformer
>
> bindingSCATransformer) {
>
>         super();
>
>         this.chain = chain;
>
> -        this.mediator = mediator;
>
> -        this.sourceOperation = sourceOperation;
>
> -        this.targetOperation = chain.getTargetOperation();
>
> +
>
>         this.passByValue = passByValue;
>
>         this.epr = epr;
>
>         this.ep = (RuntimeEndpoint)epr.getTargetEndpoint();
>
>         this.registry = registry;
>
> +        this.bindingSCATransformer = bindingSCATransformer;
>
>     }
>
>     /**
>
> @@ -78,35 +77,36 @@ public class LocalSCABindingInvoker exte
>
>     public void setNext(Invoker next) {
>
>         // NOOP
>
>     }
>
> -
>
> +
>
>     public Message processRequest(Message msg){
>
>         if (passByValue) {
>
> -            msg.setBody(mediator.copyInput(msg.getBody(), sourceOperation,
>
> targetOperation));
>
> +            Object transformedBody =
>
> bindingSCATransformer.transformInput(msg.getBody());
>
> +            msg.setBody(transformedBody);
>
>         } // end if
>
> -
>
> +
>
>         ep.getInvocationChains();
>
>         if ( !ep.getCallbackEndpointReferences().isEmpty() ) {
>
>             RuntimeEndpointReference asyncEPR = (RuntimeEndpointReference)
>
> ep.getCallbackEndpointReferences().get(0);
>
>             // Place a link to the callback EPR into the message headers...
>
>             msg.getHeaders().put("ASYNC_CALLBACK", asyncEPR );
>
>         } // end if
>
> -
>
> +
>
>         if( ep.isAsyncInvocation() ) {
>
>             // Get the message ID
>
>             String msgID = (String)msg.getHeaders().get("MESSAGE_ID");
>
> -
>
> +
>
>             String operationName = msg.getOperation().getName();
>
> -
>
> +
>
>             // Create a response invoker and add it to the message headers
>
>             AsyncResponseInvoker<RuntimeEndpointReference> respInvoker =
>
> -             new AsyncResponseInvoker<RuntimeEndpointReference>(ep, null,
>
> epr, msgID, operationName, getMessageFactory());
>
> +                new AsyncResponseInvoker<RuntimeEndpointReference>(ep,
>
> null, epr, msgID, operationName, getMessageFactory());
>
>             respInvoker.setBindingType("SCA_LOCAL");
>
>             msg.getHeaders().put("ASYNC_RESPONSE_INVOKER", respInvoker);
>
>         } // end if
>
> -
>
> +
>
>         return msg;
>
>     } // end method processRequest
>
> -
>
> +
>
>     /**
>
>      * Regular (sync) processing of response message
>
>      */
>
> @@ -114,54 +114,54 @@ public class LocalSCABindingInvoker exte
>
>         if (passByValue) {
>
>             // Note source and target operation swapped so result is in
>
> source class loader
>
>             if (msg.isFault()) {
>
> -                msg.setFaultBody(mediator.copyFault(msg.getBody(),
>
> sourceOperation, targetOperation));
>
> +                Object transformedFault =
>
> bindingSCATransformer.transformFault(msg.getBody());
>
> +                msg.setFaultBody(transformedFault);
>
>             } else {
>
> -                if (sourceOperation.getOutputType() != null) {
>
> -                    msg.setBody(mediator.copyOutput(msg.getBody(),
>
> sourceOperation, targetOperation));
>
> -                } // end if
>
> +                Object transformedOutput =
>
> bindingSCATransformer.transformOutput(msg.getBody());
>
> +                msg.setBody(transformedOutput);
>
>             } // end if
>
>         } // end if
>
> -
>
> +
>
>         return msg;
>
>     } // end method processResponse
>
> -
>
> +
>
>     public void invokeAsyncRequest(Message msg) throws Throwable {
>
> -     try{
>
> -        msg = processRequest(msg);
>
> -        InvokerAsyncRequest theNext = (InvokerAsyncRequest)getNext();
>
> -        if( theNext != null ) theNext.invokeAsyncRequest(msg);
>
> -        postProcessRequest(msg);
>
> -     } catch (Throwable e) {
>
> -     postProcessRequest(msg, e);
>
> -     } // end try
>
> +        try{
>
> +            msg = processRequest(msg);
>
> +            InvokerAsyncRequest theNext = (InvokerAsyncRequest)getNext();
>
> +            if( theNext != null ) theNext.invokeAsyncRequest(msg);
>
> +            postProcessRequest(msg);
>
> +        } catch (Throwable e) {
>
> +            postProcessRequest(msg, e);
>
> +        } // end try
>
>     } // end method invokeAsyncRequest
>
> -
>
> +
>
>     public void invokeAsyncResponse(Message msg) {
>
>         msg = processResponse(msg);
>
> -
>
> +
>
>         // Handle async response Relates_To message ID value
>
>         @SuppressWarnings("unchecked")
>
> - AsyncResponseInvoker<RuntimeEndpointReference> respInvoker =
>
> -
>
> (AsyncResponseInvoker<RuntimeEndpointReference>)msg.getHeaders().get("ASYNC_RESPONSE_INVOKER");
>
> +        AsyncResponseInvoker<RuntimeEndpointReference> respInvoker =
>
> +
>
>            (AsyncResponseInvoker<RuntimeEndpointReference>)msg.getHeaders().get("ASYNC_RESPONSE_INVOKER");
>
>         // TODO - this deals with the Local case only - not distributed
>
>         if( respInvoker != null &&
>
> "SCA_LOCAL".equals(respInvoker.getBindingType()) ) {
>
> -        RuntimeEndpointReference responseEPR =
>
> respInvoker.getResponseTargetAddress();
>
> -        msg.setFrom(responseEPR);
>
> -         String msgID = respInvoker.getRelatesToMsgID();
>
> -        msg.getHeaders().put("RELATES_TO", msgID);
>
> +            RuntimeEndpointReference responseEPR =
>
> respInvoker.getResponseTargetAddress();
>
> +            msg.setFrom(responseEPR);
>
> +            String msgID = respInvoker.getRelatesToMsgID();
>
> +            msg.getHeaders().put("RELATES_TO", msgID);
>
>         } // end if
>
> -
>
> +
>
>         InvokerAsyncResponse thePrevious =
>
> (InvokerAsyncResponse)getPrevious();
>
>         if (thePrevious != null ) thePrevious.invokeAsyncResponse(msg);
>
>     } // end method invokeAsyncResponse
>
> -
>
> +
>
>     public boolean isLocalSCABIndingInvoker() {
>
>         return true;
>
>     }
>
> -
>
> - private MessageFactory getMessageFactory() {
>
> - FactoryExtensionPoint modelFactories =
>
> registry.getExtensionPoint(FactoryExtensionPoint.class);
>
> - return modelFactories.getFactory(MessageFactory.class);
>
> - } // end method getMessageFactory
>
> +
>
> +    private MessageFactory getMessageFactory() {
>
> +        FactoryExtensionPoint modelFactories =
>
> registry.getExtensionPoint(FactoryExtensionPoint.class);
>
> +        return modelFactories.getFactory(MessageFactory.class);
>
> +    } // end method getMessageFactory
>
> }
>
> Modified:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingProviderFactory.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/LocalSCABindingProviderFactory.java?rev=1151632&r1=1151631&r2=1151632&view=diff
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingProviderFactory.java
>
> (original)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/LocalSCABindingProviderFactory.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -40,7 +40,7 @@ public class LocalSCABindingProviderFact
>
>     @Override
>
>     public ReferenceBindingProvider
>
> createReferenceBindingProvider(RuntimeEndpointReference endpointReference) {
>
> -        return new LocalSCAReferenceBindingProvider(extensionPoints,
>
> endpointReference, scaBindingMapper);
>
> +        return new DefaultLocalSCAReferenceBindingProvider(extensionPoints,
>
> endpointReference, scaBindingMapper);
>
>     }
>
>     @Override
>
> Added:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCABindingProviderFactory.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/XMLWFLocalSCABindingProviderFactory.java?rev=1151632&view=auto
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCABindingProviderFactory.java
>
> (added)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCABindingProviderFactory.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -0,0 +1,56 @@
>
> +/*
>
> + * Licensed to the Apache Software Foundation (ASF) under one
>
> + * or more contributor license agreements.  See the NOTICE file
>
> + * distributed with this work for additional information
>
> + * regarding copyright ownership.  The ASF licenses this file
>
> + * to you under the Apache License, Version 2.0 (the
>
> + * "License"); you may not use this file except in compliance
>
> + * with the License.  You may obtain a copy of the License at
>
> + *
>
> + *   http://www.apache.org/licenses/LICENSE-2.0
>
> + *
>
> + * Unless required by applicable law or agreed to in writing,
>
> + * software distributed under the License is distributed on an
>
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>
> + * KIND, either express or implied.  See the License for the
>
> + * specific language governing permissions and limitations
>
> + * under the License.
>
> + */
>
> +
>
> +package org.apache.tuscany.sca.binding.local;
>
> +
>
> +import org.apache.tuscany.sca.core.ExtensionPointRegistry;
>
> +import org.apache.tuscany.sca.core.UtilityExtensionPoint;
>
> +import org.apache.tuscany.sca.provider.BindingProviderFactory;
>
> +import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
>
> +import org.apache.tuscany.sca.provider.SCABindingMapper;
>
> +import org.apache.tuscany.sca.provider.ServiceBindingProvider;
>
> +import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
>
> +import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
>
> +
>
> +public class XMLWFLocalSCABindingProviderFactory implements
>
> BindingProviderFactory<LocalSCABinding> {
>
> +    private ExtensionPointRegistry extensionPoints;
>
> +    private SCABindingMapper scaBindingMapper;
>
> +
>
> +    public XMLWFLocalSCABindingProviderFactory(ExtensionPointRegistry
>
> extensionPoints) {
>
> +        this.extensionPoints = extensionPoints;
>
> +        UtilityExtensionPoint utilities =
>
> extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
>
> +        this.scaBindingMapper =
>
> utilities.getUtility(SCABindingMapper.class);
>
> +    }
>
> +
>
> +    @Override
>
> +    public ReferenceBindingProvider
>
> createReferenceBindingProvider(RuntimeEndpointReference endpointReference) {
>
> +        return new XMLWFLocalSCAReferenceBindingProvider(extensionPoints,
>
> endpointReference, scaBindingMapper);
>
> +    }
>
> +
>
> +    @Override
>
> +    public ServiceBindingProvider
>
> createServiceBindingProvider(RuntimeEndpoint endpoint) {
>
> +        return new LocalSCAServiceBindingProvider(endpoint,
>
> scaBindingMapper);
>
> +    }
>
> +
>
> +    @Override
>
> +    public Class<LocalSCABinding> getModelType() {
>
> +        return LocalSCABinding.class;
>
> +    }
>
> +
>
> +}
>
> Added:
>
> 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=1151632&view=auto
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
>
> (added)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/local/XMLWFLocalSCAReferenceBindingProvider.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -0,0 +1,43 @@
>
> +/*
>
> + * Licensed to the Apache Software Foundation (ASF) under one
>
> + * or more contributor license agreements.  See the NOTICE file
>
> + * distributed with this work for additional information
>
> + * regarding copyright ownership.  The ASF licenses this file
>
> + * to you under the Apache License, Version 2.0 (the
>
> + * "License"); you may not use this file except in compliance
>
> + * with the License.  You may obtain a copy of the License at
>
> + *
>
> + *   http://www.apache.org/licenses/LICENSE-2.0
>
> + *
>
> + * Unless required by applicable law or agreed to in writing,
>
> + * software distributed under the License is distributed on an
>
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>
> + * KIND, either express or implied.  See the License for the
>
> + * specific language governing permissions and limitations
>
> + * under the License.
>
> + */
>
> +
>
> +package org.apache.tuscany.sca.binding.local;
>
> +
>
> +import org.apache.tuscany.sca.binding.sca.transform.BindingSCATransformer;
>
> +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.Operation;
>
> +import org.apache.tuscany.sca.invocation.InvocationChain;
>
> +import org.apache.tuscany.sca.provider.SCABindingMapper;
>
> +import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
>
> +
>
> +public class XMLWFLocalSCAReferenceBindingProvider extends
>
> DefaultLocalSCAReferenceBindingProvider {
>
> +
>
> +    public XMLWFLocalSCAReferenceBindingProvider(ExtensionPointRegistry
>
> extensionPoints,
>
> +                                                 RuntimeEndpointReference
>
> endpointReference,
>
> +                                                 SCABindingMapper mapper) {
>
> +        super(extensionPoints, endpointReference, mapper);
>
> +    }
>
> +
>
> +    protected BindingSCATransformer getBindingTransformer(Operation
>
> operation, InvocationChain chain) {
>
> +        Operation wsdlBindingOperation =
>
> interfaceContractMapper.map(wsdlBindingInterfaceContract.getInterface(),
>
> operation);
>
> +        return new XMLWFBindingSCATransformer(mediator, operation,
>
> wsdlBindingOperation, chain);
>
> +    }
>
> +}
>
> Modified:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAReferenceBindingProvider.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/sca/provider/DelegatingSCAReferenceBindingProvider.java?rev=1151632&r1=1151631&r2=1151632&view=diff
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAReferenceBindingProvider.java
>
> (original)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAReferenceBindingProvider.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -20,7 +20,7 @@
>
> package org.apache.tuscany.sca.binding.sca.provider;
>
> import org.apache.tuscany.sca.assembly.SCABinding;
>
> -import
>
> org.apache.tuscany.sca.binding.local.LocalSCAReferenceBindingProvider;
>
> +import
>
> org.apache.tuscany.sca.binding.local.DefaultLocalSCAReferenceBindingProvider;
>
> import org.apache.tuscany.sca.interfacedef.InterfaceContract;
>
> import org.apache.tuscany.sca.interfacedef.Operation;
>
> import org.apache.tuscany.sca.invocation.Invoker;
>
> @@ -47,8 +47,8 @@ public class DelegatingSCAReferenceBindi
>
>             // reset the EPR to binding.sca EPR because the local
>
> optimization assumes
>
>             // this to be the case.
>
> -            if (provider instanceof LocalSCAReferenceBindingProvider){
>
> -
>
>                ((LocalSCAReferenceBindingProvider)provider).setEndpointReference(endpointReference);
>
> +            if (provider instanceof
>
> DefaultLocalSCAReferenceBindingProvider){
>
> +
>
>                ((DefaultLocalSCAReferenceBindingProvider)provider).setEndpointReference(endpointReference);
>
>             }
>
>         }
>
>     }
>
> Added:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/BindingSCATransformer.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/sca/transform/BindingSCATransformer.java?rev=1151632&view=auto
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/BindingSCATransformer.java
>
> (added)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/BindingSCATransformer.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -0,0 +1,26 @@
>
> +/*
>
> + * Licensed to the Apache Software Foundation (ASF) under one
>
> + * or more contributor license agreements.  See the NOTICE file
>
> + * distributed with this work for additional information
>
> + * regarding copyright ownership.  The ASF licenses this file
>
> + * to you under the Apache License, Version 2.0 (the
>
> + * "License"); you may not use this file except in compliance
>
> + * with the License.  You may obtain a copy of the License at
>
> + *
>
> + *   http://www.apache.org/licenses/LICENSE-2.0
>
> + *
>
> + * Unless required by applicable law or agreed to in writing,
>
> + * software distributed under the License is distributed on an
>
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>
> + * KIND, either express or implied.  See the License for the
>
> + * specific language governing permissions and limitations
>
> + * under the License.
>
> + */
>
> +
>
> +package org.apache.tuscany.sca.binding.sca.transform;
>
> +
>
> +public interface BindingSCATransformer {
>
> +    Object transformInput(Object body);
>
> +    Object transformOutput(Object body);
>
> +    Object transformFault(Object body);
>
> +}
>
> Added:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/DefaultBindingSCATransformer.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/sca/transform/DefaultBindingSCATransformer.java?rev=1151632&view=auto
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/DefaultBindingSCATransformer.java
>
> (added)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/DefaultBindingSCATransformer.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -0,0 +1,54 @@
>
> +/*
>
> + * Licensed to the Apache Software Foundation (ASF) under one
>
> + * or more contributor license agreements.  See the NOTICE file
>
> + * distributed with this work for additional information
>
> + * regarding copyright ownership.  The ASF licenses this file
>
> + * to you under the Apache License, Version 2.0 (the
>
> + * "License"); you may not use this file except in compliance
>
> + * with the License.  You may obtain a copy of the License at
>
> + *
>
> + *   http://www.apache.org/licenses/LICENSE-2.0
>
> + *
>
> + * Unless required by applicable law or agreed to in writing,
>
> + * software distributed under the License is distributed on an
>
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>
> + * KIND, either express or implied.  See the License for the
>
> + * specific language governing permissions and limitations
>
> + * under the License.
>
> + */
>
> +
>
> +package org.apache.tuscany.sca.binding.sca.transform;
>
> +
>
> +import org.apache.tuscany.sca.databinding.Mediator;
>
> +import org.apache.tuscany.sca.interfacedef.Operation;
>
> +import org.apache.tuscany.sca.invocation.InvocationChain;
>
> +
>
> +public class DefaultBindingSCATransformer implements BindingSCATransformer
>
> {
>
> +
>
> +    private Mediator mediator;
>
> +    private Operation sourceOperation;
>
> +    private Operation targetOperation;
>
> +
>
> +    public DefaultBindingSCATransformer(Mediator mediator, Operation
>
> sourceOperation, InvocationChain chain) {
>
> +        this.mediator = mediator;
>
> +        this.sourceOperation = sourceOperation;
>
> +        this.targetOperation = chain.getTargetOperation();
>
> +    }
>
> +
>
> +    @Override
>
> +    public Object transformInput(Object body) {
>
> +        return mediator.copyInput(body, sourceOperation, targetOperation);
>
> +    }
>
> +
>
> +    @Override
>
> +    public Object transformOutput(Object body) {
>
> +        return mediator.copyOutput(body, sourceOperation, targetOperation);
>
> +    }
>
> +
>
> +    @Override
>
> +    public Object transformFault(Object body) {
>
> +        return mediator.copyFault(body, sourceOperation, targetOperation);
>
> +    }
>
> +
>
> +}
>
> +
>
> Added:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/XMLWFBindingSCATransformer.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/sca/transform/XMLWFBindingSCATransformer.java?rev=1151632&view=auto
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/XMLWFBindingSCATransformer.java
>
> (added)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/transform/XMLWFBindingSCATransformer.java
>
> Wed Jul 27 21:20:22 2011
>
> @@ -0,0 +1,74 @@
>
> +/*
>
> + * Licensed to the Apache Software Foundation (ASF) under one
>
> + * or more contributor license agreements.  See the NOTICE file
>
> + * distributed with this work for additional information
>
> + * regarding copyright ownership.  The ASF licenses this file
>
> + * to you under the Apache License, Version 2.0 (the
>
> + * "License"); you may not use this file except in compliance
>
> + * with the License.  You may obtain a copy of the License at
>
> + *
>
> + *   http://www.apache.org/licenses/LICENSE-2.0
>
> + *
>
> + * Unless required by applicable law or agreed to in writing,
>
> + * software distributed under the License is distributed on an
>
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>
> + * KIND, either express or implied.  See the License for the
>
> + * specific language governing permissions and limitations
>
> + * under the License.
>
> + */
>
> +
>
> +package org.apache.tuscany.sca.binding.sca.transform;
>
> +
>
> +import java.util.HashMap;
>
> +import java.util.Map;
>
> +
>
> +import org.apache.tuscany.sca.databinding.Mediator;
>
> +import org.apache.tuscany.sca.interfacedef.Operation;
>
> +import org.apache.tuscany.sca.invocation.InvocationChain;
>
> +
>
> +public class XMLWFBindingSCATransformer implements BindingSCATransformer {
>
> +
>
> +    private Mediator mediator;
>
> +    private Operation sourceOperation;
>
> +    private Operation wsdlBindingOperation;
>
> +    private Operation targetOperation;
>
> +
>
> +    public XMLWFBindingSCATransformer(Mediator mediator, Operation
>
> sourceOperation, Operation wsdlBindingOperation, InvocationChain chain) {
>
> +        this.mediator = mediator;
>
> +        this.sourceOperation = sourceOperation;
>
> +        this.wsdlBindingOperation = wsdlBindingOperation;
>
> +        this.targetOperation = chain.getTargetOperation();
>
> +    }
>
> +
>
> +    @Override
>
> +    public Object transformInput(Object body) {
>
> +        Map<String, Object> map1 = new HashMap<String, Object>();
>
> +        Object intermediate = mediator.mediateInput(body, sourceOperation,
>
> wsdlBindingOperation, map1);
>
> +        Map<String, Object> map2 = new HashMap<String, Object>();
>
> +        Object result  = mediator.mediateInput(intermediate,
>
> wsdlBindingOperation, targetOperation, map2);
>
> +        return result;
>
> +    }
>
> +
>
> +    @Override
>
> +    public Object transformOutput(Object body) {
>
> +        Map<String, Object> map1 = new HashMap<String, Object>();
>
> +        Object intermediate  = mediator.mediateOutput(body,
>
> wsdlBindingOperation, targetOperation, map1);
>
> +        Map<String, Object> map2 = new HashMap<String, Object>();
>
> +        Object result = mediator.mediateOutput(intermediate,
>
> sourceOperation, wsdlBindingOperation, map2);
>
> +
>
> +        return result;
>
> +
>
> +    }
>
> +
>
> +    @Override
>
> +    public Object transformFault(Object body) {
>
> +        Map<String, Object> map1 = new HashMap<String, Object>();
>
> +        Object intermediate = mediator.mediateFault(body,
>
> wsdlBindingOperation, targetOperation, map1);
>
> +        Map<String, Object> map2 = new HashMap<String, Object>();
>
> +        Object result  = mediator.mediateFault(intermediate,
>
> sourceOperation, wsdlBindingOperation, map2);
>
> +        return result;
>
> +
>
> +    }
>
> +
>
> +}
>
> +
>
> Modified:
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
>
> URL:
>
> http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory?rev=1151632&r1=1151631&r2=1151632&view=diff
>
> ==============================================================================
>
> ---
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
>
> (original)
>
> +++
>
> tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
>
> Wed Jul 27 21:20:22 2011
>
> @@ -17,4 +17,5 @@
>
> # Implementation class for the binding extension
>
> org.apache.tuscany.sca.binding.sca.provider.RuntimeSCABindingProviderFactory;model=org.apache.tuscany.sca.assembly.SCABinding
>
> +#org.apache.tuscany.sca.binding.local.XMLWFLocalSCABindingProviderFactory;model=org.apache.tuscany.sca.binding.local.LocalSCABinding
>
> org.apache.tuscany.sca.binding.local.LocalSCABindingProviderFactory;model=org.apache.tuscany.sca.binding.local.LocalSCABinding
>
>
>
>
>
>

Reply via email to