From 31f71e8e078644469dd2ed93d5873fc1050062e4 Mon Sep 17 00:00:00 2001 From: slaws Date: Fri, 6 Jan 2012 12:35:01 +0000 Subject: TUSCANY-3932 - First part of this JIRA is to remove some inconsistencies in the way that callbacks are handled now. See JIRA for more comments on this first change. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1228150 13f79535-47bb-0310-9956-ffa450edef68 --- .../binding/sca/provider/DefaultSCABindingMapper.java | 19 ++++++++++++++++++- .../provider/DelegatingSCAServiceBindingProvider.java | 4 +++- 2 files changed, 21 insertions(+), 2 deletions(-) (limited to 'sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java') diff --git a/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DefaultSCABindingMapper.java b/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DefaultSCABindingMapper.java index 6f843ff2d6..b8a70f0ba1 100644 --- a/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DefaultSCABindingMapper.java +++ b/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DefaultSCABindingMapper.java @@ -29,9 +29,11 @@ import javax.xml.stream.XMLStreamReader; import org.apache.tuscany.sca.assembly.Base; import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.assembly.builder.BindingBuilder; import org.apache.tuscany.sca.assembly.builder.BuilderContext; import org.apache.tuscany.sca.assembly.builder.BuilderExtensionPoint; +import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.common.xml.stax.StAXHelper; import org.apache.tuscany.sca.contribution.processor.ContributionReadException; import org.apache.tuscany.sca.contribution.processor.ProcessorContext; @@ -61,6 +63,10 @@ public class DefaultSCABindingMapper implements SCABindingMapper { protected QName defaultMappedBinding; protected QName defaultLocalBinding; protected boolean alwaysDistributed; + + // Test to look at supporting concurrent binding.sca delegations + protected QName [] activeDelegations = {new QName(Base.SCA11_TUSCANY_NS, "binding.local"), + new QName(Base.SCA11_NS, "binding.ws")}; public DefaultSCABindingMapper(ExtensionPointRegistry registry, Map attributes) { this.registry = registry; @@ -196,7 +202,14 @@ public class DefaultSCABindingMapper implements SCABindingMapper { try { Binding binding = createDelegatingBinding(newBindingType); binding.setName(scaBinding.getName()); - binding.setURI(scaBinding.getURI()); + if (((SCABinding)scaBinding).getDelegateBindingURI() != null){ + // if this is an SCA binding that's been resolved via the registry then + // the URI of the target service is delegate specific and is stored + // in this new slot in the binding model + binding.setURI(((SCABinding)scaBinding).getDelegateBindingURI()); + } else { + binding.setURI(scaBinding.getURI()); + } binding.setOperationSelector(scaBinding.getOperationSelector()); binding.setRequestWireFormat(scaBinding.getRequestWireFormat()); binding.setResponseWireFormat(scaBinding.getResponseWireFormat()); @@ -285,5 +298,9 @@ public class DefaultSCABindingMapper implements SCABindingMapper { return defaultLocalBinding; } + + public QName[] getActiveDelegations(){ + return activeDelegations; + } } diff --git a/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java index bc57c47ba6..319661d7bb 100644 --- a/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java +++ b/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java @@ -19,6 +19,7 @@ package org.apache.tuscany.sca.binding.sca.provider; +import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.invocation.InvokerAsyncResponse; import org.apache.tuscany.sca.provider.EndpointAsyncProvider; @@ -94,7 +95,8 @@ public class DelegatingSCAServiceBindingProvider implements EndpointAsyncProvide } else { provider.start(); // Set the resolved binding URI back to the binding.sca - endpoint.getBinding().setURI(delegateEndpoint.getBinding().getURI()); + ((SCABinding)endpoint.getBinding()).setDelegateBindingType(delegateEndpoint.getBinding().getType().toString()); + ((SCABinding)endpoint.getBinding()).setDelegateBindingURI(delegateEndpoint.getBinding().getURI()); endpoint.setDeployedURI(delegateEndpoint.getDeployedURI()); started = true; } -- cgit v1.2.3