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 2007/02/17 09:35:25 UTC
svn commit: r508732 [1/8] - 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/bootstrap/
kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/...
Author: jmarino
Date: Sat Feb 17 00:35:19 2007
New Revision: 508732
URL: http://svn.apache.org/viewvc?view=rev&rev=508732
Log:
wire refactoring to use a single wire type and removal of inbound/outbound specializations
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetComponentNotFoundException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidSourceTypeException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoBindingException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/SourceServiceNotFoundException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingBridgingInterceptor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandler.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/WireToScopedJavaTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/InvocationHandlerTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/OutboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingBridgingInterceptorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireImplTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/OutboundWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerProxyTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandlerProxyTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerSerializationTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandlerSerializationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Invocable.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInvocationHandler.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ChainHolder.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInvocationHandlerTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/ChainHolderTestCase.java (contents, props changed)
- copied, changed from r507339, incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/OutboundChainHolderTestCase.java
Removed:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetComponentNotFoundException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WireConnectException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/AbstractInvocationChain.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/BridgingInterceptor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InboundInvocationChainImpl.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/NonBlockingBridgingInterceptor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OutboundInvocationChainImpl.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/SynchronousBridgingInterceptor.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/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandler.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AbstractConnectorImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorPostProcessTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InboundtoOutboundConnectTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/NonBlockingForwardNonBlockingCallbackConnectionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/NonBlockingForwardSyncCallbackConnectionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/OutboundToInboundConnectTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/SynchronousForwardCallbackConnectionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/SystemWireConnectionTestCase.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/CompositeComponentImplBasicTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/InboundInvocationErrorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingBridgingInterceptorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/OutboundInvocationErrorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/OutboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/OutboundWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/SynchronousBridgingInterceptorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireServiceExtensionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandlerSerializationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandlerProxyTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandlerSerializationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/OutboundChainHolderTestCase.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java
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/LocalCallbackTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.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/binding/local/LocalTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.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/builder/WirePostProcessorRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentContextImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ServiceReferenceImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/WorkContextImpl.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/databinding/impl/PassByValueWirePostProcessor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.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/composite/SystemSingletonAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaTargetInvoker.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/injection/CallbackWireObjectFactory.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/policy/PolicyBuilderRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/CallbackInterfaceInterceptor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OptimizedWireObjectFactory.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireObjectFactory.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/WireUtils.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/JDKWireService.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerInvocationExceptionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvokerThrowableTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AtomicConnectorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.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/builder/ReferenceConnectorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WirePostProcessorRegistryImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingInterceptorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorOptimizationTestCase.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/databinding/impl/PassByValueWirePostProcessorTestCase.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/PojoAtomicComponentTestCase.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/CompositeComponentImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ReferenceImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ServiceImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderReferenceTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderResourceTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaReferenceWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerBasicInvocationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerNonBlockingInvocationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/ResourceInjectionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/CallbackInvocationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderResourceTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentWireInvocationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/injection/CallbackWireObjectFactoryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/injection/ResourceObjectFactoryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/AbstractConversationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/ConversationIdleExpireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/ConversationMaxAgeExpireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/ConversationStartStopEndTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/mock/MockFactory.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/scope/ScopeReferenceTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/wire/DifferentInterfaceWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/wire/oneway/OneWayWireToJavaInvocationTestCase.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/mock/binding/MockServiceBinding.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/BasicReferenceInvocationHandlerTestCase.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/InvocationConfigurationErrorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/InvocationConfigurationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/OptimizedWireObjectFactoryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireObjectFactoryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireOptimizationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireUtilsTestCase.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/JDKCallbackInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKProxyTestCase.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/component/ReferenceBinding.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/component/WorkContext.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/extension/ReferenceBindingExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.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/WirePostProcessor.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/AtomicComponentExtensionTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtensionTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtensionTestCase.java
incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java
incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappComponent.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.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=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/AbstractLocalTargetInvoker.java Sat Feb 17 00:35:19 2007
@@ -21,9 +21,9 @@
import java.lang.reflect.InvocationTargetException;
import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.TargetInvoker;
/**
@@ -50,7 +50,7 @@
throw new InvocationTargetException(new UnsupportedOperationException());
}
- protected Message invoke(OutboundInvocationChain chain, TargetInvoker invoker, Message msg) throws Throwable {
+ protected Message invoke(InvocationChain chain, TargetInvoker invoker, Message msg) throws Throwable {
Interceptor headInterceptor = chain.getHeadInterceptor();
if (headInterceptor == null) {
try {
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=508732&r1=508731&r2=508732
==============================================================================
--- 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 Sat Feb 17 00:35:19 2007
@@ -43,7 +43,7 @@
LocalBindingDefinition bindingDefinition,
DeploymentContext deploymentContext)
throws BuilderException {
- return new LocalServiceBinding(serviceDefinition.getUri(), parent);
+ return new LocalServiceBinding(serviceDefinition.getUri());
}
@@ -51,6 +51,6 @@
ReferenceDefinition referenceDefinition,
LocalBindingDefinition bindingDefinition,
DeploymentContext deploymentContext) throws BuilderException {
- return new LocalReferenceBinding(referenceDefinition.getUri());
+ return new LocalReferenceBinding(referenceDefinition.getUri(), bindingDefinition.getTargetUri());
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.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=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalCallbackTargetInvoker.java Sat Feb 17 00:35:19 2007
@@ -19,15 +19,14 @@
package org.apache.tuscany.core.binding.local;
import java.util.Map;
-import java.net.URI;
import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.InvocationChain;
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.TargetInvoker;
+import org.apache.tuscany.spi.wire.Wire;
/**
* Dispatches a callback invocation to the callback instance
@@ -36,12 +35,12 @@
*/
public class LocalCallbackTargetInvoker extends AbstractLocalTargetInvoker {
private Operation operation;
- private InboundWire inboundWire;
+ private Wire wire;
- public LocalCallbackTargetInvoker(Operation operation, InboundWire inboundWire) {
+ public LocalCallbackTargetInvoker(Operation operation, Wire wire) {
assert operation != null : "Operation method cannot be null";
this.operation = operation;
- this.inboundWire = inboundWire;
+ this.wire = wire;
}
public Message invoke(Message msg) throws InvocationRuntimeException {
@@ -55,14 +54,9 @@
}
private Message invoke(Operation operation, Message msg) throws Throwable {
- URI targetAddress = msg.popFromAddress();
- if (targetAddress == null) {
- throw new AssertionError("Popped a null from address from message");
- }
//TODO optimize as this is slow in local invocations
- Map<Operation<?>, OutboundInvocationChain> sourceCallbackInvocationChains =
- inboundWire.getSourceCallbackInvocationChains(targetAddress);
- OutboundInvocationChain chain = sourceCallbackInvocationChains.get(operation);
+ Map<Operation<?>, InvocationChain> chains = wire.getCallbackInvocationChains();
+ InvocationChain chain = chains.get(operation);
TargetInvoker invoker = chain.getTargetInvoker();
return invoke(chain, invoker, msg);
}
Modified: 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=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalReferenceBinding.java Sat Feb 17 00:35:19 2007
@@ -25,7 +25,6 @@
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;
import org.apache.tuscany.spi.wire.Wire;
@@ -36,26 +35,21 @@
*/
public class LocalReferenceBinding extends ReferenceBindingExtension {
- public LocalReferenceBinding(URI name) throws CoreRuntimeException {
- super(name);
+ public LocalReferenceBinding(URI name, URI targetUri) throws CoreRuntimeException {
+ super(name, targetUri);
}
public QName getBindingType() {
return Wire.LOCAL_BINDING;
}
- public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
+ public TargetInvoker createTargetInvoker(String name, Operation operation)
throws TargetInvokerCreationException {
if (operation.isCallback()) {
- return new LocalCallbackTargetInvoker(operation, inboundWire);
+ return new LocalCallbackTargetInvoker(operation, wire);
} else {
- return new LocalTargetInvoker(operation, outboundWire);
+ return new LocalTargetInvoker(operation, wire);
}
- }
-
- public TargetInvoker createCallbackTargetInvoker(ServiceContract contract, Operation operation)
- throws TargetInvokerCreationException {
- return new LocalCallbackTargetInvoker(operation, inboundWire);
}
}
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=508732&r1=508731&r2=508732
==============================================================================
--- 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 Sat Feb 17 00:35:19 2007
@@ -22,11 +22,9 @@
import javax.xml.namespace.QName;
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;
import org.apache.tuscany.spi.wire.Wire;
@@ -37,20 +35,20 @@
*/
public class LocalServiceBinding extends ServiceBindingExtension {
- public LocalServiceBinding(URI name, CompositeComponent parent) throws CoreRuntimeException {
- super(name, parent);
+ public LocalServiceBinding(URI name) throws CoreRuntimeException {
+ super(name);
}
public QName getBindingType() {
return Wire.LOCAL_BINDING;
}
- public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
+ public TargetInvoker createTargetInvoker(String name, Operation operation)
throws TargetInvokerCreationException {
if (operation.isCallback()) {
- return new LocalCallbackTargetInvoker(operation, getInboundWire());
+ return new LocalCallbackTargetInvoker(operation, getWire());
} else {
- return new LocalTargetInvoker(operation, outboundWire);
+ return new LocalTargetInvoker(operation, getWire());
}
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.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=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/binding/local/LocalTargetInvoker.java Sat Feb 17 00:35:19 2007
@@ -22,12 +22,12 @@
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.util.UriHelper;
+import org.apache.tuscany.spi.wire.InvocationChain;
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;
+import org.apache.tuscany.spi.wire.Wire;
/**
* Dispatches an invocation through a composite service or reference using the local binding
@@ -35,18 +35,18 @@
* @version $Rev$ $Date$
*/
public class LocalTargetInvoker extends AbstractLocalTargetInvoker {
- private OutboundInvocationChain chain;
+ private InvocationChain chain;
private URI fromAddress;
private boolean contractHasCallback;
- public LocalTargetInvoker(Operation operation, OutboundWire outboundWire) {
+ public LocalTargetInvoker(Operation operation, Wire wire) {
assert operation != null;
- chain = outboundWire.getOutboundInvocationChains().get(operation);
+ chain = wire.getInvocationChains().get(operation);
assert chain != null;
- if (outboundWire.getSourceUri() != null) {
- fromAddress = URI.create(UriHelper.getBaseName(outboundWire.getSourceUri()));
+ if (wire.getSourceUri() != null) {
+ fromAddress = URI.create(UriHelper.getBaseName(wire.getSourceUri()));
}
- contractHasCallback = outboundWire.getServiceContract().getCallbackClass() != null;
+ contractHasCallback = !wire.getCallbackInvocationChains().isEmpty();
}
@Override
@@ -60,7 +60,8 @@
assert invoker != null;
// Pushing the from address only needs to happen in the outbound (forward) direction for callbacks
if (contractHasCallback) {
- msg.pushFromAddress(fromAddress);
+ //JFM do we need this?
+ msg.pushCallbackUri(fromAddress);
}
return invoke(chain, invoker, msg);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Sat Feb 17 00:35:19 2007
@@ -78,7 +78,6 @@
import org.apache.tuscany.core.loader.ServiceLoader;
import org.apache.tuscany.core.property.PropertyObjectFactoryImpl;
import org.apache.tuscany.core.resolver.AutowireResolver;
-import org.apache.tuscany.core.wire.jdk.JDKWireService;
import org.apache.tuscany.host.MonitorFactory;
/**
@@ -153,7 +152,7 @@
JavaInterfaceProcessorRegistry interfaceIntrospector = new JavaInterfaceProcessorRegistryImpl();
Introspector introspector = createIntrospector(interfaceIntrospector);
LoaderRegistry loader = createLoader(new PropertyObjectFactoryImpl(), introspector);
- DeployerImpl deployer = new DeployerImpl(xmlFactory, loader, builder, resolver, componentManager, connector);
+ DeployerImpl deployer = new DeployerImpl(xmlFactory, loader, builder, resolver, connector);
deployer.setMonitor(getMonitorFactory().getMonitor(ScopeContainerMonitor.class));
return deployer;
}
@@ -264,7 +263,7 @@
*/
private Builder createBuilder(ScopeRegistry scopeRegistry) {
BuilderRegistryImpl builderRegistry =
- new BuilderRegistryImpl(scopeRegistry, new JDKWireService(), componentManager);
+ new BuilderRegistryImpl(scopeRegistry, componentManager);
SystemCompositeBuilder builder = new SystemCompositeBuilder(builderRegistry);
builderRegistry.register(SystemCompositeImplementation.class, builder);
builderRegistry.register(SystemImplementation.class, new SystemComponentBuilder());
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=508732&r1=508731&r2=508732
==============================================================================
--- 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 Feb 17 00:35:19 2007
@@ -30,9 +30,7 @@
import org.apache.tuscany.spi.builder.BuilderInstantiationException;
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.builder.ScopeNotFoundException;
-import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
@@ -52,7 +50,6 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
-import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
import org.apache.tuscany.core.component.ComponentManager;
@@ -66,7 +63,6 @@
*/
@EagerInit
public class BuilderRegistryImpl implements BuilderRegistry {
- private WireService wireService;
private ScopeRegistry scopeRegistry;
private ComponentManager componentManager;
@@ -76,11 +72,8 @@
private final Map<Class<? extends BindingDefinition>, BindingBuilder<? extends BindingDefinition>> bindingBuilders =
new HashMap<Class<? extends BindingDefinition>, BindingBuilder<? extends BindingDefinition>>();
- public BuilderRegistryImpl(@Autowire ScopeRegistry scopeRegistry,
- @Autowire WireService wireService,
- @Autowire ComponentManager componentManager) {
+ public BuilderRegistryImpl(@Autowire ScopeRegistry scopeRegistry, @Autowire ComponentManager componentManager) {
this.scopeRegistry = scopeRegistry;
- this.wireService = wireService;
this.componentManager = componentManager;
}
@@ -146,9 +139,9 @@
ComponentType<?, ?, ?> componentType = componentDefinition.getImplementation().getComponentType();
assert componentType != null : "Component type must be set";
// create wires for the component
- if (wireService != null && component instanceof AtomicComponent) {
- wireService.createWires((AtomicComponent) component, componentDefinition);
- }
+// if (wireService != null && component instanceof AtomicComponent) {
+// wireService.createWires((AtomicComponent) component, componentDefinition);
+// }
componentManager.register(component);
return component;
} catch (BuilderException e) {
@@ -186,14 +179,14 @@
}
ServiceBinding binding =
bindingBuilder.build(parent, serviceDefinition, definition, deploymentContext);
- if (wireService != null) {
- if (targetUri == null) {
- throw new MissingWireTargetException("Service target uri not specified");
- }
- //String path = uri.getPath();
- ServiceContract<?> contract = serviceDefinition.getServiceContract();
- wireService.createWires(binding, contract, targetUri.toString());
- }
+// if (wireService != null) {
+// if (targetUri == null) {
+// throw new MissingWireTargetException("Service target uri not specified");
+// }
+// //String path = uri.getPath();
+// ServiceContract<?> contract = serviceDefinition.getServiceContract();
+// wireService.createWires(binding, contract, targetUri.toString());
+// }
service.addServiceBinding(binding);
}
return service;
@@ -221,12 +214,12 @@
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
- wireService.createWires(binding, contract, targetUri);
-
- }
+// if (wireService != null) {
+// URI targetUri = bindingDefinition.getTargetUri();
+// // it is possible for a binding to not have a URI
+// wireService.createWires(binding, contract, targetUri);
+//
+// }
reference.addReferenceBinding(binding);
}
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java (from r507339, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetComponentNotFoundException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java?view=diff&rev=508732&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetComponentNotFoundException.java&r1=507339&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetComponentNotFoundException.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java Sat Feb 17 00:35:19 2007
@@ -5,14 +5,14 @@
import org.apache.tuscany.spi.builder.WiringException;
/**
- * Indicates the target component of a reference was not found
+ * Indicates a component was not found during wiring
*
* @version $Rev$ $Date$
*/
-public class TargetComponentNotFoundException extends WiringException {
+public class ComponentNotFoundException extends WiringException {
- public TargetComponentNotFoundException(String message, URI sourceName, URI targetName) {
- super(message, sourceName, targetName);
+ public ComponentNotFoundException(String message, URI name) {
+ super(message, name, name);
}
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ComponentNotFoundException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
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=508732&r1=508731&r2=508732
==============================================================================
--- 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 Feb 17 00:35:19 2007
@@ -19,41 +19,49 @@
package org.apache.tuscany.core.builder;
import java.net.URI;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import javax.xml.namespace.QName;
import org.osoa.sca.annotations.Constructor;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.Connector;
-import org.apache.tuscany.spi.builder.MissingWireTargetException;
import org.apache.tuscany.spi.builder.WiringException;
+import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Invocable;
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;
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.component.WorkContext;
+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.spi.model.Operation;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.physical.WireDefinition;
import org.apache.tuscany.spi.services.work.WorkScheduler;
import org.apache.tuscany.spi.util.UriHelper;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
-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.TargetInvoker;
+import org.apache.tuscany.spi.wire.InvocationChain;
+import org.apache.tuscany.spi.wire.Wire;
import org.apache.tuscany.spi.wire.WirePostProcessorRegistry;
-import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.core.binding.local.LocalServiceBinding;
import org.apache.tuscany.core.component.ComponentManager;
-import org.apache.tuscany.core.wire.NonBlockingBridgingInterceptor;
-import org.apache.tuscany.core.wire.SynchronousBridgingInterceptor;
+import org.apache.tuscany.core.wire.InvocationChainImpl;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
+import org.apache.tuscany.core.wire.NonBlockingInterceptor;
+import org.apache.tuscany.core.wire.WireImpl;
import org.apache.tuscany.core.wire.WireUtils;
/**
@@ -62,7 +70,6 @@
* @version $$Rev$$ $$Date$$
*/
public class ConnectorImpl implements Connector {
- private WireService wireService;
private WirePostProcessorRegistry postProcessorRegistry;
private ComponentManager componentManager;
private WorkContext workContext;
@@ -73,290 +80,324 @@
}
@Constructor
- public ConnectorImpl(@Autowire WireService wireService,
- @Autowire WirePostProcessorRegistry processorRegistry,
- @Autowire ComponentManager componentManager,
- @Autowire WorkScheduler scheduler,
- @Autowire WorkContext workContext) {
- this.wireService = wireService;
+ public ConnectorImpl(
+ @Autowire WirePostProcessorRegistry processorRegistry,
+ @Autowire ComponentManager componentManager,
+ @Autowire WorkScheduler scheduler,
+ @Autowire WorkContext workContext) {
this.postProcessorRegistry = processorRegistry;
this.componentManager = componentManager;
this.scheduler = scheduler;
this.workContext = workContext;
}
- public void connect(SCAObject source) throws WiringException {
- if (source instanceof Component) {
- handleComponent((Component) source);
- } else if (source instanceof Reference) {
- handleReference((Reference) source);
- } else if (source instanceof Service) {
- handleService((Service) source);
- } else {
- throw new AssertionError("Invalid source type");
- }
- }
- public void connect(SCAObject source,
- InboundWire sourceWire,
- SCAObject target,
- OutboundWire targetWire,
- boolean optimizable)
- throws WiringException {
- Map<Operation<?>, OutboundInvocationChain> targetChains = targetWire.getOutboundInvocationChains();
- for (InboundInvocationChain inboundChain : sourceWire.getInboundInvocationChains().values()) {
- // match invocation chains
- OutboundInvocationChain outboundChain = targetChains.get(inboundChain.getOperation());
- if (outboundChain == null) {
- throw new IncompatibleInterfacesException(sourceWire.getSourceUri(), targetWire.getTargetUri());
- }
- connect(inboundChain, outboundChain);
- }
- if (postProcessorRegistry != null) {
- // run wire post-processors
- postProcessorRegistry.process(source, sourceWire, target, targetWire);
- }
- if (optimizable && WireUtils.isOptimizable(source, sourceWire) && WireUtils.isOptimizable(targetWire)) {
- sourceWire.setOptimizable(true);
- sourceWire.setTargetWire(targetWire);
- }
+ public void connect(WireDefinition definition) throws WiringException {
+ throw new UnsupportedOperationException();
}
- /**
- * Connects the source outbound wire to a corresponding target inbound wire
- *
- * @param sourceWire the source wire to connect
- * @param targetWire the target wire to connect to
- * @param optimizable true if the wire connection can be optimized
- * @throws WiringException
- * @deprecated
- */
- public void connect(SCAObject source,
- OutboundWire sourceWire,
- SCAObject target,
- InboundWire targetWire,
- boolean optimizable)
- throws WiringException {
- assert source != null;
- assert target != null;
- assert sourceWire.getTargetUri() != null;
- Map<Operation<?>, InboundInvocationChain> targetChains = targetWire.getInboundInvocationChains();
- String portName = sourceWire.getTargetUri().getFragment();
- // match outbound to inbound chains
- for (OutboundInvocationChain outboundChain : sourceWire.getOutboundInvocationChains().values()) {
- Operation<?> operation = outboundChain.getOperation();
- InboundInvocationChain inboundChain = targetChains.get(operation);
- if (inboundChain == null) {
- throw new IncompatibleInterfacesException(sourceWire.getSourceUri(), targetWire.getSourceUri());
- }
- Operation<?> inboundOperation = inboundChain.getOperation();
- boolean isOneWayOperation = operation.isNonBlocking();
- TargetInvoker invoker;
- if (target instanceof Component) {
- Component component = (Component) target;
- try {
- invoker = component.createTargetInvoker(portName, inboundOperation, targetWire);
- } catch (TargetInvokerCreationException e) {
- URI sourceUri = sourceWire.getSourceUri();
- URI targetUri = targetWire.getSourceUri();
- throw new WireConnectException("Error connecting source and target", sourceUri, targetUri, e);
- }
- } else if (target instanceof ReferenceBinding) {
- ReferenceBinding referenceBinding = (ReferenceBinding) target;
- try {
- invoker = referenceBinding.createTargetInvoker(targetWire.getServiceContract(), inboundOperation);
- } catch (TargetInvokerCreationException e) {
- URI targetName = targetWire.getSourceUri();
- throw new WireConnectException("Error processing inbound wire",
- sourceWire.getSourceUri(),
- targetName,
- e);
+ public void connect(ComponentDefinition<? extends Implementation<?>> definition) throws WiringException {
+ URI sourceUri = definition.getUri();
+ Component source = componentManager.getComponent(sourceUri);
+ if (source == null) {
+ throw new ComponentNotFoundException("Source not found", sourceUri);
+ }
+ ComponentType<?, ?, ?> type = definition.getImplementation().getComponentType();
+ if (type instanceof CompositeComponentType) {
+ CompositeComponentType<?, ?, ?> compositeType = (CompositeComponentType<?, ?, ?>) type;
+ for (ComponentDefinition<? extends Implementation<?>> child : compositeType.getComponents().values()) {
+ connect(child);
+ }
+ for (ServiceDefinition child : compositeType.getServices().values()) {
+ connect(child);
+ }
+ for (ReferenceDefinition child : compositeType.getReferences().values()) {
+ connect(child);
+ }
+ }
+ Map<String, ReferenceTarget> targets = definition.getReferenceTargets();
+ for (ReferenceTarget referenceTarget : targets.values()) {
+ List<Wire> wires = new ArrayList<Wire>();
+ String refName = referenceTarget.getReferenceName().getFragment();
+ ReferenceDefinition refDefinition = type.getReferences().get(refName);
+ assert refDefinition != null;
+ List<URI> uris = referenceTarget.getTargets();
+ for (URI uri : uris) {
+ URI targetUri = UriHelper.getDefragmentedName(uri);
+ Component target = componentManager.getComponent(targetUri);
+ if (target == null && !refDefinition.isRequired()) {
+ // a non-required reference, just skip
+ continue;
+ }
+ if (target == null) {
+ throw new ComponentNotFoundException("Target not found", targetUri);
+ }
+ String fragment = uri.getFragment();
+ URI sourceURI = refDefinition.getUri();
+ Wire wire = createWire(sourceURI, uri, refDefinition.getServiceContract(), Wire.LOCAL_BINDING);
+ if (fragment == null) {
+ try {
+ // add target invokers
+ attachInvokers(wire, source, target);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ } else {
+ if (target instanceof CompositeComponent) {
+ CompositeComponent composite = (CompositeComponent) target;
+ Service service = composite.getService(fragment);
+ if (service != null) {
+ if (service.getServiceBindings().isEmpty()) {
+ // for now, throw an assertion exception.
+ // We will need to choose bindings during allocation
+ throw new AssertionError();
+ }
+ ServiceBinding binding = service.getServiceBindings().get(0);
+ try {
+ // add target invokers
+ attachInvokers(wire, source, binding);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ }
+ Reference reference = composite.getReference(fragment);
+ if (reference != null) {
+ ReferenceBinding binding = reference.getReferenceBindings().get(0);
+ try {
+ // add target invokers
+ attachInvokers(wire, source, binding);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ } else if (refDefinition.isRequired()) {
+ throw new ComponentNotFoundException("Target not found", targetUri);
+ } else if (wire == null) {
+ continue;
+ }
+ } else {
+ // atomic component
+ try {
+ // add target invokers
+ attachInvokers(wire, source, target);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ }
}
- } else if (target instanceof ServiceBinding) {
- ServiceBinding binding = (ServiceBinding) target;
- try {
- invoker = binding.createTargetInvoker(targetWire.getServiceContract(), inboundChain.getOperation());
- } catch (TargetInvokerCreationException e) {
- URI targetName = targetWire.getSourceUri();
- throw new WireConnectException("Error processing inbound wire",
- sourceWire.getSourceUri(),
- targetName,
- e);
+ if (postProcessorRegistry != null) {
+ postProcessorRegistry.process(wire);
}
- } else {
- throw new AssertionError();
+ optimize(source, target, wire);
+ wires.add(wire);
+ if (!wire.getCallbackInvocationChains().isEmpty()) {
+ target.attachCallbackWire(wire);
+ }
+ }
+ if (wires.size() > 1) {
+ // attach as a multiplicity
+ source.attachWires(wires);
+ } else if (wires.size() == 1) {
+ // attach as a single wire
+ Wire wire = wires.get(0);
+ source.attachWire(wire);
}
+ }
+ }
- if (source instanceof ServiceBinding) {
- // services are a special case: invoker must go on the inbound and outbound chains
- if (target instanceof Component && isOneWayOperation) {
- // if the target is a component and the operation is non-blocking
- connect(outboundChain, inboundChain, invoker, true);
+ protected void connect(ServiceDefinition definition) throws WiringException {
+ URI uri = definition.getUri();
+ URI sourceUri = UriHelper.getDefragmentedName(uri);
+ URI targetUri = UriHelper.getDefragmentedName(definition.getTarget());
+ Component source = componentManager.getComponent(sourceUri);
+ if (source == null) {
+ throw new ComponentNotFoundException("Source not found", sourceUri);
+ }
+ if (!(source instanceof CompositeComponent)) {
+ // this should not happen
+ throw new InvalidSourceTypeException("Illegal source type", uri, targetUri);
+ }
+ CompositeComponent sourceComposite = (CompositeComponent) source;
+ Service service = sourceComposite.getService(uri.getFragment());
+ if (service == null) {
+ throw new SourceServiceNotFoundException("Service not found on composite", uri);
+ }
+ Component target = componentManager.getComponent(targetUri);
+ if (target == null) {
+ throw new ComponentNotFoundException("Target not found", sourceUri);
+ }
+ ServiceContract<?> contract = definition.getServiceContract();
+ if (target instanceof CompositeComponent) {
+ String fragment = definition.getTarget().getFragment();
+ CompositeComponent targetComposite = (CompositeComponent) target;
+ Invocable invocable;
+ Reference targetReference = targetComposite.getReference(fragment);
+ if (targetReference == null) {
+ Service targetService = targetComposite.getService(fragment);
+ if (targetService == null) {
+ throw new TargetServiceNotFoundException("Service not found", sourceUri, definition.getTarget());
+ }
+ // TODO select binding in allocator
+ if (targetService.getServiceBindings().isEmpty()) {
+ invocable = new LocalServiceBinding(service.getUri());
} else {
- connect(outboundChain, inboundChain, invoker, false);
+ invocable = targetService.getServiceBindings().get(0);
}
- ServiceBinding binding = (ServiceBinding) source;
- InboundInvocationChain chain = binding.getInboundWire().getInboundInvocationChains().get(operation);
- chain.setTargetInvoker(invoker);
} else {
- if (target instanceof Component && isOneWayOperation) {
- // if the target is a component and the operation is non-blocking
- connect(outboundChain, inboundChain, invoker, true);
+ if (targetReference.getReferenceBindings().isEmpty()) {
+ throw new NoBindingException("No binding specified for wire", sourceUri, targetUri);
} else {
- connect(outboundChain, inboundChain, invoker, false);
+ invocable = targetReference.getReferenceBindings().get(0);
}
}
- }
-
- // create source callback chains and connect them if target callback chains exist
- //String sourceName = UriHelper.getBaseName(source.getUri());
- Map<Operation<?>, OutboundInvocationChain> sourceCallbackChains =
- targetWire.getSourceCallbackInvocationChains(source.getUri());
- for (InboundInvocationChain inboundChain : sourceWire.getTargetCallbackInvocationChains().values()) {
- Operation<?> operation = inboundChain.getOperation();
- if (sourceCallbackChains != null && sourceCallbackChains.get(operation) != null) {
- String opName = operation.getName();
- throw new IllegalCallbackException("Source callback chain should not exist for operation",
- opName,
- sourceWire.getSourceUri(),
- targetWire.getSourceUri());
- }
-
- ServiceContract<?> targetContract = targetWire.getServiceContract();
- assert targetContract != null;
- String opName = operation.getName();
- assert opName != null;
- Operation targetOp = targetContract.getCallbackOperations().get(opName);
- OutboundInvocationChain outboundChain = wireService.createOutboundChain(targetOp);
- targetWire.addSourceCallbackInvocationChain(source.getUri(), targetOp, outboundChain);
- if (source instanceof Component) {
- Component component = (Component) source;
- TargetInvoker invoker;
- try {
- invoker = component.createTargetInvoker(targetOp.getName(), operation, null);
- } catch (TargetInvokerCreationException e) {
- URI sourceUri = sourceWire.getSourceUri();
- URI targetUri = targetWire.getSourceUri();
- throw new WireConnectException("Error connecting source and target", sourceUri, targetUri, e);
- }
- boolean isOneWayOperation = targetOp.isNonBlocking();
- if (target instanceof Component && isOneWayOperation) {
- // if the target is a component and the operation is non-blocking
- connect(outboundChain, inboundChain, invoker, true);
- } else {
- connect(outboundChain, inboundChain, invoker, false);
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ Wire wire = createWire(uri, targetUri, contract, binding.getBindingType());
+ binding.setWire(wire);
+ if (postProcessorRegistry != null) {
+ postProcessorRegistry.process(wire);
}
- } else if (source instanceof ReferenceBinding) {
- ReferenceBinding binding = (ReferenceBinding) source;
- ServiceContract sourceContract = sourceWire.getServiceContract();
- TargetInvoker invoker;
try {
- invoker = binding.createTargetInvoker(sourceContract, operation);
+ attachInvokers(wire, binding, invocable);
} catch (TargetInvokerCreationException e) {
- URI sourceUri = sourceWire.getSourceUri();
- URI targetUri = targetWire.getSourceUri();
- throw new WireConnectException("Error connecting source and target", sourceUri, targetUri, e);
- }
- connect(outboundChain, inboundChain, invoker, false);
- } else if (source instanceof ServiceBinding) {
- ServiceBinding binding = (ServiceBinding) source;
- ServiceContract sourceContract = sourceWire.getServiceContract();
- TargetInvoker invoker;
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ }
+
+ } else {
+ // TODO if no binding, do local
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ Wire wire = createWire(uri, targetUri, contract, binding.getBindingType());
+ binding.setWire(wire);
+ if (postProcessorRegistry != null) {
+ postProcessorRegistry.process(wire);
+ }
try {
- invoker = binding.createTargetInvoker(sourceContract, operation);
+ attachInvokers(wire, binding, target);
} catch (TargetInvokerCreationException e) {
- URI targetName = sourceWire.getSourceUri();
- throw new WireConnectException("Error processing callback wire",
- sourceWire.getSourceUri(),
- targetName,
- e);
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
}
- connect(outboundChain, inboundChain, invoker, false);
- } else {
- throw new AssertionError();
}
}
- if (postProcessorRegistry != null) {
- // run wire post-processors
- postProcessorRegistry.process(source, sourceWire, target, targetWire);
+ }
+
+ protected void connect(ReferenceDefinition definition) throws WiringException {
+ URI uri = definition.getUri();
+ URI sourceUri = UriHelper.getDefragmentedName(uri);
+ Component source = componentManager.getComponent(sourceUri);
+ if (source == null) {
+ throw new ComponentNotFoundException("Source not found", sourceUri);
+ }
+ if (!(source instanceof CompositeComponent)) {
+ throw new AssertionError("Illegal source type");
+ }
+ CompositeComponent sourceComposite = (CompositeComponent) source;
+ Reference reference = sourceComposite.getReference(uri.getFragment());
+ if (reference == null) {
+ throw new SourceServiceNotFoundException("Reference not found on composite", uri);
}
- // perform optimization, if possible
- if (optimizable && WireUtils.isOptimizable(sourceWire) && WireUtils.isOptimizable(target, targetWire)) {
- sourceWire.setOptimizable(true);
- sourceWire.setTargetWire(targetWire);
+
+ for (ReferenceBinding binding : reference.getReferenceBindings()) {
+ // create wire
+ if (Wire.LOCAL_BINDING.equals(binding.getBindingType())) {
+ URI targetUri = binding.getTargetUri();
+ ServiceContract<?> contract = binding.getBindingServiceContract();
+ QName type = binding.getBindingType();
+ Wire wire = createWire(sourceUri, targetUri, contract, type);
+ binding.setWire(wire);
+ // wire local bindings to their targets
+ Component target = componentManager.getComponent(UriHelper.getDefragmentedName(targetUri));
+ if (target == null) {
+ throw new ComponentNotFoundException("Target not found", sourceUri);
+ }
+ if (target instanceof CompositeComponent) {
+ String fragment = targetUri.getFragment();
+ CompositeComponent targetComposite = (CompositeComponent) target;
+ Invocable invocable;
+ Reference targetReference = targetComposite.getReference(fragment);
+ if (targetReference == null) {
+ Service targetService = targetComposite.getService(fragment);
+ if (targetService == null) {
+ throw new TargetServiceNotFoundException("Service not found", sourceUri, targetUri);
+ }
+ // TODO select binding in allocator
+ if (targetService.getServiceBindings().isEmpty()) {
+ throw new NoBindingException("No binding specified for wire", sourceUri, targetUri);
+ } else {
+ invocable = targetService.getServiceBindings().get(0);
+ }
+ } else {
+ if (targetReference.getReferenceBindings().isEmpty()) {
+ throw new NoBindingException("No binding specified for wire", sourceUri, targetUri);
+ } else {
+ invocable = targetReference.getReferenceBindings().get(0);
+ }
+ }
+ try {
+ attachInvokers(wire, binding, invocable);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ } else {
+ try {
+ attachInvokers(wire, binding, target);
+ } catch (TargetInvokerCreationException e) {
+ throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+ }
+ }
+ } else {
+ Wire wire = createWire(sourceUri, null, binding.getBindingServiceContract(), binding.getBindingType());
+ if (postProcessorRegistry != null) {
+ postProcessorRegistry.process(wire);
+ }
+ binding.setWire(wire);
+ }
}
}
- /**
- * Connects a source to target chain
- *
- * @param sourceChain the source chain
- * @param targetChain the target chain
- * @param invoker the invoker to place on the source chain for dispatching invocations
- * @param nonBlocking true if the operation is non-blocking
- */
- protected void connect(OutboundInvocationChain sourceChain,
- InboundInvocationChain targetChain,
- TargetInvoker invoker,
- boolean nonBlocking) throws WireConnectException {
- Interceptor head = targetChain.getHeadInterceptor();
- if (head == null) {
- throw new WireConnectException("Inbound chain must contain at least one interceptor");
+ protected Wire createWire(URI sourceURI, URI targetUri, ServiceContract<?> contract, QName bindingType) {
+ Wire wire = new WireImpl(bindingType);
+ wire.setSourceContract(contract);
+ wire.setSourceUri(sourceURI);
+ wire.setTargetUri(targetUri);
+ for (Operation<?> operation : contract.getOperations().values()) {
+ InvocationChain chain = new InvocationChainImpl(operation);
+ if (operation.isNonBlocking()) {
+ chain.addInterceptor(new NonBlockingInterceptor(scheduler, workContext));
+ }
+ chain.addInterceptor(new InvokerInterceptor());
+ wire.addInvocationChain(operation, chain);
+
}
- if (nonBlocking) {
- sourceChain.setTargetInterceptor(new NonBlockingBridgingInterceptor(scheduler, workContext, head));
- } else {
- sourceChain.setTargetInterceptor(new SynchronousBridgingInterceptor(head));
+ wire.setCallbackReferenceName(contract.getCallbackName());
+ for (Operation<?> operation : contract.getCallbackOperations().values()) {
+ InvocationChain chain = new InvocationChainImpl(operation);
+ if (operation.isNonBlocking()) {
+ chain.addInterceptor(new NonBlockingInterceptor(scheduler, workContext));
+ }
+ chain.addInterceptor(new InvokerInterceptor());
+ wire.addCallbackInvocationChain(operation, chain);
}
- sourceChain.prepare();
- sourceChain.setTargetInvoker(invoker);
+ return wire;
}
-
- /**
- * Connects an inbound source chain to an outbound target chain
- *
- * @param sourceChain the source chain to connect
- * @param targetChain the target chain to connect
- */
- protected void connect(InboundInvocationChain sourceChain, OutboundInvocationChain targetChain)
- throws WireConnectException {
- Interceptor head = targetChain.getHeadInterceptor();
- if (head == null) {
- throw new WireConnectException("Outbound chain must contain at least one interceptor");
+ private void attachInvokers(Wire wire, Invocable source, Invocable target)
+ throws TargetInvokerCreationException {
+ for (InvocationChain chain : wire.getInvocationChains().values()) {
+ String name = target.getUri().getFragment();
+ chain.setTargetInvoker(target.createTargetInvoker(name, chain.getOperation()));
+ }
+ for (InvocationChain chain : wire.getCallbackInvocationChains().values()) {
+ chain.setTargetInvoker(source.createTargetInvoker(null, chain.getOperation()));
}
- // invocations from inbound to outbound chains are always synchronous as they occur in services and references
- sourceChain.addInterceptor(new SynchronousBridgingInterceptor(head));
}
- protected boolean assertWireable(OutboundWire sourceWire, InboundWire targetWire, boolean silent)
- throws IncompatibleInterfacesException {
- if (wireService == null) {
- Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
- Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
- if (!sourceInterface.isAssignableFrom(targetInterface)) {
- if (!silent) {
- throw new IncompatibleInterfacesException(sourceWire.getSourceUri(), targetWire.getSourceUri());
- } else {
- return false;
- }
- }
+ protected void optimize(Component source, Component target, Wire wire) {
+ boolean optimizableScopes = isOptimizable(source.getScope(), target.getScope());
+ if (optimizableScopes && target.isOptimizable() && WireUtils.isOptimizable(wire)) {
+ wire.setOptimizable(true);
+ wire.setTarget((AtomicComponent) target);
} else {
- try {
- ServiceContract sourceContract = sourceWire.getServiceContract();
- ServiceContract targetContract = targetWire.getServiceContract();
- wireService.checkCompatibility(sourceContract, targetContract, false, silent);
- } catch (IncompatibleServiceContractException e) {
- URI sourceUri = sourceWire.getSourceUri();
- URI targetUri = targetWire.getSourceUri();
- if (!silent) {
- throw new IncompatibleInterfacesException(sourceUri, targetUri, e);
- } else {
- return false;
- }
- }
+ wire.setOptimizable(false);
}
- return true;
}
protected boolean isOptimizable(Scope pReferrer, Scope pReferee) {
@@ -390,102 +431,4 @@
return pReferrer == Scope.COMPOSITE && pReferee == Scope.SYSTEM;
}
}
-
- /**
- * Connects wires from a service to a target
- *
- * @param service the service
- * @throws WiringException if an exception connecting the service wires is encountered
- */
- private void handleService(Service service) throws WiringException {
- for (ServiceBinding binding : service.getServiceBindings()) {
- InboundWire inboundWire = binding.getInboundWire();
- OutboundWire outboundWire = binding.getOutboundWire();
- URI sourceUri = outboundWire.getSourceUri();
- URI targetUri = outboundWire.getTargetUri();
- String fragment = targetUri.getFragment();
- URI defragUri = UriHelper.getDefragmentedName(targetUri);
- Component targetComponent = componentManager.getComponent(defragUri);
- if (targetComponent == null) {
- throw new TargetComponentNotFoundException("Target not found", sourceUri, targetUri);
- }
- InboundWire targetWire = targetComponent.getTargetWire(fragment);
- if (targetWire == null) {
- throw new TargetServiceNotFoundException("Target not found", sourceUri, targetUri);
- }
- assertWireable(outboundWire, targetWire, false);
- boolean optimizable = isOptimizable(Scope.SYSTEM, targetComponent.getScope());
- connect(binding, outboundWire, targetComponent, targetWire, optimizable);
- connect(binding, inboundWire, targetComponent, outboundWire, true);
- }
- }
-
- private void handleReference(Reference reference) throws WiringException {
- for (ReferenceBinding binding : reference.getReferenceBindings()) {
- InboundWire inboundWire = binding.getInboundWire();
- Map<Operation<?>, InboundInvocationChain> inboundChains = inboundWire.getInboundInvocationChains();
- for (InboundInvocationChain chain : inboundChains.values()) {
- // 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) {
- URI targetName = inboundWire.getSourceUri();
- throw new WireConnectException("Error processing inbound wire",
- reference.getUri(),
- targetName,
- e);
- }
- chain.setTargetInvoker(invoker);
- }
- OutboundWire outboundWire = binding.getOutboundWire();
- // connect the reference's inbound and outbound wires
- connect(binding, inboundWire, binding, outboundWire, true);
- }
- }
-
- private void handleComponent(Component component) throws WiringException {
- // connect outbound wires for component references to their targets
- for (List<OutboundWire> referenceWires : component.getOutboundWires().values()) {
- for (OutboundWire outboundWire : referenceWires) {
- if (outboundWire.getTargetUri() == null) {
- URI source = outboundWire.getSourceUri();
- URI target = outboundWire.getTargetUri();
- throw new MissingWireTargetException("Target name was null", source, target);
- }
- URI sourceUri = outboundWire.getSourceUri();
- URI targetUri = outboundWire.getTargetUri();
- String fragment = targetUri.getFragment();
- URI defragUri = UriHelper.getDefragmentedName(targetUri);
- Component targetComponent = componentManager.getComponent(defragUri);
- if (targetComponent == null) {
- throw new TargetComponentNotFoundException("Target not found", sourceUri, targetUri);
- }
- InboundWire targetWire = null;
- if (fragment == null) {
- // JFM TODO test
- // find a suitable wire since no specific service was named
- for (InboundWire wire : targetComponent.getInboundWires()) {
- if (assertWireable(outboundWire, wire, true)) {
- targetWire = wire;
- break;
- }
- }
- if (targetWire == null) {
- throw new TargetServiceNotFoundException("Target not found", sourceUri, targetUri);
- }
- } else {
- targetWire = targetComponent.getTargetWire(fragment);
- if (targetWire == null) {
- throw new TargetServiceNotFoundException("Target not found", sourceUri, targetUri);
- }
- assertWireable(outboundWire, targetWire, false);
- }
- boolean optimizable = isOptimizable(component.getScope(), targetComponent.getScope());
- connect(component, outboundWire, targetComponent, targetWire, optimizable);
- }
- }
- }
-}
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org