You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/12/31 19:59:02 UTC
svn commit: r491465 [1/3] - in /incubator/tuscany/java/sca:
kernel/core/src/main/java/org/apache/tuscany/core/binding/local/
kernel/core/src/main/java/org/apache/tuscany/core/builder/
kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/ ...
Author: jmarino
Date: Sun Dec 31 10:58:58 2006
New Revision: 491465
URL: http://svn.apache.org/viewvc?view=rev&rev=491465
Log:
first cut at support for multipe bindings per reference
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvokerTestCase.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ReferenceImplTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBindingTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java (contents, props changed)
- copied, changed from r491325, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeLoaderNoBindingTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java (with props)
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReference.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingReference.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java (contents, props changed)
- copied, changed from r491316, incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingReference.java
Removed:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerInvocationExceptionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvokerThrowableTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeLoaderNoBindingTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindlessBuilder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReference.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingReference.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingReference.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/CompositeContextImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/composite.scdl
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingLoaderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemServiceComponentWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/MockComponentFactory.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/launcher/CompositeContextImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSBindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIBindingBuilderTestCase.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIReferenceTestCase.java
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingBuilder.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingBuilder.java
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java (from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java&r1=491325&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java Sun Dec 31 10:58:58 2006
@@ -31,7 +31,7 @@
*
* @version $Rev$ $Date$
*/
-public abstract class AbstractCompositeTargetInvoker implements TargetInvoker {
+public abstract class AbstractLocalTargetInvoker implements TargetInvoker {
protected boolean cacheable;
public boolean isCacheable() {
@@ -71,7 +71,7 @@
}
@Override
- public AbstractCompositeTargetInvoker clone() throws CloneNotSupportedException {
- return (AbstractCompositeTargetInvoker) super.clone();
+ public AbstractLocalTargetInvoker clone() throws CloneNotSupportedException {
+ return (AbstractLocalTargetInvoker) super.clone();
}
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -20,7 +20,7 @@
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.BindingBuilderExtension;
@@ -47,9 +47,10 @@
}
- public Reference build(CompositeComponent parent,
- BoundReferenceDefinition<LocalBindingDefinition> boundReferenceDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
- throw new UnsupportedOperationException();
+ public ReferenceBinding build(CompositeComponent parent,
+ BoundReferenceDefinition boundReferenceDefinition,
+ LocalBindingDefinition bindingDefinition,
+ DeploymentContext deploymentContext) throws BuilderException {
+ return new LocalReferenceBinding(boundReferenceDefinition.getName(), parent);
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java Sun Dec 31 10:58:58 2006
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.core.binding.local;
+import java.net.URI;
+
import org.apache.tuscany.spi.model.BindingDefinition;
@@ -28,4 +30,10 @@
*/
public class LocalBindingDefinition extends BindingDefinition {
+ public LocalBindingDefinition() {
+ }
+
+ public LocalBindingDefinition(URI targetUri) {
+ super(targetUri);
+ }
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java Sun Dec 31 10:58:58 2006
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.core.binding.local;
+import java.net.URI;
+import java.net.URISyntaxException;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
@@ -45,6 +47,14 @@
ModelObject object,
XMLStreamReader reader,
DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+ String uri = reader.getAttributeValue(null, "uri");
+ if (uri != null) {
+ try {
+ return new LocalBindingDefinition(new URI(uri));
+ } catch (URISyntaxException e) {
+ throw new LoaderException(e);
+ }
+ }
return new LocalBindingDefinition();
}
}
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java (from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java&r1=491325&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceCallbackTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java Sun Dec 31 10:58:58 2006
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.implementation.composite;
+package org.apache.tuscany.core.binding.local;
import java.util.Map;
@@ -27,28 +27,22 @@
import org.apache.tuscany.spi.wire.MessageImpl;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.core.binding.local.AbstractCompositeTargetInvoker;
/**
* Dispatches a callback invocation to the callback instance
*
* @version $Rev$ $Date$
*/
-public class CompositeReferenceCallbackTargetInvoker extends AbstractCompositeTargetInvoker {
+public class LocalCallbackTargetInvoker extends AbstractLocalTargetInvoker {
private Operation operation;
private InboundWire inboundWire;
- public CompositeReferenceCallbackTargetInvoker(Operation operation, InboundWire inboundWire) {
+ public LocalCallbackTargetInvoker(Operation operation, InboundWire inboundWire) {
assert operation != null : "Operation method cannot be null";
this.operation = operation;
this.inboundWire = inboundWire;
}
- @Override
- public CompositeReferenceCallbackTargetInvoker clone() throws CloneNotSupportedException {
- return (CompositeReferenceCallbackTargetInvoker) super.clone();
- }
-
public Message invoke(Message msg) throws InvocationRuntimeException {
try {
return invoke(operation, msg);
@@ -71,4 +65,10 @@
TargetInvoker invoker = chain.getTargetInvoker();
return invoke(chain, invoker, msg);
}
+
+ @Override
+ public LocalCallbackTargetInvoker clone() throws CloneNotSupportedException {
+ return (LocalCallbackTargetInvoker) super.clone();
+ }
+
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java?view=auto&rev=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -0,0 +1,32 @@
+package org.apache.tuscany.core.binding.local;
+
+import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
+/**
+ * The runtime representaion of the local reference binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class LocalReferenceBinding extends ReferenceBindingExtension {
+
+ public LocalReferenceBinding(String name, CompositeComponent parent) throws CoreRuntimeException {
+ super(name, parent);
+ }
+
+ public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
+ throws TargetInvokerCreationException {
+ return new LocalTargetInvoker(operation, outboundWire);
+ }
+
+ public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, Operation operation)
+ throws TargetInvokerCreationException {
+ return new LocalCallbackTargetInvoker(operation, inboundWire);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java Sun Dec 31 10:58:58 2006
@@ -27,7 +27,7 @@
import org.apache.tuscany.spi.wire.TargetInvoker;
/**
- * The runtime representaion of the local binding
+ * The runtime representaion of the local service binding
*
* @version $Rev$ $Date$
*/
@@ -39,7 +39,7 @@
public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
throws TargetInvokerCreationException {
- return new CompositeTargetInvoker(operation, outboundWire);
+ return new LocalTargetInvoker(operation, outboundWire);
}
}
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java (from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java&r1=491325&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java Sun Dec 31 10:58:58 2006
@@ -31,12 +31,12 @@
*
* @version $Rev$ $Date$
*/
-public class CompositeTargetInvoker extends AbstractCompositeTargetInvoker {
+public class LocalTargetInvoker extends AbstractLocalTargetInvoker {
private OutboundInvocationChain chain;
private Object fromAddress;
private boolean contractHasCallback;
- public CompositeTargetInvoker(Operation operation, OutboundWire outboundWire) {
+ public LocalTargetInvoker(Operation operation, OutboundWire outboundWire) {
assert operation != null;
chain = outboundWire.getInvocationChains().get(operation);
fromAddress = (outboundWire.getContainer() == null) ? null : outboundWire.getContainer().getName();
@@ -44,8 +44,8 @@
}
@Override
- public CompositeTargetInvoker clone() throws CloneNotSupportedException {
- return (CompositeTargetInvoker) super.clone();
+ public LocalTargetInvoker clone() throws CloneNotSupportedException {
+ return (LocalTargetInvoker) super.clone();
}
public Message invoke(Message msg) throws InvocationRuntimeException {
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Sun Dec 31 10:58:58 2006
@@ -22,10 +22,11 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.tuscany.core.implementation.composite.ServiceImpl;
+import org.osoa.sca.annotations.Init;
+
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BindingBuilder;
-import org.apache.tuscany.spi.builder.BindlessBuilder;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.ComponentBuilder;
@@ -33,7 +34,7 @@
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.SCAObject;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
@@ -44,10 +45,11 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.WireService;
-import org.osoa.sca.annotations.Init;
+
+import org.apache.tuscany.core.implementation.composite.ReferenceImpl;
+import org.apache.tuscany.core.implementation.composite.ServiceImpl;
/**
* The default builder registry in the runtime
@@ -55,124 +57,66 @@
* @version $Rev$ $Date$
*/
public class BuilderRegistryImpl implements BuilderRegistry {
-
- /**
- * Wire service used by the builder.
- */
protected WireService wireService;
-
- /**
- * Scope registry used by the builder.
- */
protected ScopeRegistry scopeRegistry;
- /**
- * Map of component builders.
- */
- private final Map<Class<? extends Implementation<?>>, ComponentBuilder<? extends Implementation<?>>> componentBuilders =
+ private final Map<Class<? extends Implementation<?>>,
+ ComponentBuilder<? extends Implementation<?>>> componentBuilders =
new HashMap<Class<? extends Implementation<?>>, ComponentBuilder<? extends Implementation<?>>>();
-
- /**
- * Map of binding builders.
- */
- private final Map<Class<? extends BindingDefinition>, BindingBuilder<? extends BindingDefinition>> bindingBuilders =
+ private final Map<Class<? extends BindingDefinition>,
+ BindingBuilder<? extends BindingDefinition>> bindingBuilders =
new HashMap<Class<? extends BindingDefinition>, BindingBuilder<? extends BindingDefinition>>();
-
- /**
- * Bindless builder.
- */
- private BindlessBuilder bindlessBuilder;
-
- /**
- * Default constructor.
- *
- */
+
public BuilderRegistryImpl() {
}
- /**
- * Initializes the scope registry.
- *
- * @param scopeRegistry Scope registry to use.
- */
public BuilderRegistryImpl(ScopeRegistry scopeRegistry) {
this.scopeRegistry = scopeRegistry;
}
- /**
- * Initiakization method.
- *
- */
@Init(eager = true)
public void init() {
}
- /**
- * Method for auto-wiring scope registry.
- * @param scopeRegistry Scope registry to use.
- */
@Autowire
public void setScopeRegistry(ScopeRegistry scopeRegistry) {
this.scopeRegistry = scopeRegistry;
}
- /**
- * Method for auto-wiring wire service.
- * @param scopeRegistry Wire service to use.
- */
@Autowire
public void setWireService(WireService wireService) {
this.wireService = wireService;
}
- /**
- * @see org.apache.tuscany.spi.builder.BuilderRegistry#register(java.lang.Class, org.apache.tuscany.spi.builder.ComponentBuilder)
- */
public <I extends Implementation<?>> void register(Class<I> implClass, ComponentBuilder<I> builder) {
componentBuilders.put(implClass, builder);
}
- /**
- * @see org.apache.tuscany.spi.builder.BuilderRegistry#unregister(java.lang.Class)
- */
public <I extends Implementation<?>> void unregister(Class<I> implClass) {
componentBuilders.remove(implClass);
}
- /**
- * @see org.apache.tuscany.spi.builder.BuilderRegistry#register(java.lang.Class, org.apache.tuscany.spi.builder.BindingBuilder)
- */
public <B extends BindingDefinition> void register(Class<B> implClass, BindingBuilder<B> builder) {
bindingBuilders.put(implClass, builder);
}
- /**
- * @see org.apache.tuscany.spi.builder.BuilderRegistry#register(org.apache.tuscany.spi.builder.BindlessBuilder)
- */
- public void register(BindlessBuilder builder) {
- bindlessBuilder = builder;
- }
-
- /**
- * @see org.apache.tuscany.spi.builder.Builder#build(org.apache.tuscany.spi.component.CompositeComponent, org.apache.tuscany.spi.model.ComponentDefinition, org.apache.tuscany.spi.deployer.DeploymentContext)
- */
@SuppressWarnings("unchecked")
public <I extends Implementation<?>> Component build(CompositeComponent parent,
ComponentDefinition<I> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
+ DeploymentContext context) throws BuilderException {
Class<?> implClass = componentDefinition.getImplementation().getClass();
- ComponentBuilder<I> componentBuilder = (ComponentBuilder<I>)componentBuilders.get(implClass);
+ //noinspection SuspiciousMethodCalls
+ ComponentBuilder<I> componentBuilder = (ComponentBuilder<I>) componentBuilders.get(implClass);
try {
if (componentBuilder == null) {
String name = implClass.getName();
throw new NoRegisteredBuilderException("No builder registered for implementation", name);
}
- Component component = componentBuilder.build(parent, componentDefinition, deploymentContext);
+ Component component = componentBuilder.build(parent, componentDefinition, context);
if (component != null) {
component.setComponentDefinition(componentDefinition);
}
-
ComponentType<?, ?, ?> componentType = componentDefinition.getImplementation().getComponentType();
assert componentType != null : "Component type must be set";
// create wires for the component
@@ -186,10 +130,7 @@
}
}
- /**
- * @see org.apache.tuscany.spi.builder.Builder#build(org.apache.tuscany.spi.component.CompositeComponent, org.apache.tuscany.spi.model.BoundServiceDefinition, org.apache.tuscany.spi.deployer.DeploymentContext)
- */
- @SuppressWarnings( {"unchecked"})
+ @SuppressWarnings({"unchecked"})
public Service build(CompositeComponent parent,
BoundServiceDefinition boundServiceDefinition,
DeploymentContext deploymentContext) throws BuilderException {
@@ -200,6 +141,7 @@
Service service = new ServiceImpl(name, parent, serviceContract, targetUri, system);
for (BindingDefinition definition : boundServiceDefinition.getBindings()) {
Class<?> bindingClass = definition.getClass();
+ //noinspection SuspiciousMethodCalls
BindingBuilder bindingBuilder = bindingBuilders.get(bindingClass);
if (bindingBuilder == null) {
throw new NoRegisteredBuilderException("No builder registered for type", bindingClass.getName());
@@ -220,35 +162,34 @@
return service;
}
- /**
- * @see org.apache.tuscany.spi.builder.Builder#build(org.apache.tuscany.spi.component.CompositeComponent, org.apache.tuscany.spi.model.BoundReferenceDefinition, org.apache.tuscany.spi.deployer.DeploymentContext)
- */
@SuppressWarnings("unchecked")
- public <B extends BindingDefinition> SCAObject build(CompositeComponent parent,
- BoundReferenceDefinition<B> boundReferenceDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
- Class<B> bindingClass = (Class<B>)boundReferenceDefinition.getBinding().getClass();
- BindingBuilder<B> bindingBuilder = (BindingBuilder<B>)bindingBuilders.get(bindingClass);
- SCAObject object;
- object = bindingBuilder.build(parent, boundReferenceDefinition, deploymentContext);
- // create wires for the component
- if (wireService != null) {
- wireService.createWires((Reference)object, boundReferenceDefinition.getServiceContract());
- }
- return object;
- }
+ public Reference build(CompositeComponent parent,
+ BoundReferenceDefinition referenceDefinition,
+ DeploymentContext context) throws BuilderException {
+
+ String name = referenceDefinition.getName();
+ ServiceContract<?> contract = referenceDefinition.getServiceContract();
+ Reference reference = new ReferenceImpl(name, parent, contract);
+ for (BindingDefinition bindingDefinition : referenceDefinition.getBindings()) {
+ Class<?> bindingClass = bindingDefinition.getClass();
+ //noinspection SuspiciousMethodCalls
+ BindingBuilder bindingBuilder = bindingBuilders.get(bindingClass);
+ ReferenceBinding binding = bindingBuilder.build(parent, referenceDefinition, bindingDefinition, context);
+ // create wires for the component
+ if (wireService != null) {
+ URI targetUri = bindingDefinition.getTargetUri();
+ // it is possible for a binding to not have a URI
+ QualifiedName targetName = null;
+ if (targetUri != null) {
+ targetName = new QualifiedName(targetUri.getPath());
+ }
+ wireService.createWires(binding, contract, targetName);
+
+ }
+ reference.addReferenceBinding(binding);
- /**
- * @see org.apache.tuscany.spi.builder.Builder#build(org.apache.tuscany.spi.component.CompositeComponent, org.apache.tuscany.spi.model.ReferenceDefinition, org.apache.tuscany.spi.deployer.DeploymentContext)
- */
- public SCAObject build(CompositeComponent parent,
- ReferenceDefinition referenceDefinition,
- DeploymentContext deploymentContext) {
- SCAObject object = bindlessBuilder.build(parent, referenceDefinition, deploymentContext);
- if (wireService != null) {
- wireService.createWires((Reference)object, referenceDefinition.getServiceContract());
}
- return object;
+ return reference;
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sun Dec 31 10:58:58 2006
@@ -31,6 +31,7 @@
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
@@ -52,7 +53,7 @@
import org.apache.tuscany.spi.wire.WirePostProcessorRegistry;
import org.apache.tuscany.spi.wire.WireService;
-import org.apache.tuscany.core.implementation.composite.CompositeReference;
+import org.apache.tuscany.core.binding.local.LocalReferenceBinding;
import org.apache.tuscany.core.wire.LoopBackWire;
import org.apache.tuscany.core.wire.NonBlockingBridgingInterceptor;
import org.apache.tuscany.core.wire.SynchronousBridgingInterceptor;
@@ -183,10 +184,10 @@
} catch (TargetInvokerCreationException e) {
throw new WireConnectException("Error connecting source and target", sourceWire, targetWire, e);
}
- } else if (target instanceof Reference) {
- Reference reference = (Reference) target;
+ } else if (target instanceof ReferenceBinding) {
+ ReferenceBinding referenceBinding = (ReferenceBinding) target;
try {
- invoker = reference.createTargetInvoker(targetWire.getServiceContract(), inboundOperation);
+ invoker = referenceBinding.createTargetInvoker(targetWire.getServiceContract(), inboundOperation);
} catch (TargetInvokerCreationException e) {
String targetName = targetWire.getContainer().getName();
throw new WireConnectException("Error processing inbound wire", null, null, targetName, null, e);
@@ -253,11 +254,24 @@
e);
}
connect(outboundChain, inboundChain, invoker, false);
- } else if (source instanceof CompositeReference) {
- CompositeReference compRef = (CompositeReference) source;
+ } else if (source instanceof Reference) {
+ Reference reference = (Reference) source;
ServiceContract sourceContract = sourceWire.getServiceContract();
- TargetInvoker invoker = compRef.createCallbackTargetInvoker(sourceContract, operation);
- connect(outboundChain, inboundChain, invoker, false);
+ for (ReferenceBinding binding : reference.getReferenceBindings()) {
+ // FIXME JFM why is this only specific to local bindings and not generalized to all bindings?
+ if (binding instanceof LocalReferenceBinding) {
+ TargetInvoker invoker;
+ try {
+ invoker = binding.createCallbackTargetInvoker(sourceContract, operation);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireConnectException("Error connecting source and target",
+ sourceWire,
+ targetWire,
+ e);
+ }
+ connect(outboundChain, inboundChain, invoker, false);
+ }
+ }
} else if (source instanceof Service) {
Service service = (Service) source;
ServiceContract sourceContract = sourceWire.getServiceContract();
@@ -347,41 +361,50 @@
private void handleReference(Reference reference) throws WiringException {
CompositeComponent parent = reference.getParent();
- InboundWire inboundWire = reference.getInboundWire();
- Map<Operation<?>, InboundInvocationChain> inboundChains = inboundWire.getInvocationChains();
- for (InboundInvocationChain chain : inboundChains.values()) {
- //TODO handle async
- // add target invoker on inbound side
- ServiceContract contract = inboundWire.getServiceContract();
- Operation operation = chain.getOperation();
- TargetInvoker invoker;
- try {
- invoker = reference.createTargetInvoker(contract, operation);
- } catch (TargetInvokerCreationException e) {
- String targetName = inboundWire.getContainer().getName();
- throw new WireConnectException("Error processing inbound wire",
- null,
- null,
- targetName,
- null,
- e);
- }
- chain.setTargetInvoker(invoker);
- chain.prepare();
- }
- OutboundWire outboundWire = reference.getOutboundWire();
- // connect the reference's inbound and outbound wires
- connect(inboundWire, outboundWire, true);
-
- if (reference instanceof CompositeReference) {
- // For a composite reference only, since its outbound wire comes
- // from its parent composite,
- // the corresponding target would not lie in its parent but
- // rather in its parent's parent
- parent = parent.getParent();
- assert parent != null : "Parent of parent was null";
- SCAObject target = parent.getChild(outboundWire.getTargetName().getPartName());
- connect(parent, outboundWire, target);
+ for (ReferenceBinding binding : reference.getReferenceBindings()) {
+ InboundWire inboundWire = binding.getInboundWire();
+ Map<Operation<?>, InboundInvocationChain> inboundChains = inboundWire.getInvocationChains();
+ for (InboundInvocationChain chain : inboundChains.values()) {
+ //TODO handle async
+ // add target invoker on inbound side
+ ServiceContract contract = inboundWire.getServiceContract();
+ Operation operation = chain.getOperation();
+ TargetInvoker invoker;
+ try {
+ invoker = binding.createTargetInvoker(contract, operation);
+ } catch (TargetInvokerCreationException e) {
+ String targetName = inboundWire.getContainer().getName();
+ throw new WireConnectException("Error processing inbound wire",
+ null,
+ null,
+ targetName,
+ null,
+ e);
+ }
+ chain.setTargetInvoker(invoker);
+ chain.prepare();
+ }
+ OutboundWire outboundWire = binding.getOutboundWire();
+ // connect the reference's inbound and outbound wires
+ connect(inboundWire, outboundWire, true);
+
+ if (binding instanceof LocalReferenceBinding) {
+ String targetName = outboundWire.getTargetName().getPartName();
+ String serviceName = outboundWire.getTargetName().getPortName();
+ // A reference configured with the local binding is alwaysconnected to a target that is a sibling
+ // of the reference's parent composite.
+ parent = parent.getParent();
+ if (parent == null) {
+ throw new TargetServiceNotFoundException("Reference target not found",
+ reference.getName(),
+ null,
+ targetName,
+ serviceName);
+ }
+ SCAObject target = parent.getChild(targetName);
+ connect(parent, outboundWire, target);
+ }
+
}
}
@@ -463,8 +486,20 @@
boolean optimizable = isOptimizable(source.getScope(), target.getScope());
connect(sourceWire, targetWire, optimizable);
} else if (target instanceof Reference) {
- InboundWire targetWire = ((Reference) target).getInboundWire();
- assert targetWire != null;
+ InboundWire targetWire = null;
+ Reference reference = (Reference) target;
+ for (ReferenceBinding binding : reference.getReferenceBindings()) {
+ InboundWire candidate = binding.getInboundWire();
+ if (sourceWire.getBindingType().equals(candidate.getBindingType())) {
+ targetWire = candidate;
+ break;
+ }
+ }
+ if (targetWire == null) {
+ throw new NoCompatibleBindingsException(source.getName(),
+ targetName.getPartName(),
+ targetName.getPortName());
+ }
checkIfWireable(sourceWire, targetWire);
boolean optimizable = isOptimizable(source.getScope(), target.getScope());
connect(sourceWire, targetWire, optimizable);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessor.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessor.java Sun Dec 31 10:58:58 2006
@@ -25,7 +25,7 @@
import org.osoa.sca.annotations.Constructor;
import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.databinding.Mediator;
import org.apache.tuscany.spi.model.Operation;
@@ -80,6 +80,10 @@
Object targetAddress = source.getContainer().getName();
Map<Operation<?>, OutboundInvocationChain> callbackChains =
target.getSourceCallbackInvocationChains(targetAddress);
+ if (callbackChains == null) {
+ // callback chains could be null
+ return;
+ }
for (Map.Entry<Operation<?>, OutboundInvocationChain> entry : callbackChains.entrySet()) {
Operation<?> sourceOperation = entry.getKey();
Operation<?> targetOperation =
@@ -103,7 +107,7 @@
public void process(InboundWire source, OutboundWire target) {
SCAObject container = source.getContainer();
// Either Service or Reference
- boolean isReference = container instanceof Reference;
+ boolean isReference = container instanceof ReferenceBinding;
Map<Operation<?>, InboundInvocationChain> chains = source.getInvocationChains();
for (Map.Entry<Operation<?>, InboundInvocationChain> entry : chains.entrySet()) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Sun Dec 31 10:58:58 2006
@@ -18,19 +18,15 @@
*/
package org.apache.tuscany.core.implementation.composite;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.BoundReferenceDefinition;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
@@ -47,7 +43,6 @@
*/
public class CompositeBuilder extends ComponentBuilderExtension<CompositeImplementation> {
- @SuppressWarnings("unchecked")
public Component build(CompositeComponent parent,
ComponentDefinition<CompositeImplementation> componentDefinition,
DeploymentContext deploymentContext) throws BuilderException {
@@ -56,18 +51,6 @@
String name = componentDefinition.getName();
CompositeComponentImpl component = new CompositeComponentImpl(name, parent, connector, null);
- List<BoundReferenceDefinition<? extends BindingDefinition>> boundReferences =
- new ArrayList<BoundReferenceDefinition<? extends BindingDefinition>>();
- List<ReferenceDefinition> allTargetlessReferences = new ArrayList<ReferenceDefinition>();
-
- for (Object referenceTarget : componentType.getReferences().values()) {
- if (referenceTarget instanceof BoundReferenceDefinition<?>) {
- boundReferences.add((BoundReferenceDefinition<? extends BindingDefinition>) referenceTarget);
- } else if (referenceTarget instanceof ReferenceDefinition) {
- allTargetlessReferences.add((ReferenceDefinition) referenceTarget);
- }
- }
-
for (ComponentDefinition<? extends Implementation<?>> definition : componentType.getComponents().values()) {
try {
Component child = builderRegistry.build(component, definition, deploymentContext);
@@ -89,19 +72,15 @@
throw new BuilderInstantiationException("Error registering service", e);
}
}
- for (BoundReferenceDefinition<? extends BindingDefinition> definition : boundReferences) {
- try {
- SCAObject child = builderRegistry.build(component, definition, deploymentContext);
- component.register(child);
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering reference", e);
- }
- }
- // TODO JFM remove need for targetless references
- for (ReferenceDefinition definition : allTargetlessReferences) {
+ for (ReferenceDefinition definition : componentType.getReferences().values()) {
try {
- SCAObject child = builderRegistry.build(component, definition, deploymentContext);
- component.register(child);
+ if (definition instanceof BoundReferenceDefinition) {
+ BoundReferenceDefinition brd = (BoundReferenceDefinition) definition;
+ Reference child = builderRegistry.build(component, brd, deploymentContext);
+ component.register(child);
+ } else {
+ throw new UnsupportedOperationException();
+ }
} catch (ComponentRegistrationException e) {
throw new BuilderInstantiationException("Error registering reference", e);
}
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java (from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java&r1=491325&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReference.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -19,8 +19,10 @@
package org.apache.tuscany.core.implementation.composite;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
-import org.apache.tuscany.core.binding.local.CompositeTargetInvoker;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
+import org.apache.tuscany.core.binding.local.LocalTargetInvoker;
+import org.apache.tuscany.core.binding.local.LocalCallbackTargetInvoker;
+
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -28,19 +30,20 @@
/**
* A bindless reference to a target service in the parent composite
*
+ * @deprecated
* @version $Rev$ $Date$
*/
-public class CompositeReference extends ReferenceExtension {
+public class CompositeReferenceBinding extends ReferenceBindingExtension {
- public CompositeReference(String name, CompositeComponent parent) {
+ public CompositeReferenceBinding(String name, CompositeComponent parent) {
super(name, parent);
}
public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) {
- return new CompositeTargetInvoker(operation, outboundWire);
+ return new LocalTargetInvoker(operation, outboundWire);
}
public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, Operation operation) {
- return new CompositeReferenceCallbackTargetInvoker(operation, inboundWire);
+ return new LocalCallbackTargetInvoker(operation, inboundWire);
}
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeReferenceBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java?view=auto&rev=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java Sun Dec 31 10:58:58 2006
@@ -0,0 +1,90 @@
+/*
+ * 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.core.implementation.composite;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.tuscany.spi.component.AbstractSCAObject;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+/**
+ * The default implementation of a {@link org.apache.tuscany.spi.component.Reference}
+ *
+ * @version $Rev$ $Date$
+ */
+public class ReferenceImpl extends AbstractSCAObject implements Reference {
+ private ServiceContract<?> serviceContract;
+ private List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
+ private boolean system;
+
+ public ReferenceImpl(String name, CompositeComponent parent, ServiceContract<?> contract) {
+ this(name, parent, contract, false);
+ }
+
+ public ReferenceImpl(String name,
+ CompositeComponent parent,
+ ServiceContract<?> contract,
+ boolean system) {
+ super(name, parent);
+ this.serviceContract = contract;
+ this.system = system;
+ }
+
+ public Scope getScope() {
+ return Scope.SYSTEM;
+ }
+
+ public ServiceContract<?> getServiceContract() {
+ return serviceContract;
+ }
+
+ public List<ReferenceBinding> getReferenceBindings() {
+ return Collections.unmodifiableList(bindings);
+ }
+
+ public void addReferenceBinding(ReferenceBinding binding) {
+ binding.setReference(this);
+ bindings.add(binding);
+ }
+
+ public void start() {
+ super.start();
+ for (ReferenceBinding binding : bindings) {
+ binding.start();
+ }
+ }
+
+ public void stop() {
+ super.stop();
+ for (ReferenceBinding binding : bindings) {
+ binding.stop();
+ }
+ }
+
+ @Override
+ public boolean isSystem() {
+ return system;
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java Sun Dec 31 10:58:58 2006
@@ -18,10 +18,10 @@
*/
package org.apache.tuscany.core.implementation.composite;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.net.URI;
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -49,8 +49,7 @@
CompositeComponent parent,
ServiceContract<?> contract,
URI targetUri,
- boolean system
- ) {
+ boolean system) {
super(name, parent);
this.serviceContract = contract;
this.system = system;
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -24,7 +24,7 @@
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.MissingWireTargetException;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.BindingBuilderExtension;
@@ -32,8 +32,8 @@
import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.core.implementation.system.component.SystemReferenceImpl;
-import org.apache.tuscany.core.implementation.system.component.SystemServiceBindingImpl;
+import org.apache.tuscany.core.implementation.system.component.SystemReferenceBinding;
+import org.apache.tuscany.core.implementation.system.component.SystemServiceBinding;
import org.apache.tuscany.core.implementation.system.model.SystemBindingDefinition;
/**
@@ -54,14 +54,15 @@
throw new MissingWireTargetException("Target URI not specified", definition.getName());
}
ServiceContract<?> contract = definition.getServiceContract();
- return new SystemServiceBindingImpl(definition.getName(), parent, contract);
+ return new SystemServiceBinding(definition.getName(), parent, contract);
}
- public Reference build(CompositeComponent parent,
- BoundReferenceDefinition<SystemBindingDefinition> definition,
- DeploymentContext deploymentContext) {
+ public ReferenceBinding build(CompositeComponent parent,
+ BoundReferenceDefinition definition,
+ SystemBindingDefinition bindingDefinition,
+ DeploymentContext deploymentContext) {
String name = definition.getName();
- return new SystemReferenceImpl(name, parent);
+ return new SystemReferenceBinding(name, parent);
}
@Override
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java (from r491316, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java&r1=491316&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -21,6 +21,7 @@
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -33,11 +34,12 @@
*
* @version $Rev$ $Date$
*/
-public class SystemReferenceImpl extends AbstractSCAObject implements Reference {
+public class SystemReferenceBinding extends AbstractSCAObject implements ReferenceBinding {
+ protected Reference reference;
protected InboundWire inboundWire;
protected OutboundWire outboundWire;
- public SystemReferenceImpl(String name, CompositeComponent parent) {
+ public SystemReferenceBinding(String name, CompositeComponent parent) {
super(name, parent);
}
@@ -49,6 +51,10 @@
this.inboundWire = wire;
}
+ public void setReference(Reference reference) {
+ this.reference = reference;
+ }
+
public InboundWire getInboundWire() {
return inboundWire;
}
@@ -81,7 +87,9 @@
throw new UnsupportedOperationException();
}
+ @Override
public boolean isSystem() {
- return true;
+ return reference != null && reference.isSystem();
}
+
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java (from r491325, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingImpl.java&r1=491325&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java Sun Dec 31 10:58:58 2006
@@ -36,13 +36,13 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class SystemServiceBindingImpl extends AbstractSCAObject implements ServiceBinding {
+public class SystemServiceBinding extends AbstractSCAObject implements ServiceBinding {
protected Service service;
protected InboundWire inboundWire;
protected OutboundWire outboundWire;
protected ServiceContract<?> serviceContract;
- public SystemServiceBindingImpl(String name, CompositeComponent parent, ServiceContract<?> serviceContract)
+ public SystemServiceBinding(String name, CompositeComponent parent, ServiceContract<?> serviceContract)
throws CoreRuntimeException {
super(name, parent);
this.serviceContract = serviceContract;
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/CompositeContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/CompositeContextImpl.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/CompositeContextImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/CompositeContextImpl.java Sun Dec 31 10:58:58 2006
@@ -27,7 +27,7 @@
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
@@ -123,8 +123,8 @@
if (wire == null) {
throw new ServiceRuntimeException("Local binding for service not found [" + name + "]");
}
- } else if (child instanceof Reference) {
- wire = ((Reference) child).getInboundWire();
+ } else if (child instanceof ReferenceBinding) {
+ wire = ((ReferenceBinding) child).getInboundWire();
} else if (child == null) {
throw new ServiceRuntimeException("Service not found [" + serviceName + "]");
} else {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Sun Dec 31 10:58:58 2006
@@ -53,11 +53,13 @@
import org.apache.tuscany.spi.loader.UndefinedPropertyException;
import org.apache.tuscany.spi.loader.UndefinedReferenceException;
import org.apache.tuscany.spi.loader.UnrecognizedElementException;
+import org.apache.tuscany.spi.model.BindingDefinition;
+import org.apache.tuscany.spi.model.BoundReferenceDefinition;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.OverrideOptions;
import org.apache.tuscany.spi.model.Property;
@@ -66,6 +68,7 @@
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
import org.apache.tuscany.core.property.SimplePropertyObjectFactory;
@@ -159,8 +162,18 @@
BoundServiceDefinition bsd = (BoundServiceDefinition) serviceDefinition;
if (bsd.getBindings().isEmpty()) {
if (bsd.getBindings().isEmpty()) {
- // TODO implement a more advanced option that allows the runtime to
- // choose a binding
+ // TODO JFM implement capability for the runtime to choose a binding
+ bsd.addBinding(new LocalBindingDefinition());
+ }
+ }
+ }
+ }
+ for (ReferenceDefinition referenceDefinition : type.getReferences().values()) {
+ if (referenceDefinition instanceof BoundReferenceDefinition) {
+ BoundReferenceDefinition bsd = (BoundReferenceDefinition) referenceDefinition;
+ if (bsd.getBindings().isEmpty()) {
+ if (bsd.getBindings().isEmpty()) {
+ // TODO JFM implement capability for the runtime to choose a binding
bsd.addBinding(new LocalBindingDefinition());
}
}
@@ -244,14 +257,38 @@
if (!componentType.getReferences().containsKey(name)) {
throw new UndefinedReferenceException(name);
}
- ReferenceTarget referenceTarget = new ReferenceTarget();
- referenceTarget.setReferenceName(name);
- try {
- referenceTarget.addTarget(new URI(target));
- } catch (URISyntaxException e) {
- throw new InvalidReferenceException(e);
+ if (componentType instanceof CompositeComponentType) {
+ ReferenceDefinition definition = componentType.getReferences().get(name);
+ assert definition instanceof BoundReferenceDefinition;
+ BoundReferenceDefinition brd = (BoundReferenceDefinition) definition;
+ if (brd.getBindings().isEmpty()) {
+ // TODO JFM allow selection of a default binding
+ try {
+ LocalBindingDefinition binding = new LocalBindingDefinition(new URI(target));
+ brd.addBinding(binding);
+ } catch (URISyntaxException e) {
+ throw new InvalidReferenceException(e);
+ }
+ } else {
+ for (BindingDefinition binding : brd.getBindings()) {
+ try {
+ // FIXME this is bad - clarify in the spec how URIs are overriden
+ binding.setTargetUri(new URI(target));
+ } catch (URISyntaxException e) {
+ throw new LoaderException(e);
+ }
+ }
+ }
+ } else {
+ ReferenceTarget referenceTarget = new ReferenceTarget();
+ referenceTarget.setReferenceName(name);
+ try {
+ referenceTarget.addTarget(new URI(target));
+ } catch (URISyntaxException e) {
+ throw new InvalidReferenceException(e);
+ }
+ componentDefinition.add(referenceTarget);
}
- componentDefinition.add(referenceTarget);
}
@SuppressWarnings("unchecked")
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org