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/30 22:42:28 UTC
svn commit: r491325 [1/6] - in /incubator/tuscany/java/sca:
kernel/core/src/main/java/org/apache/tuscany/core/binding/
kernel/core/src/main/java/org/apache/tuscany/core/binding/local/
kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/co...
Author: jmarino
Date: Sat Dec 30 13:42:22 2006
New Revision: 491325
URL: http://svn.apache.org/viewvc?view=rev&rev=491325
Log:
add support for multiple configured bindings per service; removal of bindless service specializations; multiple bindings per reference to follow
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceBindingImpl.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvokerTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingLoaderTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ServiceImplTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeLoaderNoBindingTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireServiceExtensionTestCase.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceBindingExtensionTestCase.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiServiceBinding.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBinding.java (contents, props changed)
- copied, changed from r490475, incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixServiceBinding.java (contents, props changed)
- copied, changed from r490475, incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSServiceBinding.java (contents, props changed)
- copied, changed from r490475, incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSService.java
incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCServiceBinding.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIServiceBinding.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingServiceBinding.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingService.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingServiceBinding.java (contents, props changed)
- copied, changed from r490460, incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingService.java
Removed:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeService.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindlessServiceDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiService.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSService.java
incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingService.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingService.java
Modified:
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/CompositeBindlessBuilder.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/CompositeLoader.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/builder/SystemBindingBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.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/ComponentTypeElementLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.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/loader/ServiceLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.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/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandler.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.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/deployer/BootstrapDeployerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/TestUtils.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.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/CompositeComponentImplSystemWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderWireResolutionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilderTestCase.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/loader/ComponentTypeElementLoaderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandlerSerializationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandlerSerializationTestCase.java
incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContentTypes.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/BindlessBuilder.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/builder/Connector.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.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/CompositeComponent.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.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/CompositeComponentExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundServiceDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
incubator/tuscany/java/sca/plugins/plugin.itest/src/main/resources/META-INF/tuscany/embeddedMaven.scdl
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java
incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiInvoker.java
incubator/tuscany/java/sca/runtime/standalone/launcher/src/main/resources/META-INF/tuscany/system.scdl
incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/resources/META-INF/tuscany/webapp.scdl
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/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceCallbackTargetInvoker.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceInMessageReceiver.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceInOutAsyncMessageReceiver.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.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.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.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.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixServiceInitException.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.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.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/ScriptGetterServlet.java
incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCBindingBuilderTestCase.java
incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/test/java/org/apache/tuscany/binding/jsonrpc/JSONRPCServiceTestCase.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/BindingTestCase.java
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIServiceTestCase.java
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponentBuilder.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/PropertyTestCase.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/RhinoScriptIntrospectorTestCase.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/ScriptInvokeTestCase.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponentBuilder.java
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/RubyScriptIntrospectorTestCase.java
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/ScriptInvokeTestCase.java
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.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/SpringTestUtils.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponentTestCase.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
incubator/tuscany/java/sca/services/maven/src/test/java/org/apache/tuscany/services/maven/MavenArtifactRepositoryTestCase.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.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
incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/system.scdl
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java (from r490460, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java?view=diff&rev=491325&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java&r1=490460&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java&r2=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeReferenceTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java Sat Dec 30 13:42:22 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.lang.reflect.InvocationTargetException;
@@ -27,12 +27,11 @@
import org.apache.tuscany.spi.wire.TargetInvoker;
/**
- * Base class for dispatching to a Composite Reference.
+ * Base class for dispatching to a composite reference using the local binding
*
* @version $Rev$ $Date$
*/
-public abstract class AbstractCompositeReferenceTargetInvoker implements TargetInvoker {
-
+public abstract class AbstractCompositeTargetInvoker implements TargetInvoker {
protected boolean cacheable;
public boolean isCacheable() {
@@ -48,7 +47,7 @@
}
public Object invokeTarget(final Object payload, short sequence) throws InvocationTargetException {
- throw new InvocationTargetException(new InvocationRuntimeException("Not allowed to invokeTarget with object"));
+ throw new InvocationTargetException(new UnsupportedOperationException());
}
protected Message invoke(OutboundInvocationChain chain, TargetInvoker invoker, Message msg) throws Throwable {
@@ -72,7 +71,7 @@
}
@Override
- public AbstractCompositeReferenceTargetInvoker clone() throws CloneNotSupportedException {
- return (AbstractCompositeReferenceTargetInvoker) super.clone();
+ public AbstractCompositeTargetInvoker clone() throws CloneNotSupportedException {
+ return (AbstractCompositeTargetInvoker) super.clone();
}
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractCompositeTargetInvoker.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: 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/CompositeTargetInvoker.java?view=auto&rev=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java Sat Dec 30 13:42:22 2006
@@ -0,0 +1,66 @@
+/*
+ * 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.binding.local;
+
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.wire.InvocationRuntimeException;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
+/**
+ * Dispatches an invocation through a composite service or reference using the local binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class CompositeTargetInvoker extends AbstractCompositeTargetInvoker {
+ private OutboundInvocationChain chain;
+ private Object fromAddress;
+ private boolean contractHasCallback;
+
+ public CompositeTargetInvoker(Operation operation, OutboundWire outboundWire) {
+ assert operation != null;
+ chain = outboundWire.getInvocationChains().get(operation);
+ fromAddress = (outboundWire.getContainer() == null) ? null : outboundWire.getContainer().getName();
+ contractHasCallback = outboundWire.getServiceContract().getCallbackClass() != null;
+ }
+
+ @Override
+ public CompositeTargetInvoker clone() throws CloneNotSupportedException {
+ return (CompositeTargetInvoker) super.clone();
+ }
+
+ public Message invoke(Message msg) throws InvocationRuntimeException {
+ try {
+ TargetInvoker invoker = chain.getTargetInvoker();
+ // Pushing the from address only needs to happen in the outbound (forward) direction for callbacks
+ if (contractHasCallback) {
+ msg.pushFromAddress(fromAddress);
+ }
+
+ return invoke(chain, invoker, msg);
+ } catch (Throwable e) {
+ Message faultMsg = new MessageImpl();
+ faultMsg.setBodyWithFault(e);
+ return faultMsg;
+ }
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/CompositeTargetInvoker.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: 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=auto&rev=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java Sat Dec 30 13:42:22 2006
@@ -0,0 +1,55 @@
+/*
+ * 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.binding.local;
+
+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.ServiceBinding;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.extension.BindingBuilderExtension;
+import org.apache.tuscany.spi.model.BoundReferenceDefinition;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
+
+/**
+ * Creates runtime artifacts for the local binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class LocalBindingBuilder extends BindingBuilderExtension<LocalBindingDefinition> {
+
+ protected Class<LocalBindingDefinition> getBindingType() {
+ return LocalBindingDefinition.class;
+ }
+
+ public ServiceBinding build(CompositeComponent parent,
+ BoundServiceDefinition boundServiceDefinition,
+ LocalBindingDefinition bindingDefinition,
+ DeploymentContext deploymentContext)
+ throws BuilderException {
+ return new LocalServiceBinding(boundServiceDefinition.getName(), parent);
+ }
+
+
+ public Reference build(CompositeComponent parent,
+ BoundReferenceDefinition<LocalBindingDefinition> boundReferenceDefinition,
+ DeploymentContext deploymentContext) throws BuilderException {
+ throw new UnsupportedOperationException();
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingBuilder.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: 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=auto&rev=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java Sat Dec 30 13:42:22 2006
@@ -0,0 +1,31 @@
+/*
+ * 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.binding.local;
+
+import org.apache.tuscany.spi.model.BindingDefinition;
+
+
+/**
+ * Represents the local by-reference binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class LocalBindingDefinition extends BindingDefinition {
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingDefinition.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: 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=auto&rev=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java Sat Dec 30 13:42:22 2006
@@ -0,0 +1,50 @@
+/*
+ * 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.binding.local;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.loader.StAXElementLoader;
+import org.apache.tuscany.spi.model.ModelObject;
+
+/**
+ * Loader responsible for handling the local binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class LocalBindingLoader implements StAXElementLoader {
+ private static final String NS = "http://tuscany.apache.org/xmlns/1.0-SNAPSHOT";
+ private static final QName BINDING = new QName(NS, "binding.local");
+
+ public QName getXMLType() {
+ return BINDING;
+ }
+
+ public ModelObject load(CompositeComponent parent,
+ ModelObject object,
+ XMLStreamReader reader,
+ DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+ return new LocalBindingDefinition();
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalBindingLoader.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: 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=auto&rev=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java Sat Dec 30 13:42:22 2006
@@ -0,0 +1,45 @@
+/*
+ * 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.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.ServiceBindingExtension;
+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 binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class LocalServiceBinding extends ServiceBindingExtension {
+
+ public LocalServiceBinding(String name, CompositeComponent parent) throws CoreRuntimeException {
+ super(name, parent);
+ }
+
+ public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
+ throws TargetInvokerCreationException {
+ return new CompositeTargetInvoker(operation, outboundWire);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalServiceBinding.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=491325&r1=491324&r2=491325
==============================================================================
--- 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 Sat Dec 30 13:42:22 2006
@@ -18,13 +18,11 @@
*/
package org.apache.tuscany.core.builder;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
+import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BindingBuilder;
@@ -32,15 +30,16 @@
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.ComponentBuilder;
+import org.apache.tuscany.spi.builder.MissingWireTargetException;
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.ScopeRegistry;
import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.model.BindingDefinition;
-import org.apache.tuscany.spi.model.BindlessServiceDefinition;
import org.apache.tuscany.spi.model.BoundReferenceDefinition;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
@@ -50,12 +49,13 @@
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.core.implementation.composite.ServiceImpl;
+
/**
* The default builder registry in the runtime
*
* @version $Rev$ $Date$
*/
-@Scope("COMPOSITE")
public class BuilderRegistryImpl implements BuilderRegistry {
protected WireService wireService;
protected ScopeRegistry scopeRegistry;
@@ -97,24 +97,6 @@
componentBuilders.remove(implClass);
}
- @SuppressWarnings("unchecked")
- public <B extends BindingDefinition> void register(BindingBuilder<B> builder) {
- Type[] interfaces = builder.getClass().getGenericInterfaces();
- for (Type type : interfaces) {
- if (!(type instanceof ParameterizedType)) {
- continue;
- }
- ParameterizedType interfaceType = (ParameterizedType) type;
- if (!BindingBuilder.class.equals(interfaceType.getRawType())) {
- continue;
- }
- Class<B> implClass = (Class<B>) interfaceType.getActualTypeArguments()[0];
- register(implClass, builder);
- return;
- }
- throw new IllegalArgumentException("builder is not generified");
- }
-
public <B extends BindingDefinition> void register(Class<B> implClass, BindingBuilder<B> builder) {
bindingBuilders.put(implClass, builder);
}
@@ -149,28 +131,41 @@
}
}
- @SuppressWarnings("unchecked")
- public <B extends BindingDefinition> SCAObject build(CompositeComponent parent,
- BoundServiceDefinition<B> boundServiceDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
- Class<?> bindingClass = boundServiceDefinition.getBinding().getClass();
- BindingBuilder<B> bindingBuilder = (BindingBuilder<B>) bindingBuilders.get(bindingClass);
- if (bindingBuilder == null) {
- throw new NoRegisteredBuilderException("No builder registered for type", bindingClass.getName());
- }
- SCAObject object = bindingBuilder.build(parent, boundServiceDefinition, deploymentContext);
- if (wireService != null) {
- String path = boundServiceDefinition.getTarget().getPath();
- ServiceContract<?> contract = boundServiceDefinition.getServiceContract();
- wireService.createWires((Service) object, path, contract);
+ @SuppressWarnings({"unchecked"})
+ public Service build(CompositeComponent parent,
+ BoundServiceDefinition boundServiceDefinition,
+ DeploymentContext deploymentContext) throws BuilderException {
+ String name = boundServiceDefinition.getName();
+ ServiceContract<?> serviceContract = boundServiceDefinition.getServiceContract();
+ boolean system = parent.isSystem();
+ URI targetUri = boundServiceDefinition.getTarget();
+ Service service = new ServiceImpl(name, parent, serviceContract, targetUri, system);
+ for (BindingDefinition definition : boundServiceDefinition.getBindings()) {
+ Class<?> bindingClass = definition.getClass();
+ BindingBuilder bindingBuilder = bindingBuilders.get(bindingClass);
+ if (bindingBuilder == null) {
+ throw new NoRegisteredBuilderException("No builder registered for type", bindingClass.getName());
+ }
+ ServiceBinding binding =
+ bindingBuilder.build(parent, boundServiceDefinition, definition, deploymentContext);
+ if (wireService != null) {
+ URI uri = boundServiceDefinition.getTarget();
+ if (uri == null) {
+ throw new MissingWireTargetException("Service uri not specified");
+ }
+ String path = uri.getPath();
+ ServiceContract<?> contract = boundServiceDefinition.getServiceContract();
+ wireService.createWires(binding, path, contract);
+ }
+ service.addServiceBinding(binding);
}
- return object;
+ return service;
}
@SuppressWarnings("unchecked")
public <B extends BindingDefinition> SCAObject build(CompositeComponent parent,
- BoundReferenceDefinition<B> boundReferenceDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
+ 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;
@@ -178,18 +173,6 @@
// create wires for the component
if (wireService != null) {
wireService.createWires((Reference) object, boundReferenceDefinition.getServiceContract());
- }
- return object;
- }
-
- public SCAObject build(CompositeComponent parent,
- BindlessServiceDefinition serviceDefinition,
- DeploymentContext deploymentContext) {
- SCAObject object = bindlessBuilder.build(parent, serviceDefinition, deploymentContext);
- if (wireService != null) {
- String path = serviceDefinition.getTarget().getPath();
- ServiceContract<?> contract = serviceDefinition.getServiceContract();
- wireService.createWires((Service) object, path, contract);
}
return object;
}
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=491325&r1=491324&r2=491325
==============================================================================
--- 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 Sat Dec 30 13:42:22 2006
@@ -33,6 +33,7 @@
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.component.WorkContext;
@@ -52,7 +53,6 @@
import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.core.implementation.composite.CompositeReference;
-import org.apache.tuscany.core.implementation.composite.CompositeService;
import org.apache.tuscany.core.wire.LoopBackWire;
import org.apache.tuscany.core.wire.NonBlockingBridgingInterceptor;
import org.apache.tuscany.core.wire.SynchronousBridgingInterceptor;
@@ -89,6 +89,8 @@
handleReference((Reference) source);
} else if (source instanceof Service) {
handleService((Service) source);
+ } else {
+ throw new AssertionError("Invalid source type");
}
}
@@ -168,7 +170,7 @@
sourceWire,
targetWire);
}
- TargetInvoker invoker = null;
+ TargetInvoker invoker;
if (target instanceof Component) {
Component component = (Component) target;
QualifiedName wireTargetName = sourceWire.getTargetName();
@@ -189,21 +191,28 @@
String targetName = targetWire.getContainer().getName();
throw new WireConnectException("Error processing inbound wire", null, null, targetName, null, e);
}
- } else if (target instanceof CompositeService) {
- CompositeService compServ = (CompositeService) target;
- invoker = compServ.createTargetInvoker(targetWire.getServiceContract(), inboundChain.getOperation());
+ } else if (target instanceof ServiceBinding) {
+ ServiceBinding binding = (ServiceBinding) target;
+ try {
+ invoker = binding.createTargetInvoker(targetWire.getServiceContract(), inboundChain.getOperation());
+ } catch (TargetInvokerCreationException e) {
+ String targetName = targetWire.getContainer().getName();
+ throw new WireConnectException("Error processing inbound wire", null, null, targetName, null, e);
+ }
+ } else {
+ throw new AssertionError();
}
- if (source instanceof Service) { //&& !(source instanceof CompositeService)) {
- // services are a special case: invoker must go on the inbound chain
+ if (source instanceof ServiceBinding) {
+ // services are a special case: invoker must go on the inbound and outbound chains
if (target instanceof Component && (isOneWayOperation || operationHasCallback)) {
// if the target is a component and the operation is non-blocking
connect(outboundChain, inboundChain, invoker, true);
} else {
connect(outboundChain, inboundChain, invoker, false);
}
- Service service = (Service) source;
- InboundInvocationChain chain = service.getInboundWire().getInvocationChains().get(operation);
+ ServiceBinding binding = (ServiceBinding) source;
+ InboundInvocationChain chain = binding.getInboundWire().getInvocationChains().get(operation);
chain.setTargetInvoker(invoker);
} else {
if (target instanceof Component && (isOneWayOperation || operationHasCallback)) {
@@ -252,14 +261,21 @@
} else if (source instanceof Service) {
Service service = (Service) source;
ServiceContract sourceContract = sourceWire.getServiceContract();
- TargetInvoker invoker;
- try {
- invoker = service.createCallbackTargetInvoker(sourceContract, operation);
- } catch (TargetInvokerCreationException e) {
- String targetName = sourceWire.getContainer().getName();
- throw new WireConnectException("Error processing callback wire", null, null, targetName, null, e);
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ TargetInvoker invoker;
+ try {
+ invoker = binding.createCallbackTargetInvoker(sourceContract, operation);
+ } catch (TargetInvokerCreationException e) {
+ String targetName = sourceWire.getContainer().getName();
+ throw new WireConnectException("Error processing callback wire",
+ null,
+ null,
+ targetName,
+ null,
+ e);
+ }
+ connect(outboundChain, inboundChain, invoker, false);
}
- connect(outboundChain, inboundChain, invoker, false);
}
}
if (postProcessorRegistry != null) {
@@ -276,10 +292,10 @@
* @param invoker the invoker to place on the source chain for dispatching invocations
* @param nonBlocking true if the operation is non-blocking
*/
- void connect(OutboundInvocationChain sourceChain,
- InboundInvocationChain targetChain,
- TargetInvoker invoker,
- boolean nonBlocking) {
+ protected void connect(OutboundInvocationChain sourceChain,
+ InboundInvocationChain targetChain,
+ TargetInvoker invoker,
+ boolean nonBlocking) {
Interceptor head = targetChain.getHeadInterceptor();
assert head != null;
if (nonBlocking) {
@@ -298,36 +314,35 @@
* @param sourceChain the source chain to connect
* @param targetChain the target chain to connect
*/
- void connect(InboundInvocationChain sourceChain, OutboundInvocationChain targetChain) {
- // invocations from inbound to outbound chains are always syncrhonius as they occur in services and references
+ protected void connect(InboundInvocationChain sourceChain, OutboundInvocationChain targetChain) {
+ // invocations from inbound to outbound chains are always synchronous as they occur in services and references
sourceChain.addInterceptor(new SynchronousBridgingInterceptor(targetChain.getHeadInterceptor()));
}
/**
- * Connects wires for a service
+ * Connects wires from a service to a target
*
* @param service the service
- * @throws WiringException
+ * @throws WiringException if an exception connecting the service wires is encountered
*/
private void handleService(Service service) throws WiringException {
CompositeComponent parent = service.getParent();
- InboundWire inboundWire = service.getInboundWire();
- OutboundWire outboundWire = service.getOutboundWire();
- // 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
- SCAObject target;
- if (service.isSystem()) {
- target = parent.getSystemChild(outboundWire.getTargetName().getPartName());
- } else {
- target = parent.getChild(outboundWire.getTargetName().getPartName());
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ InboundWire inboundWire = binding.getInboundWire();
+ OutboundWire outboundWire = binding.getOutboundWire();
+ // 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
+ SCAObject target;
+ if (service.isSystem()) {
+ target = parent.getSystemChild(outboundWire.getTargetName().getPartName());
+ } else {
+ target = parent.getChild(outboundWire.getTargetName().getPartName());
+ }
+ // connect the outbound service wire to the target
+ connect(binding, outboundWire, target);
+ // NB: this connect must be done after the outbound service chain is connected to its target above
+ connect(inboundWire, outboundWire, true);
}
- // connect the outbound service wire to the target
- connect(service, outboundWire, target);
- // NB: this connect must be done after the outbound service chain is connected to its target above
- // if (!(service instanceof CompositeService)) {
- //REVIEW JFM: do we need this to be special for composites?
- connect(inboundWire, outboundWire, true);
- // }
}
private void handleReference(Reference reference) throws WiringException {
@@ -400,7 +415,7 @@
}
}
// connect inbound wires
- for (InboundWire inboundWire : sourceComponent.getInboundWires().values()) {
+ for (InboundWire inboundWire : sourceComponent.getInboundWires()) {
for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
Operation<?> operation = chain.getOperation();
String serviceName = inboundWire.getServiceName();
@@ -423,13 +438,12 @@
}
/**
- * Connects an component's outbound wire to its target in a composite. Valid targets are either component services
- * or references.
+ * Connects an outbound wire to its target in a composite. Valid targets are services and references.
*
* @param sourceWire the source wire to connect
* @throws WiringException
*/
- private void connect(SCAObject source, OutboundWire sourceWire, SCAObject target) throws WiringException {
+ protected void connect(SCAObject source, OutboundWire sourceWire, SCAObject target) throws WiringException {
assert sourceWire.getTargetName() != null;
QualifiedName targetName = sourceWire.getTargetName();
@@ -457,16 +471,27 @@
} else if (target instanceof CompositeComponent) {
CompositeComponent composite = (CompositeComponent) target;
InboundWire targetWire = null;
+ // target is a composite service, connect to it
if (source.isSystem()) {
for (Object child : composite.getSystemChildren()) {
- if (child instanceof CompositeService) {
- CompositeService compServ = (CompositeService) child;
- targetWire = compServ.getInboundWire();
- assert targetWire != null;
+ if (child instanceof Service) {
+ Service service = (Service) child;
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ 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());
+ }
Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
if (sourceInterface.isAssignableFrom(targetInterface)) {
- target = compServ;
+ target = service;
break;
} else {
targetWire = null;
@@ -475,14 +500,24 @@
}
} else {
for (Object child : composite.getChildren()) {
- if (child instanceof CompositeService) {
- CompositeService compServ = (CompositeService) child;
- targetWire = compServ.getInboundWire();
- assert targetWire != null;
+ if (child instanceof Service) {
+ Service service = (Service) child;
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ 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());
+ }
Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
if (sourceInterface.isAssignableFrom(targetInterface)) {
- target = compServ;
+ target = service;
break;
} else {
targetWire = null;
@@ -520,7 +555,7 @@
}
}
- private void autowire(OutboundWire outboundWire, CompositeComponent parent)
+ protected void autowire(OutboundWire outboundWire, CompositeComponent parent)
throws WiringException {
// JFM FIXME test
InboundWire targetWire;
@@ -542,8 +577,9 @@
}
} catch (TargetResolutionException e) {
String sourceReference = outboundWire.getReferenceName();
+ String sourceName = outboundWire.getContainer().getName();
throw new WireConnectException("Error resolving autowire target",
- outboundWire.getContainer().getName(),
+ sourceName,
sourceReference,
null,
null,
@@ -561,7 +597,7 @@
connect(outboundWire, targetWire, optimizable);
}
- private void checkIfWireable(OutboundWire sourceWire, InboundWire targetWire)
+ protected void checkIfWireable(OutboundWire sourceWire, InboundWire targetWire)
throws IncompatibleInterfacesException {
if (wireService == null) {
Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
@@ -580,7 +616,7 @@
}
}
- private boolean isOptimizable(Scope pReferrer, Scope pReferee) {
+ protected boolean isOptimizable(Scope pReferrer, Scope pReferee) {
if (pReferrer == Scope.UNDEFINED || pReferee == Scope.UNDEFINED) {
return false;
}
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java?view=auto&rev=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java Sat Dec 30 13:42:22 2006
@@ -0,0 +1,36 @@
+/*
+ * 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.builder;
+
+import org.apache.tuscany.spi.builder.WiringException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class NoCompatibleBindingsException extends WiringException {
+ public NoCompatibleBindingsException(String sourceName,
+ String targetName,
+ String serviceName) {
+ super("No compatible bindings for source and target");
+ setSourceName(sourceName);
+ setTargetName(targetName);
+ setTargetServiceName(serviceName);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoCompatibleBindingsException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
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=491325&r1=491324&r2=491325
==============================================================================
--- 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 Sat Dec 30 13:42:22 2006
@@ -25,7 +25,6 @@
import org.osoa.sca.annotations.Constructor;
import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.wire.WirePostProcessorExtension;
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.databinding.Mediator;
@@ -36,10 +35,13 @@
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WirePostProcessorExtension;
/**
- * This processor is responsible to add an interceptor to invocation chain if
- * the source and target operations have different databinding requirements
+ * This processor is responsible to add an interceptor to invocation chain if the source and target operations have
+ * different databinding requirements
+ *
+ * @version $Rev$ $Date$
*/
public class DataBindingWirePostProcessor extends WirePostProcessorExtension {
private Mediator mediator;
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java?view=diff&rev=491325&r1=491324&r2=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBindlessBuilder.java Sat Dec 30 13:42:22 2006
@@ -25,9 +25,7 @@
import org.apache.tuscany.spi.builder.BuilderRegistry;
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.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.BindlessServiceDefinition;
import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.wire.WireService;
@@ -35,6 +33,7 @@
* The default implementation f a {@link BindlessBuilder} for a composite
*
* @version $Rev$ $Date$
+ * @deprecated
*/
public class CompositeBindlessBuilder implements BindlessBuilder {
@@ -54,12 +53,6 @@
@Init(eager = true)
public void init() {
builderRegistry.register(this);
- }
-
- public Service build(CompositeComponent parent,
- BindlessServiceDefinition definition,
- DeploymentContext deploymentContext) {
- return new CompositeService(definition.getName(), parent);
}
public Reference build(CompositeComponent parent,
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=491325&r1=491324&r2=491325
==============================================================================
--- 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 Sat Dec 30 13:42:22 2006
@@ -26,10 +26,11 @@
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.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.BindlessServiceDefinition;
import org.apache.tuscany.spi.model.BoundReferenceDefinition;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
@@ -46,76 +47,61 @@
*/
public class CompositeBuilder extends ComponentBuilderExtension<CompositeImplementation> {
+ @SuppressWarnings("unchecked")
public Component build(CompositeComponent parent,
ComponentDefinition<CompositeImplementation> componentDefinition,
DeploymentContext deploymentContext) throws BuilderException {
CompositeImplementation implementation = componentDefinition.getImplementation();
CompositeComponentType<?, ?, ?> componentType = implementation.getComponentType();
+ String name = componentDefinition.getName();
+ CompositeComponentImpl component = new CompositeComponentImpl(name, parent, connector, null);
- // create lists of all components, services and references in this composite
- List<ComponentDefinition<? extends Implementation<?>>> allComponents =
- new ArrayList<ComponentDefinition<? extends Implementation<?>>>();
- allComponents.addAll(componentType.getComponents().values());
-
- List<BoundServiceDefinition<? extends BindingDefinition>> allBoundServices =
- new ArrayList<BoundServiceDefinition<? extends BindingDefinition>>();
- List<BindlessServiceDefinition> allBindlessServices = new ArrayList<BindlessServiceDefinition>();
- for (ServiceDefinition serviceDefinition : componentType.getServices().values()) {
- if (serviceDefinition instanceof BoundServiceDefinition) {
- BoundServiceDefinition<? extends BindingDefinition> boundService =
- (BoundServiceDefinition<? extends BindingDefinition>) serviceDefinition;
- allBoundServices.add(boundService);
- } else if (serviceDefinition instanceof BindlessServiceDefinition) {
- allBindlessServices.add((BindlessServiceDefinition) serviceDefinition);
- }
- }
-
- // FIXME is this right?
- List<BoundReferenceDefinition<? extends BindingDefinition>> allBoundReferences =
+ 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<?>) {
- allBoundReferences.add((BoundReferenceDefinition<? extends BindingDefinition>) referenceTarget);
+ boundReferences.add((BoundReferenceDefinition<? extends BindingDefinition>) referenceTarget);
} else if (referenceTarget instanceof ReferenceDefinition) {
allTargetlessReferences.add((ReferenceDefinition) referenceTarget);
}
}
- String name = componentDefinition.getName();
- CompositeComponentImpl component = new CompositeComponentImpl(name, parent, connector, null);
- for (BoundReferenceDefinition<? extends BindingDefinition> referenceDefinition : allBoundReferences) {
+ for (ComponentDefinition<? extends Implementation<?>> definition : componentType.getComponents().values()) {
try {
- component.register(builderRegistry.build(component, referenceDefinition, deploymentContext));
+ Component child = builderRegistry.build(component, definition, deploymentContext);
+ component.register(child);
} catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering reference", e);
+ throw new BuilderInstantiationException("Error registering component", e);
}
}
- for (BindlessServiceDefinition bindlessServiceDef : allBindlessServices) {
+ for (ServiceDefinition definition : componentType.getServices().values()) {
try {
- component.register(builderRegistry.build(component, bindlessServiceDef, deploymentContext));
+ if (definition instanceof BoundServiceDefinition) {
+ BoundServiceDefinition bsd = (BoundServiceDefinition) definition;
+ Service service = builderRegistry.build(component, bsd, deploymentContext);
+ component.register(service);
+ } else {
+ throw new UnsupportedOperationException();
+ }
} catch (ComponentRegistrationException e) {
throw new BuilderInstantiationException("Error registering service", e);
}
}
- for (ComponentDefinition<? extends Implementation<?>> child : allComponents) {
- try {
- component.register(builderRegistry.build(component, child, deploymentContext));
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering component", e);
- }
- }
- for (BoundServiceDefinition<? extends BindingDefinition> serviceDefinition : allBoundServices) {
+ for (BoundReferenceDefinition<? extends BindingDefinition> definition : boundReferences) {
try {
- component.register(builderRegistry.build(component, serviceDefinition, deploymentContext));
+ SCAObject child = builderRegistry.build(component, definition, deploymentContext);
+ component.register(child);
} catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering service", e);
+ throw new BuilderInstantiationException("Error registering reference", e);
}
}
- for (ReferenceDefinition targetlessReferenceDef : allTargetlessReferences) {
+ // TODO JFM remove need for targetless references
+ for (ReferenceDefinition definition : allTargetlessReferences) {
try {
- component.register(builderRegistry.build(component, targetlessReferenceDef, deploymentContext));
+ SCAObject child = builderRegistry.build(component, definition, deploymentContext);
+ component.register(child);
} catch (ComponentRegistrationException e) {
throw new BuilderInstantiationException("Error registering reference", e);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java?view=diff&rev=491325&r1=491324&r2=491325
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java Sat Dec 30 13:42:22 2006
@@ -40,7 +40,6 @@
import org.apache.tuscany.spi.loader.InvalidWireException;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.model.BindlessServiceDefinition;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
@@ -51,7 +50,6 @@
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
-import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.model.WireDefinition;
import org.apache.tuscany.spi.services.artifact.Artifact;
@@ -90,7 +88,7 @@
while (!done) {
switch (reader.next()) {
case START_ELEMENT:
- ModelObject o = registry.load(parent, null, reader, deploymentContext);
+ ModelObject o = registry.load(parent, composite, reader, deploymentContext);
if (o instanceof ServiceDefinition) {
composite.add((ServiceDefinition) o);
} else if (o instanceof ReferenceDefinition) {
@@ -122,7 +120,7 @@
} else if (o instanceof WireDefinition) {
composite.add((WireDefinition) o);
} else {
- // HACK: [rfeng] Add as an unknown model extension
+ // add as an unknown model extension
if (o != null) {
composite.getExtensions().put(o.getClass(), o);
}
@@ -161,14 +159,6 @@
if (serviceDefinition != null) {
if (serviceDefinition instanceof BoundServiceDefinition) {
((BoundServiceDefinition) serviceDefinition).setTarget(wire.getTarget());
- } else if (serviceDefinition instanceof BindlessServiceDefinition) {
- ((BindlessServiceDefinition) serviceDefinition).setTarget(wire.getTarget());
- } else {
- ServiceContract<?> contract = serviceDefinition.getServiceContract();
- String name = serviceDefinition.getName();
- BindlessServiceDefinition bindlessSvcDefn =
- new BindlessServiceDefinition(name, contract, false, targetUri);
- composite.getDeclaredServices().put(sourceName.getPartName(), bindlessSvcDefn);
}
} else {
componentDefinition = composite.getDeclaredComponents().get(sourceName.getPartName());
@@ -208,7 +198,7 @@
protected void verifyCompositeCompleteness(
CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite)
throws InvalidServiceException {
- // check if all of the composites services have been wired
+ // check if all of the composite services have been wired
for (ServiceDefinition svcDefn : composite.getDeclaredServices().values()) {
if (svcDefn instanceof BoundServiceDefinition && ((BoundServiceDefinition) svcDefn).getTarget() == null) {
throw new InvalidServiceException("Composite service not wired to a target", svcDefn.getName());
Modified: 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/CompositeReference.java?view=diff&rev=491325&r1=491324&r2=491325
==============================================================================
--- 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/CompositeReference.java Sat Dec 30 13:42:22 2006
@@ -20,6 +20,7 @@
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.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.TargetInvoker;
Modified: 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/implementation/composite/CompositeReferenceCallbackTargetInvoker.java?view=diff&rev=491325&r1=491324&r2=491325
==============================================================================
--- 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/implementation/composite/CompositeReferenceCallbackTargetInvoker.java Sat Dec 30 13:42:22 2006
@@ -27,14 +27,14 @@
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 AbstractCompositeReferenceTargetInvoker {
-
+public class CompositeReferenceCallbackTargetInvoker extends AbstractCompositeTargetInvoker {
private Operation operation;
private InboundWire inboundWire;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org