You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/04/13 19:49:16 UTC
svn commit: r528566 - in /incubator/tuscany/java/sca:
modules/core/src/main/java/org/apache/tuscany/core/deployer/
modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/
modules/interface/src/main/java/org/apa...
Author: rfeng
Date: Fri Apr 13 10:49:14 2007
New Revision: 528566
URL: http://svn.apache.org/viewvc?view=rev&rev=528566
Log:
Add the logic to deal with promoted component reference and bring up the echo-binding sample
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java
incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java
incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java
incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Fri Apr 13 10:49:14 2007
@@ -191,44 +191,74 @@
for (ComponentReference ref : definition.getReferences()) {
List<Wire> wires = new ArrayList<Wire>();
String refName = ref.getName();
- org.apache.tuscany.assembly.Reference refDefinition = getReference(definition.getImplementation(), refName);
+ org.apache.tuscany.assembly.Reference refDefinition = ref.getReference();
assert refDefinition != null;
- List<ComponentService> services = ref.getTargets();
- for (ComponentService service : services) {
- org.apache.tuscany.assembly.Component targetCompoent = service.getBinding(SCABinding.class)
- .getComponent();
- Component target = (Component)getSCAObject(models, targetCompoent);
- URI targetUri = URI.create(target.getUri() + "#" + service.getName());
- if (target == null && (refDefinition.getMultiplicity() == Multiplicity.ZERO_ONE || refDefinition
- .getMultiplicity() == Multiplicity.ZERO_N)) {
- // a non-required reference, just skip
- continue;
+ List<CompositeReference> promoted = ref.promotedAs();
+ if (!promoted.isEmpty()) {
+ // TODO: Assume a component reference can only be promoted by at
+ // most one composite reference
+ CompositeReference compositeReference = promoted.get(0);
+ Reference target = (Reference)getSCAObject(models, compositeReference);
+ // FIXME: Assume we only have one binding
+ ReferenceBinding binding = target.getReferenceBindings().get(0);
+ URI targetUri = binding.getTargetUri();
+ InterfaceContract contract = binding.getBindingInterfaceContract();
+ if (contract == null) {
+ contract = refDefinition.getInterfaceContract();
}
- if (target == null) {
- throw new ComponentNotFoundException("Target not found", targetUri);
- }
- URI sourceURI = URI.create(source.getUri() + "#" + refName);
+ QName type = binding.getBindingType();
+ URI sourceUri = URI.create(source.getUri() + "#" + refName);
Wire wire;
try {
- wire = createWire(sourceURI, targetUri, refDefinition.getInterfaceContract(), service.getService()
- .getInterfaceContract(), Wire.LOCAL_BINDING);
+ wire = createWire(sourceUri, targetUri, refDefinition.getInterfaceContract(), contract, type);
} catch (IncompatibleInterfaceContractException e1) {
- throw new IncompatibleInterfacesException(sourceURI, targetUri, e1);
+ throw new IllegalStateException(e1);
}
+ binding.setWire(wire);
try {
- attachInvokers(refName, wire, source, target);
+ attachInvokers(targetUri.getFragment(), wire, binding, binding);
} catch (TargetInvokerCreationException e) {
- throw new WireCreationException("Error creating invoker", sourceURI, targetUri, e);
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
}
+ wires.add(wire);
+ } else {
+ List<ComponentService> services = ref.getTargets();
+ for (ComponentService service : services) {
+ org.apache.tuscany.assembly.Component targetCompoent = service.getBinding(SCABinding.class)
+ .getComponent();
+ Component target = (Component)getSCAObject(models, targetCompoent);
+ URI targetUri = URI.create(target.getUri() + "#" + service.getName());
+ if (target == null && (refDefinition.getMultiplicity() == Multiplicity.ZERO_ONE || refDefinition
+ .getMultiplicity() == Multiplicity.ZERO_N)) {
+ // a non-required reference, just skip
+ continue;
+ }
+ if (target == null) {
+ throw new ComponentNotFoundException("Target not found", targetUri);
+ }
+ URI sourceURI = URI.create(source.getUri() + "#" + refName);
+ Wire wire;
+ try {
+ wire = createWire(sourceURI, targetUri, refDefinition.getInterfaceContract(), service
+ .getService().getInterfaceContract(), Wire.LOCAL_BINDING);
+ } catch (IncompatibleInterfaceContractException e1) {
+ throw new IncompatibleInterfacesException(sourceURI, targetUri, e1);
+ }
+ try {
+ attachInvokers(refName, wire, source, target);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceURI, targetUri, e);
+ }
- if (postProcessorRegistry != null) {
- postProcessorRegistry.process(wire);
- }
+ if (postProcessorRegistry != null) {
+ postProcessorRegistry.process(wire);
+ }
- optimize(source, target, wire);
- wires.add(wire);
- if (!wire.getCallbackInvocationChains().isEmpty()) {
- target.attachCallbackWire(wire);
+ optimize(source, target, wire);
+ wires.add(wire);
+ if (!wire.getCallbackInvocationChains().isEmpty()) {
+ target.attachCallbackWire(wire);
+ }
}
}
if (wires.size() > 1) {
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java Fri Apr 13 10:49:14 2007
@@ -198,14 +198,18 @@
}
JavaElement element = entry.getValue();
ObjectFactory<?> factory = new CallbackWireObjectFactory(element.getType(), proxyService, wires);
- configuration.getInjectionSites().add(element);
+ if (!(element.getAnchor() instanceof Constructor)) {
+ configuration.getInjectionSites().add(element);
+ }
configuration.setObjectFactory(element, factory);
}
}
for (Reference ref : configuration.getDefinition().getReferences()) {
JavaElement element = configuration.getDefinition().getReferenceMembers().get(ref.getName());
if (element != null) {
- configuration.getInjectionSites().add(element);
+ if (!(element.getAnchor() instanceof Constructor)) {
+ configuration.getInjectionSites().add(element);
+ }
List<Wire> wireList = wires.get(ref.getName());
if (ref.getMultiplicity() == Multiplicity.ONE_N || ref.getMultiplicity() == Multiplicity.ZERO_N) {
List<ObjectFactory<?>> factories = new ArrayList<ObjectFactory<?>>();
@@ -380,7 +384,6 @@
return null;
}
-
protected abstract <B> ObjectFactory<B> createWireFactory(Class<B> interfaze, Wire wire);
/**
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java Fri Apr 13 10:49:14 2007
@@ -21,6 +21,7 @@
import java.lang.annotation.ElementType;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
+import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.net.URI;
import java.util.ArrayList;
@@ -161,10 +162,13 @@
Object obj = factories.get(element);
if (obj instanceof ObjectFactory) {
ObjectFactory<?> factory = (ObjectFactory<?>)obj;
+ Member member = (Member)element.getAnchor();
if (element.getElementType() == ElementType.FIELD) {
- injectors[i++] = new FieldInjector<T>((Field)element.getAnchor(), factory);
- } else if (element.getElementType() == ElementType.PARAMETER && element.getAnchor() instanceof Method) {
- injectors[i++] = new MethodInjector<T>((Method)element.getAnchor(), factory);
+ injectors[i++] = new FieldInjector<T>((Field)member, factory);
+ } else if (element.getElementType() == ElementType.PARAMETER && member instanceof Method) {
+ injectors[i++] = new MethodInjector<T>((Method)member, factory);
+ } else if (member instanceof Constructor) {
+ // Ignore
} else {
throw new AssertionError(String.valueOf(element));
}
Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java Fri Apr 13 10:49:14 2007
@@ -149,4 +149,16 @@
* @param wrapperStyle the wrapperStyle to set
*/
void setWrapperStyle(boolean wrapperStyle);
+
+ /**
+ * Get the databinding for the operation
+ * @return
+ */
+ String getDataBinding();
+
+ /**
+ * Set the databinding for the operation
+ * @param dataBinding
+ */
+ void setDataBinding(String dataBinding);
}
Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java Fri Apr 13 10:49:14 2007
@@ -43,6 +43,7 @@
private boolean nonBlocking;
private boolean wrapperStyle;
private WrapperInfo wrapper;
+ private String dataBinding;
/**
* @param name
@@ -270,6 +271,14 @@
*/
public void setWrapperStyle(boolean wrapperStyle) {
this.wrapperStyle = wrapperStyle;
+ }
+
+ public String getDataBinding() {
+ return dataBinding;
+ }
+
+ public void setDataBinding(String dataBinding) {
+ this.dataBinding = dataBinding;
}
}
Modified: incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java (original)
+++ incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java Fri Apr 13 10:49:14 2007
@@ -36,15 +36,15 @@
public ServiceBinding build(CompositeService serviceDefinition,
EchoBinding bindingDefinition,
DeploymentContext context) throws BuilderException {
- return new EchoService(URI.create("#" + serviceDefinition.getName()));
+ return new EchoService(URI.create(context.getComponentId() + "#" + serviceDefinition.getName()));
}
@Override
public ReferenceBinding build(CompositeReference referenceDefinition,
EchoBinding bindingDefinition,
DeploymentContext context) throws BuilderException {
- URI targetURI = bindingDefinition.getURI() != null? URI.create(bindingDefinition.getURI()) : null;
- return new EchoReference(URI.create("#" + referenceDefinition.getName()), targetURI);
+ URI targetURI = bindingDefinition.getURI() != null ? URI.create(bindingDefinition.getURI()) : null;
+ return new EchoReference(URI.create(context.getComponentId() + "#" + referenceDefinition.getName()), targetURI);
}
@Override
Modified: incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java (original)
+++ incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java Fri Apr 13 10:49:14 2007
@@ -22,8 +22,6 @@
import javax.xml.namespace.QName;
-import org.apache.tuscany.core.binding.local.LocalCallbackTargetInvoker;
-import org.apache.tuscany.core.binding.local.LocalTargetInvoker;
import org.apache.tuscany.interfacedef.Operation;
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
Modified: incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java (original)
+++ incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java Fri Apr 13 10:49:14 2007
@@ -33,7 +33,7 @@
protected void setUp() throws Exception {
SCARuntime.start("EchoBinding.composite");
- ComponentContext context = SCARuntime.getComponentContext("ClientComponent");
+ ComponentContext context = SCARuntime.getComponentContext("Client");
ServiceReference<Client> service = context.createSelfReference(Client.class);
client = service.getService();
}
Modified: incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite?view=diff&rev=528566&r1=528565&r2=528566
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite (original)
+++ incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite Fri Apr 13 10:49:14 2007
@@ -24,7 +24,7 @@
<service name="ClientService" promote="Client">
<interface.java interface="org.apache.tuscany.binding.echo.Client"/>
- <binding.echo/>
+ <binding.echo uri="echo://tmp" />
</service>
<component name="Client">
@@ -33,7 +33,7 @@
<reference name="EchoReference" promote="Client/echoReference">
<interface.java interface="org.apache.tuscany.binding.echo.Echo"/>
- <binding.echo/>
+ <binding.echo uri="echo://tmp" />
</reference>
</composite>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org
Re: svn commit: r528566 - in /incubator/tuscany/java/sca: modules/core/src/main/java/org/apache/tuscany/core/deployer/ modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/ modules/interface/src/main/java/org/apa
Posted by Raymond Feng <en...@gmail.com>.
Hi,
With this check-in, the echo binding reference sample is working again. You
can start to try other samples.
Thanks,
Raymond
----- Original Message -----
From: <rf...@apache.org>
To: <tu...@ws.apache.org>
Sent: Friday, April 13, 2007 10:49 AM
Subject: svn commit: r528566 - in /incubator/tuscany/java/sca:
modules/core/src/main/java/org/apache/tuscany/core/deployer/
modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/
modules/interface/src/main/java/org/apa...
> Author: rfeng
> Date: Fri Apr 13 10:49:14 2007
> New Revision: 528566
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=528566
> Log:
> Add the logic to deal with promoted component reference and bring up the
> echo-binding sample
>
> Modified:
>
> incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
>
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
>
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java
>
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
>
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
>
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java
>
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java
>
> incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java
>
> incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite
>
> Modified:
> incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
> (original)
> +++
> incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
> Fri Apr 13 10:49:14 2007
> @@ -191,44 +191,74 @@
> for (ComponentReference ref : definition.getReferences()) {
> List<Wire> wires = new ArrayList<Wire>();
> String refName = ref.getName();
> - org.apache.tuscany.assembly.Reference refDefinition =
> getReference(definition.getImplementation(), refName);
> + org.apache.tuscany.assembly.Reference refDefinition =
> ref.getReference();
> assert refDefinition != null;
> - List<ComponentService> services = ref.getTargets();
> - for (ComponentService service : services) {
> - org.apache.tuscany.assembly.Component targetCompoent =
> service.getBinding(SCABinding.class)
> - .getComponent();
> - Component target = (Component)getSCAObject(models,
> targetCompoent);
> - URI targetUri = URI.create(target.getUri() + "#" +
> service.getName());
> - if (target == null && (refDefinition.getMultiplicity() ==
> Multiplicity.ZERO_ONE || refDefinition
> - .getMultiplicity() == Multiplicity.ZERO_N)) {
> - // a non-required reference, just skip
> - continue;
> + List<CompositeReference> promoted = ref.promotedAs();
> + if (!promoted.isEmpty()) {
> + // TODO: Assume a component reference can only be
> promoted by at
> + // most one composite reference
> + CompositeReference compositeReference = promoted.get(0);
> + Reference target = (Reference)getSCAObject(models,
> compositeReference);
> + // FIXME: Assume we only have one binding
> + ReferenceBinding binding =
> target.getReferenceBindings().get(0);
> + URI targetUri = binding.getTargetUri();
> + InterfaceContract contract =
> binding.getBindingInterfaceContract();
> + if (contract == null) {
> + contract = refDefinition.getInterfaceContract();
> }
> - if (target == null) {
> - throw new ComponentNotFoundException("Target not
> found", targetUri);
> - }
> - URI sourceURI = URI.create(source.getUri() + "#" +
> refName);
> + QName type = binding.getBindingType();
> + URI sourceUri = URI.create(source.getUri() + "#" +
> refName);
> Wire wire;
> try {
> - wire = createWire(sourceURI, targetUri,
> refDefinition.getInterfaceContract(), service.getService()
> - .getInterfaceContract(), Wire.LOCAL_BINDING);
> + wire = createWire(sourceUri, targetUri,
> refDefinition.getInterfaceContract(), contract, type);
> } catch (IncompatibleInterfaceContractException e1) {
> - throw new IncompatibleInterfacesException(sourceURI,
> targetUri, e1);
> + throw new IllegalStateException(e1);
> }
> + binding.setWire(wire);
> try {
> - attachInvokers(refName, wire, source, target);
> + attachInvokers(targetUri.getFragment(), wire,
> binding, binding);
> } catch (TargetInvokerCreationException e) {
> - throw new WireCreationException("Error creating
> invoker", sourceURI, targetUri, e);
> + throw new WireCreationException("Error creating
> invoker", sourceUri, targetUri, e);
> }
> + wires.add(wire);
> + } else {
> + List<ComponentService> services = ref.getTargets();
> + for (ComponentService service : services) {
> + org.apache.tuscany.assembly.Component targetCompoent
> = service.getBinding(SCABinding.class)
> + .getComponent();
> + Component target = (Component)getSCAObject(models,
> targetCompoent);
> + URI targetUri = URI.create(target.getUri() + "#" +
> service.getName());
> + if (target == null &&
> (refDefinition.getMultiplicity() == Multiplicity.ZERO_ONE || refDefinition
> + .getMultiplicity() == Multiplicity.ZERO_N)) {
> + // a non-required reference, just skip
> + continue;
> + }
> + if (target == null) {
> + throw new ComponentNotFoundException("Target not
> found", targetUri);
> + }
> + URI sourceURI = URI.create(source.getUri() + "#" +
> refName);
> + Wire wire;
> + try {
> + wire = createWire(sourceURI, targetUri,
> refDefinition.getInterfaceContract(), service
> + .getService().getInterfaceContract(),
> Wire.LOCAL_BINDING);
> + } catch (IncompatibleInterfaceContractException e1) {
> + throw new
> IncompatibleInterfacesException(sourceURI, targetUri, e1);
> + }
> + try {
> + attachInvokers(refName, wire, source, target);
> + } catch (TargetInvokerCreationException e) {
> + throw new WireCreationException("Error creating
> invoker", sourceURI, targetUri, e);
> + }
>
> - if (postProcessorRegistry != null) {
> - postProcessorRegistry.process(wire);
> - }
> + if (postProcessorRegistry != null) {
> + postProcessorRegistry.process(wire);
> + }
>
> - optimize(source, target, wire);
> - wires.add(wire);
> - if (!wire.getCallbackInvocationChains().isEmpty()) {
> - target.attachCallbackWire(wire);
> + optimize(source, target, wire);
> + wires.add(wire);
> + if (!wire.getCallbackInvocationChains().isEmpty()) {
> + target.attachCallbackWire(wire);
> + }
> }
> }
> if (wires.size() > 1) {
>
> Modified:
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
> (original)
> +++
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
> Fri Apr 13 10:49:14 2007
> @@ -198,14 +198,18 @@
> }
> JavaElement element = entry.getValue();
> ObjectFactory<?> factory = new
> CallbackWireObjectFactory(element.getType(), proxyService, wires);
> - configuration.getInjectionSites().add(element);
> + if (!(element.getAnchor() instanceof Constructor)) {
> + configuration.getInjectionSites().add(element);
> + }
> configuration.setObjectFactory(element, factory);
> }
> }
> for (Reference ref :
> configuration.getDefinition().getReferences()) {
> JavaElement element =
> configuration.getDefinition().getReferenceMembers().get(ref.getName());
> if (element != null) {
> - configuration.getInjectionSites().add(element);
> + if (!(element.getAnchor() instanceof Constructor)) {
> + configuration.getInjectionSites().add(element);
> + }
> List<Wire> wireList = wires.get(ref.getName());
> if (ref.getMultiplicity() == Multiplicity.ONE_N ||
> ref.getMultiplicity() == Multiplicity.ZERO_N) {
> List<ObjectFactory<?>> factories = new
> ArrayList<ObjectFactory<?>>();
> @@ -380,7 +384,6 @@
> return null;
> }
>
> -
> protected abstract <B> ObjectFactory<B> createWireFactory(Class<B>
> interfaze, Wire wire);
>
> /**
>
> Modified:
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java
> (original)
> +++
> incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoConfiguration.java
> Fri Apr 13 10:49:14 2007
> @@ -21,6 +21,7 @@
> import java.lang.annotation.ElementType;
> import java.lang.reflect.Constructor;
> import java.lang.reflect.Field;
> +import java.lang.reflect.Member;
> import java.lang.reflect.Method;
> import java.net.URI;
> import java.util.ArrayList;
> @@ -161,10 +162,13 @@
> Object obj = factories.get(element);
> if (obj instanceof ObjectFactory) {
> ObjectFactory<?> factory = (ObjectFactory<?>)obj;
> + Member member = (Member)element.getAnchor();
> if (element.getElementType() == ElementType.FIELD) {
> - injectors[i++] = new
> FieldInjector<T>((Field)element.getAnchor(), factory);
> - } else if (element.getElementType() ==
> ElementType.PARAMETER && element.getAnchor() instanceof Method) {
> - injectors[i++] = new
> MethodInjector<T>((Method)element.getAnchor(), factory);
> + injectors[i++] = new FieldInjector<T>((Field)member,
> factory);
> + } else if (element.getElementType() ==
> ElementType.PARAMETER && member instanceof Method) {
> + injectors[i++] = new
> MethodInjector<T>((Method)member, factory);
> + } else if (member instanceof Constructor) {
> + // Ignore
> } else {
> throw new AssertionError(String.valueOf(element));
> }
>
> Modified:
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
> (original)
> +++
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Operation.java
> Fri Apr 13 10:49:14 2007
> @@ -149,4 +149,16 @@
> * @param wrapperStyle the wrapperStyle to set
> */
> void setWrapperStyle(boolean wrapperStyle);
> +
> + /**
> + * Get the databinding for the operation
> + * @return
> + */
> + String getDataBinding();
> +
> + /**
> + * Set the databinding for the operation
> + * @param dataBinding
> + */
> + void setDataBinding(String dataBinding);
> }
>
> Modified:
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
> (original)
> +++
> incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/OperationImpl.java
> Fri Apr 13 10:49:14 2007
> @@ -43,6 +43,7 @@
> private boolean nonBlocking;
> private boolean wrapperStyle;
> private WrapperInfo wrapper;
> + private String dataBinding;
>
> /**
> * @param name
> @@ -270,6 +271,14 @@
> */
> public void setWrapperStyle(boolean wrapperStyle) {
> this.wrapperStyle = wrapperStyle;
> + }
> +
> + public String getDataBinding() {
> + return dataBinding;
> + }
> +
> + public void setDataBinding(String dataBinding) {
> + this.dataBinding = dataBinding;
> }
>
> }
>
> Modified:
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java
> (original)
> +++
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoBuilder.java
> Fri Apr 13 10:49:14 2007
> @@ -36,15 +36,15 @@
> public ServiceBinding build(CompositeService serviceDefinition,
> EchoBinding bindingDefinition,
> DeploymentContext context) throws
> BuilderException {
> - return new EchoService(URI.create("#" +
> serviceDefinition.getName()));
> + return new EchoService(URI.create(context.getComponentId() + "#"
> + serviceDefinition.getName()));
> }
>
> @Override
> public ReferenceBinding build(CompositeReference referenceDefinition,
> EchoBinding bindingDefinition,
> DeploymentContext context) throws
> BuilderException {
> - URI targetURI = bindingDefinition.getURI() != null?
> URI.create(bindingDefinition.getURI()) : null;
> - return new EchoReference(URI.create("#" +
> referenceDefinition.getName()), targetURI);
> + URI targetURI = bindingDefinition.getURI() != null ?
> URI.create(bindingDefinition.getURI()) : null;
> + return new EchoReference(URI.create(context.getComponentId() +
> "#" + referenceDefinition.getName()), targetURI);
> }
>
> @Override
>
> Modified:
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java
> (original)
> +++
> incubator/tuscany/java/sca/samples/echo-binding/src/main/java/org/apache/tuscany/binding/echo/EchoReference.java
> Fri Apr 13 10:49:14 2007
> @@ -22,8 +22,6 @@
>
> import javax.xml.namespace.QName;
>
> -import org.apache.tuscany.core.binding.local.LocalCallbackTargetInvoker;
> -import org.apache.tuscany.core.binding.local.LocalTargetInvoker;
> import org.apache.tuscany.interfacedef.Operation;
> import org.apache.tuscany.spi.component.TargetInvokerCreationException;
> import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
>
> Modified:
> incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java
> (original)
> +++
> incubator/tuscany/java/sca/samples/echo-binding/src/test/java/org/apache/tuscany/binding/echo/EchoBindingTestCase.java
> Fri Apr 13 10:49:14 2007
> @@ -33,7 +33,7 @@
>
> protected void setUp() throws Exception {
> SCARuntime.start("EchoBinding.composite");
> - ComponentContext context =
> SCARuntime.getComponentContext("ClientComponent");
> + ComponentContext context =
> SCARuntime.getComponentContext("Client");
> ServiceReference<Client> service =
> context.createSelfReference(Client.class);
> client = service.getService();
> }
>
> Modified:
> incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite
> URL:
> http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite?view=diff&rev=528566&r1=528565&r2=528566
> ==============================================================================
> ---
> incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite
> (original)
> +++
> incubator/tuscany/java/sca/samples/echo-binding/src/test/resources/EchoBinding.composite
> Fri Apr 13 10:49:14 2007
> @@ -24,7 +24,7 @@
>
> <service name="ClientService" promote="Client">
> <interface.java
> interface="org.apache.tuscany.binding.echo.Client"/>
> - <binding.echo/>
> + <binding.echo uri="echo://tmp" />
> </service>
>
> <component name="Client">
> @@ -33,7 +33,7 @@
>
> <reference name="EchoReference" promote="Client/echoReference">
> <interface.java interface="org.apache.tuscany.binding.echo.Echo"/>
> - <binding.echo/>
> + <binding.echo uri="echo://tmp" />
> </reference>
>
> </composite>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org