summaryrefslogtreecommitdiffstats
path: root/branches/pre-spec-changes/kernel/spi/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'branches/pre-spec-changes/kernel/spi/src/main/java/org')
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java77
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java55
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java69
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java56
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java35
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java96
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java60
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java55
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java57
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java74
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java48
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java55
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java39
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java55
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java52
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java35
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java29
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java124
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java134
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java126
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java100
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java52
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java54
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java156
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java31
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java31
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java41
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java35
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java34
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java88
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java43
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java73
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java87
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java43
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java52
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java95
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java40
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java50
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java39
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java43
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java50
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java43
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java116
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java63
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java67
-rwxr-xr-xbranches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java44
-rwxr-xr-xbranches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java56
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java34
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java44
-rwxr-xr-xbranches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java72
-rwxr-xr-xbranches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java46
-rwxr-xr-xbranches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java49
-rwxr-xr-xbranches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java75
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java56
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java69
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java174
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java61
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java69
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java391
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java73
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java940
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java48
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java28
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java52
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java26
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java48
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java84
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java20
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java83
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java50
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java31
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java31
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java65
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java216
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java79
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java100
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java63
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java557
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java79
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java78
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java87
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java96
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java72
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java32
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java58
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java54
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java40
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java50
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java41
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java66
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java96
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java34
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java47
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java39
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java39
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java159
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java51
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java35
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java128
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java93
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java89
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java38
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java47
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java61
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java64
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java60
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java91
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java110
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java65
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java138
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java38
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java30
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java40
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java92
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java92
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java69
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java78
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java35
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java32
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java30
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java32
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java67
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java30
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java44
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java48
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java28
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java10
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java42
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java53
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundServiceDefinition.java65
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java154
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java178
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java174
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java56
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java242
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java43
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java80
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java92
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java64
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java140
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java29
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java38
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java47
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java408
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java34
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java21
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java49
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java29
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java99
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java38
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java105
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java128
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java51
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java80
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java50
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java61
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java275
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java87
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java35
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java47
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java111
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java83
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java70
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java42
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java29
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java41
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java53
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java41
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java53
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java33
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java197
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java45
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java128
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java51
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java37
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java40
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java31
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java96
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java54
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java71
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java74
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java41
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java43
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java66
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java52
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java36
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java60
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java54
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java104
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java29
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java89
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java74
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java50
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java95
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java46
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java120
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java56
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java116
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java38
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java28
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java106
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java51
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java79
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java82
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java32
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java40
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java44
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java44
-rw-r--r--branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java157
239 files changed, 0 insertions, 17217 deletions
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java
deleted file mode 100644
index e8597a55fc..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.spi;
-
-/**
- * Base class providing a simple implementation of Lifecycle.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractLifecycle implements Lifecycle {
- protected volatile int lifecycleState = UNINITIALIZED;
-
- public int getLifecycleState() {
- return lifecycleState;
- }
-
- /**
- * Set the current state of the Lifecycle.
- *
- * @param lifecycleState the new state
- */
- protected void setLifecycleState(int lifecycleState) {
- this.lifecycleState = lifecycleState;
- }
-
- public void start() {
- setLifecycleState(RUNNING);
- }
-
- public void stop() {
- setLifecycleState(STOPPED);
- }
-
- /**
- * Returns the current lifecycle as a String (for example, "RUNNING").
- *
- * @return the current lifecycle as a String
- */
- public String toString() {
- switch (lifecycleState) {
- case Lifecycle.CONFIG_ERROR:
- return "CONFIG_ERROR";
- case Lifecycle.ERROR:
- return "ERROR";
- case Lifecycle.INITIALIZING:
- return "INITIALIZING";
- case Lifecycle.INITIALIZED:
- return "INITIALIZED";
- case Lifecycle.RUNNING:
- return "RUNNING";
- case Lifecycle.STOPPING:
- return "STOPPING";
- case Lifecycle.STOPPED:
- return "STOPPED";
- case Lifecycle.UNINITIALIZED:
- return "UNINITIALIZED";
- default:
- return "UNKNOWN";
- }
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java
deleted file mode 100644
index 641a4e5d21..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.spi;
-
-import org.apache.tuscany.api.TuscanyRuntimeException;
-
-/**
- * The root exception for the runtime package. Exceptions occurring in the runtime are generally non-recoverable
- *
- * @version $Rev$ $Date$
- */
-public abstract class CoreRuntimeException extends TuscanyRuntimeException {
-
- public CoreRuntimeException() {
- super();
- }
-
- public CoreRuntimeException(String message) {
- super(message);
- }
-
-
- protected CoreRuntimeException(String message, String identifier) {
- super(message, identifier);
- }
-
- public CoreRuntimeException(String message, Throwable cause) {
- super(message, cause);
- }
-
-
- protected CoreRuntimeException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public CoreRuntimeException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java
deleted file mode 100644
index 28bc8652b2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi;
-
-/**
- * Denotes an invalid name
- *
- * @version $Rev$ $Date$
- */
-public class InvalidNameException extends CoreRuntimeException {
-
- public InvalidNameException() {
- super();
- }
-
- public InvalidNameException(String message) {
- super(message);
- }
-
- public InvalidNameException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidNameException(Throwable cause) {
- super(cause);
- }
-
-}
-
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java
deleted file mode 100644
index e8a0448e44..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.spi;
-
-/**
- * Implementations adhere to runtime lifecycle semantics
- *
- * @version $Rev$ $Date$
- */
-public interface Lifecycle {
- /* A configuration error state */
- int CONFIG_ERROR = -1;
- /* Has not been initialized */
- int UNINITIALIZED = 0;
- /* In the process of being configured and initialized */
- int INITIALIZING = 1;
- /* Instantiated and configured */
- int INITIALIZED = 2;
- /* Configured and initialized */
- int RUNNING = 4;
- /* In the process of being shutdown */
- int STOPPING = 5;
- /* Has been shutdown and removed from the composite */
- int STOPPED = 6;
- /* In an error state */
- int ERROR = 7;
-
- /**
- * Returns the lifecycle state
- *
- * @see #UNINITIALIZED
- * @see #INITIALIZING
- * @see #INITIALIZED
- * @see #RUNNING
- * @see #STOPPING
- * @see #STOPPED
- */
- int getLifecycleState();
-
- /**
- * Starts the Lifecycle.
- *
- * @throws CoreRuntimeException
- */
- void start() throws CoreRuntimeException;
-
- /**
- * Stops the Lifecycle.
- *
- * @throws CoreRuntimeException
- */
- void stop() throws CoreRuntimeException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java
deleted file mode 100644
index 580e928000..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.spi;
-
-import org.apache.tuscany.api.TuscanyRuntimeException;
-
-/**
- * Denotes an error creating a new object instance
- *
- * @version $Rev$ $Date$
- */
-public class ObjectCreationException extends TuscanyRuntimeException {
- private static final long serialVersionUID = -6423113430265944499L;
-
- public ObjectCreationException() {
- super();
- }
-
- public ObjectCreationException(String message) {
- super(message);
- }
-
- public ObjectCreationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public ObjectCreationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public ObjectCreationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public ObjectCreationException(Throwable cause) {
- super(cause);
- }
-
-}
-
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java
deleted file mode 100644
index d505e14f61..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.spi;
-
-/**
- * Implementations create new instances of a particular type
- *
- * @version $Rev$ $Date$
- */
-public interface ObjectFactory<T> {
-
- /**
- * Return a instance of the type that this factory creates.
- *
- * @return a instance from this factory
- */
- T getInstance() throws ObjectCreationException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java
deleted file mode 100644
index 575f69db18..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.spi;
-
-/**
- * An evaluated name consisting of a part/port pair. In the runtime, a part generally 'contains' or 'provides' ports
- * such as a component/service point or a component/reference pair.
- *
- * @version $Rev$ $Date$
- */
-public class QualifiedName {
- public static final String NAME_SEPARATOR = "/";
-
- private String qName;
- private String partName;
- private String portName;
-
- /**
- * Constructs a new qualified name in the form of part/port where part is the parent context and port represents a
- * child, which is either a service in the case of an atomic context or a contained context in the case of a
- * composite.
- *
- * @throws InvalidNameException if the name is in an invalid format
- */
- public QualifiedName(String qualifiedName) throws InvalidNameException {
- if (qualifiedName == null) {
- return;
- }
- int pos = qualifiedName.indexOf(QualifiedName.NAME_SEPARATOR);
- switch (pos) {
- case-1:
- partName = qualifiedName;
- break;
- case 0:
- throw new InvalidNameException(qualifiedName);
- default:
- partName = qualifiedName.substring(0, pos);
- portName = qualifiedName.substring(pos + 1);
- break;
- }
- qName = qualifiedName;
- }
-
- /**
- * Constructs a qualified name using the given part/port combination
- *
- * @param partName the part name
- * @param portName the port name
- */
- public QualifiedName(String partName, String portName) {
- this.partName = partName;
- this.portName = portName;
- this.qName = partName + '/' + portName;
- }
-
- /**
- * Returns the parsed part name
- */
- public String getPartName() {
- return partName;
- }
-
- /**
- * Returns the parsed port name if the original is of the compound for part/port
- */
- public String getPortName() {
- return portName;
- }
-
- /**
- * Returns the full part/port name pair
- */
- public String getQualifiedName() {
- return qName;
- }
-
- public String toString() {
- return qName;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java
deleted file mode 100644
index 0e48f1bc1b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.annotation;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-
-/**
- * A system annotation to inject an autowired instance
- *
- * @version $Rev$ $Date$
- */
-@Target({METHOD, FIELD, PARAMETER})
-@Retention(RUNTIME)
-public @interface Autowire {
- /**
- * The name of the autowire. If not specified then the name will be derived from the annotated field.
- */
- String name() default "";
-
- /**
- * Indicates if a reference must be specified.
- */
- boolean required() default true;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java
deleted file mode 100644
index fb207a35d5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.spi.bootstrap;
-
-/**
- * Class that defines the names of well known component
- *
- * @version $Rev$ $Date$
- */
-public final class ComponentNames {
- /**
- * The name of the component that forms the root of the runtime tree.
- */
- public static final String TUSCANY_RUNTIME = "tuscany.runtime";
-
- /**
- * The name of the component that is the root of the application composite tree.
- */
- public static final String TUSCANY_APPLICATION_ROOT = "tuscany.root.application";
-
- /**
- * The name of the component that is the root of the system composite tree.
- */
- public static final String TUSCANY_SYSTEM_ROOT = "tuscany.root.system";
-
- /**
- * The name of the top-level component in the system composite tree.
- */
- public static final String TUSCANY_SYSTEM = "tuscany.system";
-
- /**
- * The name of the component that contains the deployer.
- */
- public static final String TUSCANY_DEPLOYER = "deployer";
-
- /**
- * The name of the component that contains the deployer.
- */
- public static final String TUSCANY_WIRE_SERVICE = "wireService";
-
- private ComponentNames() {
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java
deleted file mode 100644
index 6e0184fbd6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.spi.bootstrap;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.TargetException;
-import org.apache.tuscany.spi.deployer.Deployer;
-
-/**
- * Interface that represents the Tuscany runtime.
- *
- * @version $Rev$ $Date$
- */
-public interface RuntimeComponent extends CompositeComponent {
- /**
- * Returns the component that forms the root of the user component tree. All user components will be managed by
- * composites that are children of this root.
- *
- * @return the root of the user component tree
- */
- CompositeComponent getRootComponent();
-
- /**
- * Returns the component that forms the root of the system component tree. All system components, components that
- * provide system services needed by the Tuscany runtime itself, will be managed by composites that are children of
- * this root.
- *
- * @return the root of the system component tree
- */
- CompositeComponent getSystemComponent();
-
- /**
- * Returns the deployer for this runtime. This interface can be used to deploy new SCA bundles to the runtime.
- *
- * @return the deployer for this runtime
- * @throws TargetException if there is an error returning the deployer
- */
- Deployer getDeployer() throws TargetException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java
deleted file mode 100644
index 50c7cae857..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.spi.builder;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.BindingDefinition;
-import org.apache.tuscany.spi.model.BoundReferenceDefinition;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
-
-/**
- * Responsible for processing a service or reference in an assembly configured with a particular binding. The builder
- * will create and return corresponding {@link org.apache.tuscany.spi.component.ServiceBinding} or {@link
- * org.apache.tuscany.spi.component.ReferenceBinding}
- *
- * @version $Rev$ $Date$
- */
-public interface BindingBuilder<B extends BindingDefinition> {
-
- /**
- * Creates a service binding
- *
- * @param parent the containing composite component
- * @param boundServiceDefinition the service the binding is configured for
- * @param bindingDefinition the binding definition
- * @param deploymentContext the current deployment context
- * @return a service binding
- * @throws BuilderException
- */
- ServiceBinding build(CompositeComponent parent,
- BoundServiceDefinition boundServiceDefinition,
- B bindingDefinition,
- DeploymentContext deploymentContext) throws BuilderException;
-
- ReferenceBinding build(CompositeComponent parent,
- BoundReferenceDefinition boundReferenceDefinition,
- B bindingDefinition,
- DeploymentContext deploymentContext) throws BuilderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java
deleted file mode 100644
index f0d2a5f4e5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.spi.builder;
-
-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.Service;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.BoundReferenceDefinition;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.Implementation;
-
-/**
- * Implementations build <code>SCAObject</code> types from model objects.
- *
- * @version $Rev$ $Date$
- */
-public interface Builder {
- /**
- * Builds a <code>Component</code> from a <code>ComponentDefinition</code>
- *
- * @param parent the composite that will be the parent of the newly built component
- * @param definition the component definition as parsed from an SCA assembly
- * @param context the current deployment context
- * @return the newly created component
- * @throws BuilderException
- */
- <I extends Implementation<?>> Component build(CompositeComponent parent,
- ComponentDefinition<I> definition,
- DeploymentContext context) throws BuilderException;
-
- /**
- * Builds a <code>Service</code> and its bindings from a <code>BoundServiceDefinition</code>
- *
- * @param parent the composite that will be the parent of the newly built service
- * @param definition the service definition as parsed from an SCA assembly
- * @param context the current deployment context
- * @return the newly created service
- * @throws BuilderException
- */
- Service build(CompositeComponent parent, BoundServiceDefinition definition, DeploymentContext context)
- throws BuilderException;
-
- /**
- * Builds a <code>Reference</code> and its bindings from a <code>BoundReferenceDefinition</code>
- *
- * @param parent the composite that will be the parent of the newly built reference
- * @param definition the reference definition as parsed from an SCA assembly
- * @param context the current deployment context
- * @return the newly created reference
- * @throws BuilderException
- */
- Reference build(CompositeComponent parent, BoundReferenceDefinition definition, DeploymentContext context)
- throws BuilderException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java
deleted file mode 100644
index 6e9f2ef95d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.spi.builder;
-
-/**
- * Represents an error processing an assembly model
- *
- * @version $Rev$ $Date$
- */
-public class BuilderConfigException extends BuilderException {
-
- public BuilderConfigException() {
- super();
- }
-
- public BuilderConfigException(String message) {
- super(message);
- }
-
- public BuilderConfigException(String message, String identifier) {
- super(message, identifier);
- }
-
- public BuilderConfigException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public BuilderConfigException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java
deleted file mode 100644
index 846d52492c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.spi.builder;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * The root exception for the builder package. Builder exceptions denote a non-recoverable failure.
- *
- * @version $Rev$ $Date$
- */
-public abstract class BuilderException extends TuscanyException {
-
- public BuilderException() {
- super();
- }
-
- public BuilderException(String message) {
- super(message);
- }
-
-
- protected BuilderException(String message, String identifier) {
- super(message, identifier);
- }
-
- public BuilderException(String message, Throwable cause) {
- super(message, cause);
- }
-
- protected BuilderException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public BuilderException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java
deleted file mode 100644
index 30957635db..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.spi.builder;
-
-/**
- * Denotes an error instantiating an <code>SCAObject</code>
- *
- * @version $Rev$ $Date$
- */
-public class BuilderInstantiationException extends BuilderException {
-
- public BuilderInstantiationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public BuilderInstantiationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public BuilderInstantiationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java
deleted file mode 100644
index c4ecdfa35b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.spi.builder;
-
-import org.apache.tuscany.spi.model.BindingDefinition;
-import org.apache.tuscany.spi.model.Implementation;
-
-/**
- * Maintains a registry of builders in the runtime, dispatching to the appropriate one as an assembly model is processed
- * into runtime artifacts
- *
- * @version $Rev$ $Date$
- */
-public interface BuilderRegistry extends Builder {
-
- /**
- * Register a builder for an implementation type.
- *
- * @param implClass the type of implementation that this builder can handle
- * @param builder the builder to be registered
- */
- <I extends Implementation<?>> void register(Class<I> implClass, ComponentBuilder<I> builder);
-
- /**
- * Unregister a builder for an implementation type.
- *
- * @param implClass the implementation whose builder should be unregistered
- */
- <I extends Implementation<?>> void unregister(Class<I> implClass);
-
- /**
- * Register a binding builder for a binding type
- *
- * @param implClass the binding type
- * @param builder the buinder to be registered
- */
- <B extends BindingDefinition> void register(Class<B> implClass, BindingBuilder<B> builder);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java
deleted file mode 100644
index 668cee77e6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.builder;
-
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.Implementation;
-
-/**
- * Responsible for building a {@link Component} from an atomic or composite component configured in an assembly
- *
- * @version $Rev$ $Date$
- */
-public interface ComponentBuilder<I extends Implementation<?>> {
- Component build(CompositeComponent parent,
- ComponentDefinition<I> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
deleted file mode 100644
index b11aacc47e..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.spi.builder;
-
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-/**
- * Implementations are responsible for bridging invocation chains as an assembly is converted to runtime artifacts
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface Connector {
-
- /**
- * Connects the given source's wires to corresponding wires to a target. Wires are connected by bridging invocation
- * chains.
- *
- * @param source the source, i.e. a <code>ServiceBinding</code>, <code>Component</code>, or <code>Reference</code>
- * @throws WiringException
- */
- void connect(SCAObject source) throws WiringException;
-
- /**
- * Bridges the invocation chains associated with an inbound and outbound wire.
- *
- * @param inbound the wire to bridge from
- * @param outbound the target wire
- * @param optimizable if the bridge may be optimized
- * @throws WiringException
- */
- void connect(InboundWire inbound, OutboundWire outbound, boolean optimizable)
- throws WiringException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java
deleted file mode 100644
index 78bb5a5cc8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.spi.builder;
-
-/**
- * @version $Rev$ $Date$
- */
-public class InvalidServiceInterfaceException extends BuilderConfigException {
- private final Class<?> interfaceClass;
-
- public InvalidServiceInterfaceException(String message, Class<?> interfaceClass) {
- super(message);
- this.interfaceClass = interfaceClass;
- }
-
- public Class<?> getInterfaceClass() {
- return interfaceClass;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java
deleted file mode 100644
index 5a0b046430..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.builder;
-
-/**
- * Denotes a missing wire target in an assembly
- *
- * @version $Rev$ $Date$
- */
-public class MissingWireTargetException extends WiringException {
-
- public MissingWireTargetException(String message) {
- super(message);
- }
-
- public MissingWireTargetException(String message, String identifier) {
- super(message, identifier);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java
deleted file mode 100644
index acf8dadda6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.spi.builder;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ScopeNotFoundException extends BuilderConfigException {
-
- public ScopeNotFoundException(String scope) {
- super("Scope not found", scope);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java
deleted file mode 100644
index d5e17919fd..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.spi.builder;
-
-/**
- * Denotes a general error raised during wiring
- *
- * @version $Rev$ $Date$
- */
-public abstract class WiringException extends BuilderException {
- private String sourceName;
- private String referenceName;
- private String targetName;
- private String targetServiceName;
-
- protected WiringException(String message) {
- super(message);
- }
-
- protected WiringException(String message, String identifier) {
- super(message, identifier);
- }
-
- protected WiringException(String message, Throwable cause) {
- super(message, cause);
- }
-
- protected WiringException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- protected WiringException(Throwable cause) {
- super(cause);
- }
-
- /**
- * Returns the source name for the wire
- *
- * @return the source name the source name for the wire
- */
- public String getSourceName() {
- return sourceName;
- }
-
- /**
- * Sets the source name for the wire
- *
- * @param sourceName the source name for the wire
- */
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
-
- /**
- * Returns the target name for the wire
- *
- * @return the target name the source name for the wire
- */
- public String getTargetName() {
- return targetName;
- }
-
- /**
- * Sets the target name for the wire
- *
- * @param targetName the source name for the wire
- */
- public void setTargetName(String targetName) {
- this.targetName = targetName;
- }
-
-
- /**
- * Returns the source reference name for the wire
- *
- * @return the source reference name for the wire
- */
- public String getReferenceName() {
- return referenceName;
- }
-
- /**
- * Sets the source reference name for the wire
- *
- * @param referenceName the source reference name for the wire
- */
- public void setReferenceName(String referenceName) {
- this.referenceName = referenceName;
- }
-
- /**
- * Returns the target service name for the wire
- *
- * @return the target service name for the wire
- */
- public String getTargetServiceName() {
- return targetServiceName;
- }
-
- /**
- * Sets the target service name for the wire
- *
- * @param targetServiceName the target service name for the wire
- */
- public void setTargetServiceName(String targetServiceName) {
- this.targetServiceName = targetServiceName;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java
deleted file mode 100644
index de98aa4437..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.apache.tuscany.spi.AbstractLifecycle;
-import org.apache.tuscany.spi.event.Event;
-import org.apache.tuscany.spi.event.EventFilter;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.event.TrueFilter;
-
-/**
- * Functionality common to all <code>SCAObject<code> implementations
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractSCAObject extends AbstractLifecycle implements SCAObject {
- protected static final EventFilter TRUE_FILTER = new TrueFilter();
-
- protected Map<EventFilter, List<RuntimeEventListener>> listeners;
- protected final CompositeComponent parent;
- private final String name;
- private final Map<Object, Object> extensions = new HashMap<Object, Object>();
- private String canonicalName;
-
- public AbstractSCAObject(String name, CompositeComponent parent) {
- this.name = name;
- this.parent = parent;
- }
-
- public String getName() {
- return name;
- }
-
- public String getCanonicalName() {
- if (canonicalName == null) {
- StringBuffer b = new StringBuffer(name);
- if (parent != null) {
- b.insert(0, parent.getCanonicalName() + "/");
- }
- canonicalName = b.toString();
- }
- return canonicalName;
- }
-
- public CompositeComponent getParent() {
- return parent;
- }
-
- public void addListener(RuntimeEventListener listener) {
- addListener(TRUE_FILTER, listener);
- }
-
- public void removeListener(RuntimeEventListener listener) {
- assert listener != null : "Listener cannot be null";
- synchronized (getListeners()) {
- for (List<RuntimeEventListener> currentList : getListeners().values()) {
- for (RuntimeEventListener current : currentList) {
- if (current == listener) {
- currentList.remove(current);
- return;
- }
- }
- }
- }
- }
-
- public void addListener(EventFilter filter, RuntimeEventListener listener) {
- assert listener != null : "Listener cannot be null";
- synchronized (getListeners()) {
- List<RuntimeEventListener> list = getListeners().get(filter);
- if (list == null) {
- list = new CopyOnWriteArrayList<RuntimeEventListener>();
- listeners.put(filter, list);
- }
- list.add(listener);
- }
- }
-
- public void publish(Event event) {
- assert event != null : "Event object was null";
- for (Map.Entry<EventFilter, List<RuntimeEventListener>> entry : getListeners().entrySet()) {
- if (entry.getKey().match(event)) {
- for (RuntimeEventListener listener : entry.getValue()) {
- listener.onEvent(event);
- }
- }
- }
- }
-
- protected Map<EventFilter, List<RuntimeEventListener>> getListeners() {
- if (listeners == null) {
- listeners = new ConcurrentHashMap<EventFilter, List<RuntimeEventListener>>();
- }
- return listeners;
- }
-
- public void prepare() throws PrepareException {
-
- }
-
- public String toString() {
- return "[" + name + "] in state [" + super.toString() + ']';
- }
-
- public Map<Object, Object> getExtensions() {
- return extensions;
- }
-
- public boolean isSystem() {
- return false;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java
deleted file mode 100644
index aa4c41889b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.List;
-
-import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-/**
- * The runtime instantiation of an SCA atomic, or leaf-type, component
- *
- * @version $Rev$ $Date$
- */
-public interface AtomicComponent extends Component {
-
- /**
- * Returns true if component instances should be eagerly initialized.
- *
- * @return true if component instances should be eagerly initialized
- */
- boolean isEagerInit();
-
- /**
- * Returns true if component instances receive destroy events.
- *
- * @return true if component instances receive destroy events
- */
- boolean isDestroyable();
-
- /**
- * Returns the initialization level for this component.
- *
- * @return the initialization level for this component
- */
- int getInitLevel();
-
- /**
- * Returns the idle time allowed between operations in milliseconds if the implementation is conversational.
- *
- * @return the idle time allowed between operations in milliseconds if the implementation is conversational
- */
- long getMaxIdleTime();
-
- /**
- * Returns the maximum age a conversation may remain active in milliseconds if the implementation is
- * conversational.
- *
- * @return the maximum age a conversation may remain active in milliseconds if the implementation is conversational
- */
- long getMaxAge();
-
- /**
- * Adds a target-side wire. Target-side wire factories contain the invocation chains associated with the destination
- * service of a wire
- */
- void addInboundWire(InboundWire wire);
-
- /**
- * Adds a source-side wire for the given reference. Source-side wires contain the invocation chains for a reference
- * in the implementation associated with the instance wrapper created by this configuration.
- */
- void addOutboundWire(OutboundWire wire);
-
- /**
- * Adds a set of source-side multiplicity wires for the given reference. Source-side wires contain the invocation
- * chains for a reference in the implementation associated with the instance wrapper created by this configuration.
- */
- void addOutboundWires(List<OutboundWire> wires);
-
- /**
- * Notifies the given instance of an initialization event.
- *
- * @throws TargetInitializationException
- */
- void init(Object instance) throws TargetInitializationException;
-
- /**
- * Notifies the given instance of a destroy event.
- *
- * @throws TargetDestructionException
- */
- void destroy(Object instance) throws TargetDestructionException;
-
- /**
- * Creates a new implementation instance, generally used as a callback by a {@link
- * org.apache.tuscany.spi.component.ScopeContainer}.
- *
- * @return the instance
- * @throws ObjectCreationException
- */
- Object createInstance() throws ObjectCreationException;
-
- /**
- * Removes an implementation instance associated with the current invocation context.
- *
- * @throws ComponentException
- */
- void removeInstance() throws ComponentException;
-
- /**
- * Returns the target instance associated with the component. A target instance is the actual object a request is
- * dispatched to sans wire chain.
- *
- * @throws TargetResolutionException
- */
- Object getTargetInstance() throws TargetResolutionException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
deleted file mode 100644
index ec4eedfe90..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * The runtime instantiation of an SCA component
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface Component extends SCAObject {
-
- /**
- * Sets the scope container associated with the component
- *
- * @param scopeContainer the scope container associated with the component
- */
- void setScopeContainer(ScopeContainer scopeContainer);
-
- /**
- * Returns the default property values associated with the component.
- *
- * @return default property values associated with the component.
- */
- Map<String, PropertyValue<?>> getDefaultPropertyValues();
-
- /**
- * Sets the default property values associated with the component.
- *
- * @param defaultPropertyValues Default property values associated with the component.
- */
- void setDefaultPropertyValues(Map<String, PropertyValue<?>> defaultPropertyValues);
-
- /**
- * Returns true if invocation dispatching can be optimized, i.e. invocation chains are not required
- *
- * @return true if invocation dispatching can be optimized, i.e. invocation chains are not required
- */
- boolean isOptimizable();
-
- /**
- * Returns the wire associated with the given service name or null if not found.
- *
- * @return the wire associated with the given service name or null if not found.
- */
- InboundWire getInboundWire(String serviceName);
-
- /**
- * Returns a map of inbound wires.
- *
- * @return a map of inbound wires.
- */
- Collection<InboundWire> getInboundWires();
-
- /**
- * Returns a map of source-side wires for references. There may be 1..n wires per reference.
- *
- * @return a map of source-side wires for references.
- */
- Map<String, List<OutboundWire>> getOutboundWires();
-
- /**
- * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service offered by
- * the component
- *
- * @param targetName the service name
- * @param operation the operation to invoke
- * @param callbackWire the callback wire or null if the associated wire is unidirectional
- * @return the target invoker
- * @throws TargetInvokerCreationException
- */
- TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire)
- throws TargetInvokerCreationException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java
deleted file mode 100644
index 2007cbb6bc..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * An checked exception encountered by an {@link org.apache.tuscany.spi.component.Component}
- *
- * @version $Rev$ $Date$
- */
-public abstract class ComponentException extends TuscanyException {
-
- protected ComponentException() {
- }
-
- protected ComponentException(String message) {
- super(message);
- }
-
- protected ComponentException(String message, String identifier) {
- super(message, identifier);
- }
-
- protected ComponentException(String message, Throwable cause) {
- super(message, cause);
- }
-
- protected ComponentException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- protected ComponentException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java
deleted file mode 100644
index f34fda47a2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Thrown when an error is encountered registering a component
- *
- * @version $$Rev$$ $$Date$$
- */
-public abstract class ComponentRegistrationException extends ComponentException {
- public ComponentRegistrationException() {
- }
-
- public ComponentRegistrationException(String message) {
- super(message);
- }
-
- public ComponentRegistrationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public ComponentRegistrationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public ComponentRegistrationException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java
deleted file mode 100644
index 8479681c75..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-
-/**
- * An unchecked exception encountered by an {@link org.apache.tuscany.spi.component.Component}
- *
- * @version $Rev$ $Date$
- */
-public abstract class ComponentRuntimeException extends CoreRuntimeException {
-
- public ComponentRuntimeException() {
- super();
- }
-
- public ComponentRuntimeException(String message) {
- super(message);
- }
-
- public ComponentRuntimeException(String message, String identifier) {
- super(message, identifier);
- }
-
- public ComponentRuntimeException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public ComponentRuntimeException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public ComponentRuntimeException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
deleted file mode 100644
index 0f73fbfac5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.List;
-import java.util.Collection;
-
-import org.w3c.dom.Document;
-
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.services.management.TuscanyManagementService;
-import org.apache.tuscany.spi.wire.InboundWire;
-
-/**
- * The runtime instantiation of an SCA composite component. Composites may contain child components, offer services, and
- * have references. Children are contained in two namespaces, an application namespace for end-user components deployed
- * to a runtime, and a system namespace for components that provide system services.
- *
- * @version $Rev$ $Date$
- */
-public interface CompositeComponent extends Component, RuntimeEventListener {
-
- /**
- * Sets the management service associated with the composite
- *
- * @param managementService the management service associated with the composite
- */
- void setManagementService(TuscanyManagementService managementService);
-
- /**
- * Returns the value of a Property of this composite.
- *
- * @param name the name of the Property
- * @return its value, or null if there is not such property or if it has no defined value
- */
- Document getPropertyValue(String name);
-
- /**
- * Registers a child of this composite.
- *
- * @param object the object to add as a child
- * @throws ComponentRegistrationException
- */
- void register(SCAObject object) throws ComponentRegistrationException;
-
- /**
- * Returns the internal system wire associated with the given service name or null if not found
- *
- * @param serviceName the service name
- * @return the system wire or null if not found
- */
- InboundWire getInboundSystemWire(String serviceName);
-
- /**
- * Returns a map of inbound system wires.
- *
- * @return a map of inbound system wires.
- */
- Collection<InboundWire> getInboundSystemWires();
-
-
- /**
- * Register a simple Java Object as a system component. This is primarily intended for use by bootstrap code to
- * create the initial configuration components.
- *
- * @param name the name of the resulting component
- * @param service the service interface the component should expose
- * @param instance the Object that will become the component's implementation
- * @throws ComponentRegistrationException
- */
- <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance)
- throws ComponentRegistrationException;
-
- /**
- * Register a simple Java Object as a system component. This is primarily intended for use by bootstrap code to
- * create the initial configuration components.
- *
- * @param name the name of the resulting component
- * @param services the service interfaces the component should expose
- * @param instance the Object that will become the component's implementation
- * @throws ComponentRegistrationException
- */
- <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance)
- throws ComponentRegistrationException;
-
- /**
- * Returns the child associated with a given name
- */
- SCAObject getChild(String name);
-
- /**
- * Returns the system child associated with a given name
- */
- SCAObject getSystemChild(String name);
-
- /**
- * Invoked by child components to return an wire to a target based on matching type. Resolved targets may be
- * serviceBindings or components in the parent or its ancestors, or references in a sibling component
- *
- * @param instanceInterface the type of service being requested
- * @return a reference to the requested service or null if one is not be found
- * @throws TargetResolutionException
- */
- InboundWire resolveAutowire(Class<?> instanceInterface) throws TargetResolutionException;
-
- /**
- * Invoked by system child components to return a wire to a system target based on matching type. Resolved targets
- * may be system serviceBindings or components in the parent or its ancestors, or references in a sibling component
- *
- * @param instanceInterface the type of service being requested
- * @return a reference to the requested service or null if one is not be found
- * @throws TargetResolutionException
- */
- InboundWire resolveSystemAutowire(Class<?> instanceInterface) throws TargetResolutionException;
-
- /**
- * Invoked by a parent component to return an wire to a target in a child based on matching type. Resolved targets
- * must be serviceBindings. For example, given a parent P and two siblings, A and B, A would request an autowire by
- * invoking {@link #resolveAutowire(Class<?>)} on P, which in turn could invoke the present method on B in order to
- * resolve a target.
- *
- * @param instanceInterface the type of service being requested
- * @return a reference to the requested service or null if one is not be found
- * @throws TargetResolutionException
- */
- InboundWire resolveExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException;
-
- /**
- * Invoked by a parent component to return a wire to a system target in a child based on matching type. Resolved
- * targets must be system serviceBindings. For example, given a parent P and two siblings, A and B, A would request
- * an autowire by invoking {@link #resolveAutowire(Class<?>)} on P, which in turn could invoke the present method on
- * B in order to resolve a target.
- *
- * @param instanceInterface the type of service being requested
- * @return a reference to the requested service or null if one is not be found
- * @throws TargetResolutionException
- */
- InboundWire resolveSystemExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java
deleted file mode 100644
index 128f301256..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an attempt to add an child to a composite component with a name equal to an existing child
- *
- * @version $Rev$ $Date$
- */
-public class DuplicateNameException extends ComponentRegistrationException {
-
- public DuplicateNameException(String message) {
- super(message);
- }
-
- public DuplicateNameException(String message, String identifier) {
- super(message, identifier);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java
deleted file mode 100644
index 7eb37c3639..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Thrown when a target for an operation is not of the required type
- *
- * @version $$Rev$$ $$Date$$
- */
-public class IllegalTargetException extends TargetResolutionException {
-
- public IllegalTargetException(String message, String identifier) {
- super(message, identifier);
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java
deleted file mode 100644
index ffda730a27..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Thrown when an invalid interface is specified during autowire registration
- *
- * @version $Rev$ $Date$
- */
-public class InvalidAutowireInterface extends ComponentRegistrationException {
-
- public InvalidAutowireInterface(String message, String identifier) {
- super(message, identifier);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java
deleted file mode 100644
index 21a1712e1a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an unknown operation sequence in a conversation
- *
- * @version $Rev$ $Date$
- */
-public class InvalidConversationSequenceException extends TargetInvocationException {
-
- public InvalidConversationSequenceException(String message, String identifier) {
- super(message, identifier);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java
deleted file mode 100644
index 06940aaff7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Raised when an error persisting a component implementation instance is encountered
- *
- * @version $Rev$ $Date$
- */
-public class PersistenceException extends ComponentException {
- public PersistenceException() {
- }
-
- public PersistenceException(String message) {
- super(message);
- }
-
- public PersistenceException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public PersistenceException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java
deleted file mode 100644
index d2be6daadf..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an exception preparing a component
- *
- * @version $Rev$ $Date$
- */
-public class PrepareException extends ComponentException {
-
- public PrepareException(String message, String identifier) {
- super(message, identifier);
- }
-
- public PrepareException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java
deleted file mode 100644
index 4ef0929422..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Raised when an error is encountered reactivating a serialized instance
- *
- * @version $Rev$ $Date$
- */
-public class ReactivationException extends ComponentRuntimeException {
- private String owner;
-
- public ReactivationException(String message) {
- super(message);
- }
-
- public ReactivationException(String message, String identifier, String ower) {
- super(message, identifier);
- this.owner = ower;
- }
-
- public ReactivationException(Throwable cause) {
- super(cause);
- }
-
- public String getOwner() {
- return owner;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java
deleted file mode 100644
index 2b3ef4be30..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.tuscany.spi.component;
-
-import java.util.List;
-
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * The runtime instantiation of an SCA reference
- *
- * @version $Rev$ $Date$
- */
-public interface Reference extends SCAObject {
-
- /**
- * Returns the contract for the reference.
- *
- * @return the contract for the reference.
- */
- ServiceContract<?> getServiceContract();
-
- /**
- * Returns the collection of bindings configured for the reference.
- *
- * @return the collection of bindings configured for the reference.
- */
- List<ReferenceBinding> getReferenceBindings();
-
- /**
- * Adds a binding the reference is configured with.
- *
- * @param binding the binding the reference is configured with.
- */
- void addReferenceBinding(ReferenceBinding binding);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java
deleted file mode 100644
index 82a2105a36..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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.spi.component;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * Manages an SCA reference configured with a binding
- *
- * @version $Rev$ $Date$
- */
-public interface ReferenceBinding extends SCAObject {
-
- /**
- * Returns the binding qualified name
- *
- * @return the binding qualified name
- */
- QName getBindingType();
-
- /**
- * Sets the parent reference for the binding
- *
- * @param reference the parent reference for the binding
- */
- void setReference(Reference reference);
-
- /**
- * Returns the inbound wire for flowing a request through the reference
- */
- InboundWire getInboundWire();
-
- /**
- * Sets the inbound wire for flowing a request through the reference
- */
- void setInboundWire(InboundWire wire);
-
- /**
- * Returns the outbound wire used by the reference to connect to a target
- */
- OutboundWire getOutboundWire();
-
- /**
- * Sets the outbound wire used by the reference to connect to a target
- */
- void setOutboundWire(OutboundWire wire);
-
- /**
- * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to the target service of
- * the reference
- *
- * @param contract the service contract to invoke on
- * @param operation the operation to invoke
- * @throws TargetInvokerCreationException
- */
- TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
- throws TargetInvokerCreationException;
-
- /**
- * Returns the service contract for the binding
- *
- * @return the service contract for the binding
- */
- ServiceContract<?> getBindingServiceContract();
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java
deleted file mode 100644
index 6454e66369..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * A serialization contract for runtime SCA artifacts. When an instance is deserialized, runtime services defined in
- * this contract must be set before reactivating the instance
- *
- * @version $Rev$ $Date$
- */
-public interface SCAExternalizable {
-
- /**
- * Sets the current work context
- *
- * @param context the current work context
- */
- void setWorkContext(WorkContext context);
-
- /**
- * Callback after all values have been set prior to making the instance available in the runtime
- *
- * @throws org.apache.tuscany.spi.component.ReactivationException
- *
- */
- void reactivate() throws ReactivationException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java
deleted file mode 100644
index 668eb1f90a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.Lifecycle;
-import org.apache.tuscany.spi.event.EventPublisher;
-import org.apache.tuscany.spi.model.Scope;
-
-/**
- * Represents the base SCA artifact type in an assembly
- *
- * @version $Rev$ $Date$
- */
-public interface SCAObject extends EventPublisher, Lifecycle {
-
- /**
- * Returns the artifact name
- */
- String getName();
-
- /**
- * Returns the canonical artifact name
- */
- String getCanonicalName();
-
- /**
- * Returns the parent composite, or null if the artifact does not have one
- */
- CompositeComponent getParent();
-
- /**
- * Returns the artifact scope
- */
- Scope getScope();
-
- /**
- * Returns true if the artifact is a system artifact
- *
- * @return true if the artifact is a system artifact
- */
- boolean isSystem();
-
- /**
- * The extensions map contains other runtime context such as type systems for various databindings
- *
- * @return A live map of extended context
- */
- Map<Object, Object> getExtensions();
-
- /**
- * Called to signal that the composite should perform any initizalization
- */
- void prepare() throws PrepareException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java
deleted file mode 100644
index a712b1b0eb..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-
-/**
- * Denotes an error starting an SCAObject
- *
- * @version $Rev$ $Date$
- */
-public class SCAObjectStartException extends CoreRuntimeException {
-
- public SCAObjectStartException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java
deleted file mode 100644
index 9f430bc414..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-
-/**
- * Denotes an error stopping an SCAObject
- *
- * @version $Rev$ $Date$
- */
-public class SCAObjectStopException extends CoreRuntimeException {
-
- public SCAObjectStopException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java
deleted file mode 100644
index 8b67dfa696..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.spi.Lifecycle;
-import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Scope;
-
-
-/**
- * Manages the lifecycle and visibility of instances associated with a an {@link AtomicComponent}.
- *
- * @version $Rev$ $Date$
- */
-public interface ScopeContainer extends Lifecycle, RuntimeEventListener {
-
- /**
- * Returns the scope value representing the scope context
- */
- Scope getScope();
-
- /**
- * Registers a component with the scope component
- */
- void register(AtomicComponent component);
-
- /**
- * Returns an implementation instance associated with the current request context, creating one if necessary
- *
- * @throws TargetResolutionException
- */
- Object getInstance(AtomicComponent component) throws TargetResolutionException;
-
- /**
- * Returns an implementation instance associated with the current context. If no instance is found, a {@link
- * TargetNotFoundException} is thrown
- *
- * @throws TargetResolutionException
- */
- Object getAssociatedInstance(AtomicComponent component) throws TargetResolutionException;
-
- /**
- * Persists a new component implementation instance, equivalent to an insert or append operation
- *
- * @param component the owning component
- * @param id the id associated with the instance
- * @param instance the instance to persist
- * @param expiration the expiration in milliseconds
- * @throws PersistenceException
- */
- void persistNew(AtomicComponent component, String id, Object instance, long expiration) throws PersistenceException;
-
- /**
- * Persists a component implementation instance, equivalent to an update operation
- *
- * @param component the owning component
- * @param id the id associated with the instance
- * @param instance the instance to persist
- * @param expiration the expiration in milliseconds
- * @throws PersistenceException
- */
- void persist(AtomicComponent component, String id, Object instance, long expiration) throws PersistenceException;
-
- /**
- * Removes a component implementation instance associated with the current context from persistent storage
- *
- * @param component the owning component
- * @throws PersistenceException
- */
- void remove(AtomicComponent component) throws PersistenceException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java
deleted file mode 100644
index 3e7649d59e..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.api.annotation.LogLevel;
-
-/**
- * Defines monitor events for scope containers
- *
- * @version $Rev$ $Date$
- */
-public interface ScopeContainerMonitor {
-
- @LogLevel("SEVERE")
- void eagerInitializationError(Exception e);
-
- @LogLevel("SEVERE")
- void destructionError(TargetDestructionException e);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java
deleted file mode 100644
index 181b094403..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.spi.component;
-
-import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.model.Scope;
-
-/**
- * Manages {@link ScopeContainer}s in the runtime
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface ScopeRegistry {
-
- /**
- * Returns the scope container for the given scope or null if one not found
- *
- * @param scope the scope
- * @return the scope container for the given scope or null if one not found
- */
- ScopeContainer getScopeContainer(Scope scope);
-
- <T extends ScopeContainer> void registerFactory(Scope scope, ObjectFactory<T> factory);
-
- void deregisterFactory(Scope scope);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java
deleted file mode 100644
index 714a0a4313..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.List;
-
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * The runtime instantiation of an SCA service
- *
- * @version $Rev$ $Date$
- */
-public interface Service extends SCAObject {
-
- /**
- * Returns the contract for the service.
- *
- * @return the contract for the service.
- */
- ServiceContract<?> getServiceContract();
-
- /**
- * Returns the collection of bindings configured for the service.
- *
- * @return the collection of bindings configured for the service.
- */
- List<ServiceBinding> getServiceBindings();
-
- /**
- * Adds a binding the service is exposed over.
- *
- * @param binding the binding the service is exposed over.
- */
- void addServiceBinding(ServiceBinding binding);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java
deleted file mode 100644
index 3912c3bb60..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.spi.component;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * The runtime instantiation of an SCA service binding.
- *
- * @version $Rev$ $Date$
- */
-public interface ServiceBinding extends SCAObject {
-
- /**
- * Returns the binding qualified name
- *
- * @return the binding qualified name
- */
- QName getBindingType();
-
- /**
- * Sets the parent service for the binding
- *
- * @param service the parent service for the binding
- */
- void setService(Service service);
-
- /**
- * Get the ServiceContract for the binding
- *
- * @return the ServiceContract for the binding
- */
- ServiceContract<?> getBindingServiceContract();
-
- /**
- * Returns the inbound wire for flowing a request through the service
- *
- * @return the inbound wire for flowing a request through the service
- */
- InboundWire getInboundWire();
-
- /**
- * Sets the inbound wire for flowing a request through the service
- *
- * @param wire the inbound wire for flowing a request through the service
- */
- void setInboundWire(InboundWire wire);
-
- /**
- * Returns the outbound wire for flowing a request out of the service
- *
- * @return the outbound wire for flowing a request out of the service
- */
- OutboundWire getOutboundWire();
-
- /**
- * Sets the outbound wire for flowing a request out of the service
- *
- * @param wire the outbound wire for flowing a request out of the service
- */
- void setOutboundWire(OutboundWire wire);
-
- /**
- * Returns the target invoker for dispatching callback invocations
- *
- * @param contract the callback contract
- * @param operation the callback operation the target invoker dispatches to
- * @throws TargetInvokerCreationException
- */
- TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
- throws TargetInvokerCreationException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java
deleted file mode 100644
index 5f521f9b0a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an error destroying a target
- *
- * @version $Rev$ $Date$
- */
-public class TargetDestructionException extends TargetResolutionException {
-
- public TargetDestructionException(String message, String identifier) {
- super(message, identifier);
- }
-
- public TargetDestructionException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
-
- public TargetDestructionException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java
deleted file mode 100644
index 6b8278cf8b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an error while performing an operation on a target component implementation instance
- *
- * @version $Rev$ $Date$
- */
-public abstract class TargetException extends ComponentException {
-
- public TargetException(String message) {
- super(message);
- }
-
-
- public TargetException(String message, String identifier) {
- super(message, identifier);
- }
-
- public TargetException(String message, Throwable cause) {
- super(message, cause);
- }
-
-
- public TargetException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public TargetException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java
deleted file mode 100644
index eaea4c3bc9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an error initializing a target
- *
- * @version $Rev$ $Date$
- */
-public class TargetInitializationException extends TargetResolutionException {
-
- public TargetInitializationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public TargetInitializationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public TargetInitializationException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java
deleted file mode 100644
index 1fc2b24f5b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Raised when an error is encountered during a target invocation
- *
- * @version $Rev$ $Date$
- */
-public class TargetInvocationException extends TargetException {
-
- public TargetInvocationException(String message) {
- super(message);
- }
-
- public TargetInvocationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public TargetInvocationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public TargetInvocationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java
deleted file mode 100644
index ac914401cf..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an error creating a {@link org.apache.tuscany.spi.wire.TargetInvoker}
- *
- * @version $Rev$ $Date$
- */
-public abstract class TargetInvokerCreationException extends ComponentException {
-
- public TargetInvokerCreationException() {
- }
-
- public TargetInvokerCreationException(String message) {
- super(message);
- }
-
- public TargetInvokerCreationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public TargetInvokerCreationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public TargetInvokerCreationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public TargetInvokerCreationException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java
deleted file mode 100644
index cd6996789c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Thrown when a target of an operation cannot be found
- *
- * @version $$Rev$$ $$Date$$
- */
-public class TargetNotFoundException extends TargetResolutionException {
-
- public TargetNotFoundException(String message) {
- super(message);
- }
-
- public TargetNotFoundException(String message, String identifier) {
- super(message, identifier);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java
deleted file mode 100644
index 858fa9415d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.spi.component;
-
-/**
- * Denotes an error retrieving a target instance
- *
- * @version $Rev$ $Date$
- */
-public class TargetResolutionException extends TargetException {
-
- public TargetResolutionException(String message) {
- super(message);
- }
-
- public TargetResolutionException(String message, String identifier) {
- super(message, identifier);
- }
-
- public TargetResolutionException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public TargetResolutionException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java
deleted file mode 100644
index 3e244873c8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * 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.spi.component;
-
-import java.util.LinkedList;
-
-/**
- * Implementations track information associated with a request as it is processed by the runtime
- *
- * @version $Rev$ $Date$
- */
-public interface WorkContext {
-
- Object getCurrentCorrelationId();
-
- void setCurrentCorrelationId(Object correlationId);
-
- /**
- * Returns the current atomic component as a request is processed or null if it is not being tracked. Note that the
- * current atomic component is typically only tracked during persistence operations involving implementation
- * instances
- *
- * @return the current atomic component as a request is processed or null
- */
- AtomicComponent getCurrentAtomicComponent();
-
- /**
- * Sets the current atomic component that is handling processing of a request. Note that in most cases it will not
- * be necessary to track this in the rumtime
- *
- * @param component the current atomic component
- */
- void setCurrentAtomicComponent(AtomicComponent component);
-
- /**
- * Returns the current chain of SCAObject addresses
- */
- LinkedList<Object> getCurrentCallbackRoutingChain();
-
- /**
- * Sets the current stack of SCAObject addresses
- */
- void setCurrentCallbackRoutingChain(LinkedList<Object> callbackRoutingChain);
-
- /**
- * Returns the composite where a remote request came in
- */
- CompositeComponent getRemoteComponent();
-
- /**
- * Sets the composite where a remote request came in
- */
- void setRemoteComponent(CompositeComponent component);
-
- /**
- * Returns the unique key for the given identifier associated with the current request
- */
- Object getIdentifier(Object type);
-
- /**
- * Sets the unique key for the given identifier associated with the current request
- */
- void setIdentifier(Object type, Object identifier);
-
- /**
- * Clears the unique key for the given identifier associated with the current request
- */
- void clearIdentifier(Object type);
-
- /**
- * Clears all identifiers associated with the current request
- */
- void clearIdentifiers();
-
- /**
- * Removes and returns the name of the last remotable service to handle the current request
- *
- * @return the name of the last remotable service to handle the current request or null
- */
- String popServiceName();
-
- /**
- * Returns the name of the last remotable service to handle the current request
- *
- * @return the name of the last remotable service to handle the current request or null
- */
- String getCurrentServiceName();
-
- /**
- * Adds the name of the last remotable service to handle the current request
- *
- * @param name the name of the last remotable service to handle the current request or null
- */
- void pushServiceName(String name);
-
- /**
- * Clears the stack of current service names
- */
- void clearServiceNames();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java
deleted file mode 100644
index ceb72baefb..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import org.apache.tuscany.spi.model.DataType;
-
-/**
- * DataBinding represents a data representation, for example, SDO, JAXB and AXIOM
- */
-public interface DataBinding {
- /**
- * The name of a databinding should be case-insensitive and unique
- *
- * @return The name of the databinding
- */
- String getName();
-
- /**
- * Introspect a java class or interface to create a DataType model
- *
- * @param javaType The java class or interface to be introspected
- * @return The DataType or null if the java type is not supported by this databinding
- */
- DataType introspect(Class<?> javaType);
-
- /**
- * Introspect the data to figure out the corresponding data type
- *
- * @param value The object to be checked
- * @return The DataType or null if the java type is not supported by this databinding
- */
- DataType introspect(Object value);
-
- /**
- * Provide a WrapperHandler for this databinding
- * @return A wrapper handler which can handle wrapping/wrapping for this databinding
- */
- WrapperHandler getWrapperHandler();
-
- /**
- * make a copy of the input object
- * @param source object to copy
- * @return copy of the object passed in as argument
- */
- Object copy(Object object);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java
deleted file mode 100644
index ba47401cc2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import org.apache.tuscany.spi.model.DataType;
-
-/**
- * The registry for data bindings
- */
-public interface DataBindingRegistry {
- /**
- * Register a data binding
- *
- * @param dataBinding
- */
- void register(DataBinding dataBinding);
-
- /**
- * Look up a data binding by id
- *
- * @param id The name of the databinding
- * @return The databinding
- */
- DataBinding getDataBinding(String id);
-
- /**
- * Unregister a data binding
- *
- * @param id
- * @return The unregistered databinding
- */
- DataBinding unregister(String id);
-
- /**
- * Introspect the java class to figure out what DataType supports it
- *
- * @param javaType The java class or interface
- * @return A DataType representing the java type or null if no databinding
- * recognizes the java type
- */
- DataType introspectType(Class<?> javaType);
-
- /**
- * Introspect the value to figure out the corresponding DataType
- *
- * @param value The object value
- * @return A DataType representing the value or null if no databinding
- * recognizes the value
- */
- DataType introspectType(Object value);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java
deleted file mode 100755
index a0eb7ac10d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.spi.databinding;
-
-/**
- * Data pipe allows a data source pushes data into its sink and pipe the data into its result
- *
- * @param <S> The data binding type of the sink
- * @param <R> The data binding type of the result
- */
-public interface DataPipe<S, R> extends Transformer {
-
- /**
- * Returns a sink (for example, java.io.OutputStream, java.io.Writer or org.xml.sax.ContentHandler) to receive data
- * pushed by the source
- *
- * @return The sink to consume data
- */
- S getSink();
-
- /**
- * Returns the data populated by the sink
- *
- * @return
- */
- R getResult();
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java
deleted file mode 100755
index ba936b46db..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.model.DataType;
-
-/**
- * This interface will be used as a Tuscany system service to perform data mediations
- *
- * Mediate the data from one type to the other one
- *
- */
-public interface Mediator {
-
- /**
- * Mediate the data from the source type to the target type
- * @param source The data to be mediated
- * @param sourceDataType Data type for the source data
- * @param targetDataType Data type for the target data
- * @param context
- * @return
- */
- Object mediate(Object source, DataType sourceDataType, DataType targetDataType, Map<Class<?>, Object> context);
- /**
- * Mediate the source data into the target which is a sink to receive the data
- * @param source The data to be mediated
- * @param target The sink to receive data
- * @param sourceDataType Data type for the source data
- * @param targetDataType Data type for the target data
- */
- void mediate(
- Object source,
- Object target,
- DataType sourceDataType,
- DataType targetDataType,
- Map<Class<?>, Object> context);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java
deleted file mode 100644
index 21e8cc2750..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.databinding;
-
-/**
- * PullTransformer transforms data from one binding format to the other one which can be directly consumed
- *
- * @param <S> The source data type
- * @param <R> the target data type
- */
-public interface PullTransformer<S, R> extends Transformer {
- /**
- * Transform source data into the result type.
- *
- * @param source The source data
- * @param context The context for the transformation
- * @return The transformed result
- */
- R transform(S source, TransformationContext context);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java
deleted file mode 100644
index d68b6aa772..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.spi.databinding;
-
-/**
- * A transformer that pushes data from its source into the sink
- *
- * @param <S>
- * @param <R>
- */
-public interface PushTransformer<S, R> extends Transformer {
- /**
- * @param source The source data
- * @param sink The sink to receive the data
- * @param context
- */
- void transform(S source, R sink, TransformationContext context);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java
deleted file mode 100644
index 7c0bf4d01a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import org.apache.tuscany.spi.idl.TypeInfo;
-
-/**
- * Type Mapper between XML schema simple data types and java objects
- */
-public interface SimpleTypeMapper {
- /**
- * Parse the XML lexical representation into a java object
- * @param simpleType The XSD simple type
- * @param value the XML lexical representation
- * @param context The context of the transformation
- * @return A java object for the XML value
- */
- Object toJavaObject(TypeInfo simpleType, String value, TransformationContext context);
- /**
- * Create the XML lexical representation for a java object
- * @param simpleType The XSD simple type
- * @param obj The java object
- * @param context The context of the transformation
- * @return The XML lexical representation
- */
- String toXMLLiteral(TypeInfo simpleType, Object obj, TransformationContext context);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java
deleted file mode 100755
index 8287de1707..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.model.DataType;
-
-/**
- * Context for data transformation
- *
- */
-public interface TransformationContext {
- /**
- * Get the source data type
- *
- * @return
- */
- DataType getSourceDataType();
-
- /**
- * Get the target data type
- *
- * @return
- */
- DataType getTargetDataType();
-
- /**
- * Set the source data type
- *
- * @param sourceDataType
- */
- void setSourceDataType(DataType sourceDataType);
-
- /**
- * Set the target data type
- *
- * @param targetDataType
- */
- void setTargetDataType(DataType targetDataType);
-
- /**
- * Get the classloader
- *
- * @return
- */
- ClassLoader getClassLoader();
-
- /**
- * Get a map of metadata
- *
- * @return
- */
- Map<Class<?>, Object> getMetadata();
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java
deleted file mode 100755
index 9b57e1cf70..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import org.apache.tuscany.api.TuscanyRuntimeException;
-
-/**
- * Reports problems during data transformation
- */
-public class TransformationException extends TuscanyRuntimeException {
-
- private static final long serialVersionUID = 7662385613693006428L;
-
- public TransformationException() {
- super();
- }
-
- public TransformationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public TransformationException(String message) {
- super(message);
- }
-
- public TransformationException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java
deleted file mode 100755
index 2f969e979d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.spi.databinding;
-
-/**
- * A transformer provides the data transformation from source type to target type. The cost of the transformation is
- * modeled as weight.
- */
-public interface Transformer {
- /**
- * Get the source type that this transformer transforms data from. The type is used as the key when the transformer
- * is registered with TransformerRegistry.
- *
- * @return A key indentifying the source type
- */
- String getSourceDataBinding();
-
- /**
- * Get the target type that this transformer transforms data into. The type is used as the key when the transformer
- * is registered with TransformerRegistry.
- *
- * @return A key indentifying the target type
- */
- String getTargetDataBinding();
-
- /**
- * Get the cost of the transformation. The weight can be used to choose the most efficient path if there are more
- * than one available from the source to the target.
- *
- * @return An integer representing the cost of the transformation
- */
- int getWeight();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java
deleted file mode 100755
index 5381dfa081..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import java.util.List;
-
-/**
- * Registry for data transformers
- */
-public interface TransformerRegistry {
- /**
- * Register a transformer
- *
- * @param sourceDataBinding
- * @param targetDataBinding
- * @param weight
- * @param transformer
- */
- void registerTransformer(String sourceDataBinding,
- String targetDataBinding,
- int weight,
- Transformer transformer);
-
- /**
- * Register a transformer
- *
- * @param transformer
- */
- void registerTransformer(Transformer transformer);
-
- /**
- * Unregister a transformer
- *
- * @param sourceDataBinding
- * @param targetDataBinding
- * @return
- */
- boolean unregisterTransformer(String sourceDataBinding, String targetDataBinding);
-
- /**
- * Get the direct Transformer which can transform data from source type to
- * result type
- *
- * @param sourceDataBinding
- * @param targetDataBinding
- * @return
- */
- Transformer getTransformer(String sourceDataBinding, String targetDataBinding);
-
- /**
- * Get the a chain of Transformers which can transform data from source type
- * to result type
- *
- * @param sourceDataBinding
- * @param targetDataBinding
- * @return
- */
- List<Transformer> getTransformerChain(String sourceDataBinding, String targetDataBinding);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java
deleted file mode 100644
index e60cb2af92..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.spi.databinding;
-
-import org.apache.tuscany.spi.idl.ElementInfo;
-
-/**
- * A contract for transformers to deal with wrapping/unwrapping for WSDL wrapper style operations
- */
-public interface WrapperHandler<T> {
- /**
- * Create a wrapper element
- *
- * @param element The XSD element
- * @param context The transformation context
- * @return An object representing the wrapper element
- */
- T create(ElementInfo element, TransformationContext context);
-
- /**
- * Set child element for the wrapper
- *
- * @param wrapper The wrapper
- * @param i The index
- * @param childElement The XSD element
- * @param value The value of the child
- */
- void setChild(T wrapper, int i, ElementInfo childElement, Object value);
-
- /**
- * Get child element from the wrapper
- *
- * @param wrapper The wrapper
- * @param i The index
- * @param element The XSD element
- * @return The value of the child
- */
- Object getChild(T wrapper, int i, ElementInfo element);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java
deleted file mode 100644
index 2b927b8e55..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Helper for DOM
- */
-public final class DOMHelper {
- private static final DocumentBuilderFactory FACTORY = DocumentBuilderFactory.newInstance();
- static {
- FACTORY.setNamespaceAware(true);
- }
-
- private DOMHelper() {
- }
-
- public static Document newDocument() throws ParserConfigurationException {
- return newDocumentBuilder().newDocument();
- }
-
- public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
- return FACTORY.newDocumentBuilder();
- }
-
- public static QName getQName(Node node) {
- String ns = node.getNamespaceURI();
- if (ns == null) {
- ns = "";
- }
- // node.getLocalName() will return null if it is created using DOM Level
- // 1 method
- // such as createElement()
- return new QName(ns, node.getNodeName());
- }
-
- public static Element createElement(Document document, QName name) {
- String prefix = name.getPrefix();
- String qname =
- (prefix != null && prefix.length() > 0) ? prefix + ":" + name.getLocalPart() : name
- .getLocalPart();
- return document.createElementNS(name.getNamespaceURI(), qname);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java
deleted file mode 100644
index 95dcd9d1a4..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.ObjectStreamClass;
-import java.io.OutputStream;
-import java.io.Serializable;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.databinding.DataBinding;
-import org.apache.tuscany.spi.databinding.DataBindingRegistry;
-import org.apache.tuscany.spi.databinding.WrapperHandler;
-import org.apache.tuscany.spi.model.DataType;
-
-/**
- * Base Implementation of DataBinding
- *
- * @version $Rev$ $Date$
- */
-@Service(DataBinding.class)
-@Scope("COMPOSITE")
-@EagerInit
-public abstract class DataBindingExtension implements DataBinding {
-
- protected DataBindingRegistry registry;
-
- protected Class<?> baseType;
-
- protected String name;
-
- /**
- * Create a databinding with the base java type whose name will be used as the name of the databinding
- *
- * @param baseType The base java class or interface representing the databinding, for example, org.w3c.dom.Node
- */
- protected DataBindingExtension(Class<?> baseType) {
- this(baseType.getName(), baseType);
- }
-
- /**
- * Create a databinding with the name and base java type
- *
- * @param name The name of the databinding
- * @param baseType The base java class or interface representing the databinding, for example, org.w3c.dom.Node
- */
- protected DataBindingExtension(String name, Class<?> baseType) {
- this.name = name;
- this.baseType = baseType;
- }
-
- @Autowire
- public void setDataBindingRegistry(DataBindingRegistry registry) {
- this.registry = registry;
- }
-
- @Init
- public void init() {
- registry.register(this);
- }
-
- public DataType introspect(Class<?> javaType) {
- if (baseType == null || javaType == null) {
- return null;
- }
- if (baseType.isAssignableFrom(javaType)) {
- return new DataType<Class>(name, javaType, baseType);
- } else {
- return null;
- }
- }
-
- public DataType introspect(Object value) {
- if (value == null) {
- return null;
- } else {
- return introspect(value.getClass());
- }
- }
-
- public final String getName() {
- return name;
- }
-
- /**
- * @see org.apache.tuscany.spi.databinding.DataBinding#getWrapperHandler()
- */
- public WrapperHandler getWrapperHandler() {
- return null;
- }
-
- public Object copy(Object arg) {
- if (arg == null) {
- return null;
- }
- final Class clazz = arg.getClass();
- if (String.class == clazz || clazz.isPrimitive() || Number.class.isAssignableFrom(clazz)
- || Boolean.class.isAssignableFrom(clazz) || Character.class.isAssignableFrom(clazz)
- || Byte.class.isAssignableFrom(clazz)) {
- // Immutable classes
- return arg;
- }
- try {
- if (arg instanceof Serializable) {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream oos = getObjectOutputStream(bos);
- oos.writeObject(arg);
- oos.close();
- bos.close();
-
- ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
- ObjectInputStream ois = getObjectInputStream(bis, clazz.getClassLoader());
- Object objectCopy = ois.readObject();
- ois.close();
- bis.close();
- return objectCopy;
- } else {
- //return arg;
- throw new IllegalArgumentException(
- "Pass-by-value is not supported for the given object");
- }
- } catch (Exception e) {
- throw new IllegalArgumentException(
- "Pass-by-value is not supported for the given object", e);
- }
- }
-
- protected ObjectOutputStream getObjectOutputStream(OutputStream os) throws IOException {
- return new ObjectOutputStream(os);
- }
-
- protected ObjectInputStream getObjectInputStream(InputStream is, final ClassLoader cl)
- throws IOException {
- ObjectInputStream ois = new ObjectInputStream(is) {
- @Override
- protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
- try {
- return Class.forName(desc.getName(), false, cl);
- } catch (ClassNotFoundException e) {
- return super.resolveClass(desc);
- }
- }
-
- };
- return ois;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java
deleted file mode 100644
index 4605f945e2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import org.apache.tuscany.spi.databinding.PullTransformer;
-import org.apache.tuscany.spi.databinding.SimpleTypeMapper;
-import org.apache.tuscany.spi.databinding.TransformationContext;
-import org.apache.tuscany.spi.idl.ElementInfo;
-import org.apache.tuscany.spi.idl.TypeInfo;
-
-/**
- * Transformer to convert data from a simple java object to a databinding's representation
- */
-public abstract class Java2SimpleTypeTransformer<T> extends TransformerExtension<Object, T> implements
- PullTransformer<Object, T> {
-
- protected SimpleTypeMapper mapper;
-
- public Java2SimpleTypeTransformer() {
- this.mapper = new SimpleTypeMapperExtension();
- }
-
- public Java2SimpleTypeTransformer(SimpleTypeMapper mapper) {
- this.mapper = (mapper != null) ? mapper : new SimpleTypeMapperExtension();
- }
-
- public T transform(Object source, TransformationContext context) {
- ElementInfo element =
- (ElementInfo) context.getTargetDataType().getMetadata(ElementInfo.class.getName());
- TypeInfo simpleType = (TypeInfo) element.getType();
- String text = mapper.toXMLLiteral(simpleType, source, context);
- return createElement(element, text, context);
- }
-
- public Class getSourceType() {
- return Object.class;
- }
-
- public int getWeight() {
- return 10000;
- }
-
- protected abstract T createElement(ElementInfo element, String literal, TransformationContext context);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java
deleted file mode 100644
index d861bdce92..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import org.apache.tuscany.spi.databinding.PullTransformer;
-import org.apache.tuscany.spi.databinding.SimpleTypeMapper;
-import org.apache.tuscany.spi.databinding.TransformationContext;
-import org.apache.tuscany.spi.idl.ElementInfo;
-import org.apache.tuscany.spi.idl.TypeInfo;
-
-/**
- * Transformer to convert data from a databinding's representation of simple
- * types to Java Objects
- */
-public abstract class SimpleType2JavaTransformer<T> extends TransformerExtension<T, Object> implements
- PullTransformer<T, Object> {
-
- protected SimpleTypeMapper mapper;
-
- public SimpleType2JavaTransformer() {
- this.mapper = new SimpleTypeMapperExtension();
- }
-
- public SimpleType2JavaTransformer(SimpleTypeMapper mapper) {
- this.mapper = (mapper != null) ? mapper : new SimpleTypeMapperExtension();
- }
-
- public Object transform(T source, TransformationContext context) {
- TypeInfo simpleType = (TypeInfo)context.getSourceDataType().getMetadata(TypeInfo.class.getName());
- if (simpleType == null) {
- ElementInfo element =
- (ElementInfo)context.getSourceDataType().getMetadata(ElementInfo.class.getName());
- simpleType = (TypeInfo)element.getType();
- }
- return mapper.toJavaObject(simpleType, getText(source), context);
- }
-
- public Class getTargetType() {
- return Object.class;
- }
-
- public int getWeight() {
- // Cannot be used for imtermediate
- return 10000;
- }
-
- /**
- * Get the string value from the source
- * @param source
- * @return A string
- */
- protected abstract String getText(T source);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java
deleted file mode 100644
index 843ac0591d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.datatype.DatatypeConfigurationException;
-import javax.xml.datatype.DatatypeFactory;
-import javax.xml.datatype.XMLGregorianCalendar;
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.databinding.SimpleTypeMapper;
-import org.apache.tuscany.spi.databinding.TransformationContext;
-import org.apache.tuscany.spi.idl.TypeInfo;
-
-public class SimpleTypeMapperExtension extends XSDDataTypeConverter implements SimpleTypeMapper {
- public static final Map<Class, String> JAVA2XML = new HashMap<Class, String>();
-
- public static final String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
-
- public static final Map<String, Class> XML2JAVA = new HashMap<String, Class>();
-
- public static final QName XSD_ANY = new QName(URI_2001_SCHEMA_XSD, "any");
-
- public static final QName XSD_ANYSIMPLETYPE = new QName(URI_2001_SCHEMA_XSD, "anySimpleType");
-
- public static final QName XSD_ANYTYPE = new QName(URI_2001_SCHEMA_XSD, "anyType");
-
- public static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI");
-
- public static final QName XSD_BASE64 = new QName(URI_2001_SCHEMA_XSD, "base64Binary");
-
- public static final QName XSD_BOOLEAN = new QName(URI_2001_SCHEMA_XSD, "boolean");
-
- public static final QName XSD_BYTE = new QName(URI_2001_SCHEMA_XSD, "byte");
-
- public static final QName XSD_DATE = new QName(URI_2001_SCHEMA_XSD, "date");
-
- public static final QName XSD_DATETIME = new QName(URI_2001_SCHEMA_XSD, "dateTime");
-
- public static final QName XSD_DAY = new QName(URI_2001_SCHEMA_XSD, "gDay");
-
- public static final QName XSD_DECIMAL = new QName(URI_2001_SCHEMA_XSD, "decimal");
-
- public static final QName XSD_DOUBLE = new QName(URI_2001_SCHEMA_XSD, "double");
-
- public static final QName XSD_DURATION = new QName(URI_2001_SCHEMA_XSD, "duration");
-
- public static final QName XSD_ENTITIES = new QName(URI_2001_SCHEMA_XSD, "ENTITIES");
-
- public static final QName XSD_ENTITY = new QName(URI_2001_SCHEMA_XSD, "ENTITY");
-
- public static final QName XSD_FLOAT = new QName(URI_2001_SCHEMA_XSD, "float");
-
- public static final QName XSD_HEXBIN = new QName(URI_2001_SCHEMA_XSD, "hexBinary");
-
- public static final QName XSD_IDREF = new QName(URI_2001_SCHEMA_XSD, "IDREF");
-
- public static final QName XSD_IDREFS = new QName(URI_2001_SCHEMA_XSD, "IDREFS");
-
- public static final QName XSD_INT = new QName(URI_2001_SCHEMA_XSD, "int");
-
- public static final QName XSD_INTEGER = new QName(URI_2001_SCHEMA_XSD, "integer");
-
- public static final QName XSD_LONG = new QName(URI_2001_SCHEMA_XSD, "long");
-
- public static final QName XSD_MONTH = new QName(URI_2001_SCHEMA_XSD, "gMonth");
-
- public static final QName XSD_MONTHDAY = new QName(URI_2001_SCHEMA_XSD, "gMonthDay");
-
- public static final QName XSD_NAME = new QName(URI_2001_SCHEMA_XSD, "Name");
-
- public static final QName XSD_NCNAME = new QName(URI_2001_SCHEMA_XSD, "NCName");
-
- public static final QName XSD_NEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "negativeInteger");
-
- public static final QName XSD_NMTOKEN = new QName(URI_2001_SCHEMA_XSD, "NMTOKEN");
-
- public static final QName XSD_NMTOKENS = new QName(URI_2001_SCHEMA_XSD, "NMTOKENS");
-
- public static final QName XSD_NONNEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonNegativeInteger");
-
- public static final QName XSD_NONPOSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonPositiveInteger");
-
- public static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString");
-
- public static final QName XSD_NOTATION = new QName(URI_2001_SCHEMA_XSD, "NOTATION");
-
- public static final QName XSD_POSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "positiveInteger");
-
- public static final QName XSD_QNAME = new QName(URI_2001_SCHEMA_XSD, "QName");
-
- public static final QName XSD_SHORT = new QName(URI_2001_SCHEMA_XSD, "short");
-
- public static final Map<String, TypeInfo> XSD_SIMPLE_TYPES = new HashMap<String, TypeInfo>();
-
- public static final QName XSD_STRING = new QName(URI_2001_SCHEMA_XSD, "string");
-
- public static final QName XSD_TIME = new QName(URI_2001_SCHEMA_XSD, "time");
-
- public static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token");
-
- public static final QName XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, "unsignedByte");
-
- public static final QName XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, "unsignedInt");
-
- public static final QName XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, "unsignedLong");
-
- public static final QName XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, "unsignedShort");
-
- public static final QName XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, "gYear");
-
- public static final QName XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, "gYearMonth");
-
- private static final String[] XSD_TYPE_NAMES =
- {"string", "boolean", "double", "float", "int", "integer", "long", "short", "byte", "decimal",
- "base64Binary", "hexBinary", "anySimpleType", "anyType", "any", "QName", "dateTime", "date", "time",
- "normalizedString", "token", "unsignedLong", "unsignedInt", "unsignedShort", "unsignedByte",
- "positiveInteger", "negativeInteger", "nonNegativeInteger", "nonPositiveInteger", "gYearMonth",
- "gMonthDay", "gYear", "gMonth", "gDay", "duration", "Name", "NCName", "NMTOKEN", "NMTOKENS",
- "NOTATION", "ENTITY", "ENTITIES", "IDREF", "IDREFS", "anyURI", "language", "ID"};
-
- static {
- for (String type : XSD_TYPE_NAMES) {
- TypeInfo simpleType = new TypeInfo(new QName(URI_2001_SCHEMA_XSD, type), true, null);
- XSD_SIMPLE_TYPES.put(type, simpleType);
- }
- }
-
- static {
- JAVA2XML.put(boolean.class, "boolean");
- JAVA2XML.put(byte.class, "byte");
- JAVA2XML.put(short.class, "short");
- JAVA2XML.put(int.class, "int");
- JAVA2XML.put(long.class, "long");
- JAVA2XML.put(float.class, "float");
- JAVA2XML.put(double.class, "double");
- JAVA2XML.put(Boolean.class, "boolean");
- JAVA2XML.put(Byte.class, "byte");
- JAVA2XML.put(Short.class, "short");
- JAVA2XML.put(Integer.class, "int");
- JAVA2XML.put(Long.class, "long");
- JAVA2XML.put(Float.class, "float");
- JAVA2XML.put(Double.class, "double");
- JAVA2XML.put(java.lang.String.class, "string");
- JAVA2XML.put(java.math.BigInteger.class, "integer");
- JAVA2XML.put(java.math.BigDecimal.class, "decimal");
- JAVA2XML.put(java.util.Calendar.class, "dateTime");
- JAVA2XML.put(java.util.Date.class, "dateTime");
- JAVA2XML.put(javax.xml.namespace.QName.class, "QName");
- JAVA2XML.put(java.net.URI.class, "string");
- JAVA2XML.put(javax.xml.datatype.XMLGregorianCalendar.class, "anySimpleType");
- JAVA2XML.put(javax.xml.datatype.Duration.class, "duration");
- JAVA2XML.put(java.lang.Object.class, "anyType");
- JAVA2XML.put(java.awt.Image.class, "base64Binary");
- JAVA2XML.put(byte[].class, "base64Binary");
- // java2XSD.put(javax.activation.DataHandler.class, "base64Binary");
- JAVA2XML.put(javax.xml.transform.Source.class, "base64Binary");
- JAVA2XML.put(java.util.UUID.class, "string");
- }
-
- static {
- XML2JAVA.put("string", java.lang.String.class);
- XML2JAVA.put("integer", java.math.BigInteger.class);
- XML2JAVA.put("int", int.class);
- XML2JAVA.put("long", long.class);
- XML2JAVA.put("short", short.class);
- XML2JAVA.put("decimal", java.math.BigDecimal.class);
- XML2JAVA.put("float", float.class);
- XML2JAVA.put("double", double.class);
- XML2JAVA.put("boolean", boolean.class);
- XML2JAVA.put("byte", byte.class);
- XML2JAVA.put("QName", javax.xml.namespace.QName.class);
- XML2JAVA.put("dateTime", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("base64Binary", byte[].class);
- XML2JAVA.put("hexBinary", byte[].class);
- XML2JAVA.put("unsignedInt", long.class);
- XML2JAVA.put("unsignedShort", int.class);
- XML2JAVA.put("unsignedByte", short.class);
- XML2JAVA.put("time", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("date", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gDay", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gMonth", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gYear", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gYearMonth", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("gMonthDay", javax.xml.datatype.XMLGregorianCalendar.class);
- XML2JAVA.put("anySimpleType", java.lang.Object.class); // For elements
- // XML2JAVA.put("anySimpleType", java.lang.String.class); // For
- // attributes
- XML2JAVA.put("duration", javax.xml.datatype.Duration.class);
- XML2JAVA.put("NOTATION", javax.xml.namespace.QName.class);
- }
-
- private DatatypeFactory factory;
-
- public SimpleTypeMapperExtension() {
- super();
- try {
- this.factory = DatatypeFactory.newInstance();
- } catch (DatatypeConfigurationException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- public Class getJavaType(TypeInfo xmlType) {
- TypeInfo baseType = xmlType;
- while (baseType.getBaseType() != null) {
- baseType = baseType.getBaseType();
- }
- return XML2JAVA.get(baseType.getQName().getLocalPart());
- }
-
- public TypeInfo getXMLType(Class javaType) {
- return XSD_SIMPLE_TYPES.get(JAVA2XML.get(javaType));
- }
-
- public Object toJavaObject(TypeInfo simpleType, String literal, TransformationContext context) {
- /**
- * <ul>
- * <li>xsd:string --- java.lang.String
- * <li>xsd:integer --- java.math.BigInteger
- * <li>xsd:int --- int
- * <li>xsd:long --- long
- * <li>xsd:short --- short
- * <li>xsd:decimal --- java.math.BigDecimal
- * <li>xsd:float --- float
- * <li>xsd:double --- double
- * <li>xsd:boolean --- boolean
- * <li>xsd:byte --- byte
- * <li>xsd:QName --- javax.xml.namespace.QName
- * <li>xsd:dateTime --- javax.xml.datatype.XMLGregorianCalendar
- * <li>xsd:base64Binary --- byte[]
- * <li>xsd:hexBinary --- byte[]
- * <li>xsd:unsignedInt --- long
- * <li>xsd:unsignedShort --- int
- * <li>xsd:unsignedByte --- short
- * <li>xsd:time --- javax.xml.datatype.XMLGregorianCalendar
- * <li>xsd:date --- javax.xml.datatype.XMLGregorianCalendar
- * <li>xsd:g* --- javax.xml.datatype.XMLGregorianCalendar
- * <li>xsd:anySimpleType (for xsd:element of this type)a
- * java.lang.Object
- * <li>xsd:anySimpleType (for xsd:attribute of this type)
- * java.lang.String
- * <li>xsd:duration javax.xml.datatype.Duration
- * <li>xsd:NOTATION javax.xml.namespace.QName
- * </ul>
- */
-
- if (literal == null) {
- return null;
- }
- String value = literal.trim();
- if (!simpleType.isSimpleType()) {
- throw new IllegalArgumentException("Complex type is not supported for simple java databinding.");
- }
- TypeInfo baseType = simpleType;
- while (baseType.getBaseType() != null) {
- baseType = (TypeInfo)baseType.getBaseType();
- }
-
- QName type = baseType.getQName();
- if (type.equals(XSD_STRING)) {
- return parseString(value);
- } else if (type.equals(XSD_INT)) {
- return parseInt(value);
- } else if (type.equals(XSD_INTEGER)) {
- return parseInteger(value);
- } else if (type.equals(XSD_INT)) {
- return parseInt(value);
- } else if (type.equals(XSD_FLOAT)) {
- return parseFloat(value);
- } else if (type.equals(XSD_DOUBLE)) {
- return parseDouble(value);
- } else if (type.equals(XSD_SHORT)) {
- return parseShort(value);
- } else if (type.equals(XSD_DECIMAL)) {
- return parseDecimal(value);
- } else if (type.equals(XSD_BOOLEAN)) {
- return parseBoolean(value);
- } else if (type.equals(XSD_BYTE)) {
- return parseByte(value);
- } else if (type.equals(XSD_LONG)) {
- return parseLong(value);
- } else if (type.equals(XSD_UNSIGNEDBYTE)) {
- return parseUnsignedShort(value);
- } else if (type.equals(XSD_UNSIGNEDSHORT)) {
- return parseUnsignedShort(value);
- } else if (type.equals(XSD_UNSIGNEDINT)) {
- return parseUnsignedInt(value);
- } else if (type.equals(XSD_UNSIGNEDLONG)) {
- return parseUnsignedInt(value);
- } else if (type.equals(XSD_DATETIME)) {
- return parseDateTime(value);
- } else if (type.equals(XSD_DATE)) {
- return parseDate(value);
- } else if (type.equals(XSD_TIME)) {
- return parseTime(value);
- } else if (type.equals(XSD_DURATION)) {
- return parseDuration(value);
- } else if (type.equals(XSD_HEXBIN)) {
- return parseHexBinary(value);
- } else if (type.equals(XSD_BASE64)) {
- return parseBase64Binary(value);
- } else if (type.equals(XSD_QNAME)) {
- NamespaceContext namespaceContext =
- (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class)
- : null);
- return parseQName(value, namespaceContext);
- } else if (type.equals(XSD_NOTATION)) {
- NamespaceContext namespaceContext =
- (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class)
- : null);
- return parseQName(value, namespaceContext);
- } else if (type.equals(XSD_YEAR)) {
- return factory.newXMLGregorianCalendar(value);
- } else if (type.equals(XSD_MONTH)) {
- return factory.newXMLGregorianCalendar(value);
- } else if (type.equals(XSD_DAY)) {
- return factory.newXMLGregorianCalendar(value);
- } else if (type.equals(XSD_YEARMONTH)) {
- return factory.newXMLGregorianCalendar(value);
- } else if (type.equals(XSD_MONTHDAY)) {
- return factory.newXMLGregorianCalendar(value);
- } else {
- return value;
- }
- }
-
- @SuppressWarnings("deprecation")
- private XMLGregorianCalendar toXMLGregorianCalendar(Date date) {
- GregorianCalendar c =
- new GregorianCalendar(date.getYear(), date.getMonth(), date.getDate(), date.getHours(), date
- .getMinutes(), date.getSeconds());
- return factory.newXMLGregorianCalendar(c);
- }
-
- private XMLGregorianCalendar toXMLGregorianCalendar(GregorianCalendar calendar) {
- return factory.newXMLGregorianCalendar(calendar);
- }
-
- public String toXMLLiteral(TypeInfo simpleType, Object obj, TransformationContext context) {
- if (obj instanceof Float || obj instanceof Double) {
- if (obj instanceof Float) {
- return printDouble(((Float)obj).floatValue());
- } else {
- return printDouble(((Double)obj).doubleValue());
- }
- } else if (obj instanceof GregorianCalendar) {
- GregorianCalendar calendar = (GregorianCalendar)obj;
- return toXMLGregorianCalendar(calendar).toXMLFormat();
- } else if (obj instanceof Date) {
- return toXMLGregorianCalendar((Date)obj).toXMLFormat();
- } else if (obj instanceof XMLGregorianCalendar) {
- return ((XMLGregorianCalendar)obj).toXMLFormat();
- } else if (obj instanceof byte[]) {
- if (simpleType.getQName().equals(XSD_BASE64)) {
- return printBase64Binary((byte[])obj);
- } else if (simpleType.getQName().equals(XSD_HEXBIN)) {
- return printHexBinary((byte[])obj);
- }
- } else if (obj instanceof QName) {
- NamespaceContext namespaceContext =
- (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class)
- : null);
- return printQName((QName)obj, namespaceContext);
- }
- return obj.toString();
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java
deleted file mode 100644
index d54dbca1d1..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.databinding.Transformer;
-import org.apache.tuscany.spi.databinding.TransformerRegistry;
-
-/**
- * Base Implementation of Transformer which provides the registration to the transformer registry
- *
- * @version $Rev$ $Date$
- */
-@Service(Transformer.class)
-@Scope("COMPOSITE")
-@EagerInit
-public abstract class TransformerExtension<S, T> implements Transformer {
-
- protected TransformerRegistry registry;
-
- protected TransformerExtension() {
- super();
- }
-
- @Autowire
- public void setTransformerRegistry(TransformerRegistry registry) {
- this.registry = registry;
- }
-
- @Init
- public void init() {
- registry.registerTransformer(this);
- }
-
- protected abstract Class getSourceType();
-
- protected abstract Class getTargetType();
-
- public String getSourceDataBinding() {
- return getSourceType().getName();
- }
-
- public String getTargetDataBinding() {
- return getTargetType().getName();
- }
-
- public int getWeight() {
- // default to 50
- return 50;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java
deleted file mode 100644
index a0c75570bd..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java
+++ /dev/null
@@ -1,940 +0,0 @@
-/*
- * 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.spi.databinding.extension;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.Writer;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.text.FieldPosition;
-import java.text.Format;
-import java.text.ParsePosition;
-import java.util.Calendar;
-import java.util.TimeZone;
-import javax.xml.XMLConstants;
-import javax.xml.datatype.DatatypeConfigurationException;
-import javax.xml.datatype.DatatypeFactory;
-import javax.xml.datatype.Duration;
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-
-/**
- * Utility class for XSD data type conversions
- */
-public class XSDDataTypeConverter {
- public static final class Base64Binary {
- private static final char[] S_BASE64CHAR =
- {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
- 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
- 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4',
- '5', '6', '7', '8', '9', '+', '/'};
-
- private static final char S_BASE64PAD = '=';
-
- private static final byte[] S_DECODETABLE = new byte[128];
-
- static {
- for (int i = 0; i < S_DECODETABLE.length; i++) {
- S_DECODETABLE[i] = Byte.MAX_VALUE; // 127
- }
- for (int i = 0; i < S_BASE64CHAR.length; i++) {
- // 0 to 63
- S_DECODETABLE[S_BASE64CHAR[i]] = (byte) i;
- }
- }
-
- private Base64Binary() {
- }
-
- /**
- *
- */
- public static byte[] decode(char[] data, int off, int len) {
- char[] ibuf = new char[4];
- int ibufcount = 0;
- byte[] obuf = new byte[len / 4 * 3 + 3];
- int obufcount = 0;
- for (int i = off; i < off + len; i++) {
- char ch = data[i];
- if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) {
- ibuf[ibufcount++] = ch;
- if (ibufcount == ibuf.length) {
- ibufcount = 0;
- obufcount += decode0(ibuf, obuf, obufcount);
- }
- }
- }
- if (obufcount == obuf.length) {
- return obuf;
- }
- byte[] ret = new byte[obufcount];
- System.arraycopy(obuf, 0, ret, 0, obufcount);
- return ret;
- }
-
- /**
- *
- */
- public static void decode(char[] data, int off, int len, OutputStream ostream) throws IOException {
- char[] ibuf = new char[4];
- int ibufcount = 0;
- byte[] obuf = new byte[3];
- for (int i = off; i < off + len; i++) {
- char ch = data[i];
- if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) {
- ibuf[ibufcount++] = ch;
- if (ibufcount == ibuf.length) {
- ibufcount = 0;
- int obufcount = decode0(ibuf, obuf, 0);
- ostream.write(obuf, 0, obufcount);
- }
- }
- }
- }
-
- /**
- *
- */
- public static byte[] decode(String data) {
- char[] ibuf = new char[4];
- int ibufcount = 0;
- byte[] obuf = new byte[data.length() / 4 * 3 + 3];
- int obufcount = 0;
- for (int i = 0; i < data.length(); i++) {
- char ch = data.charAt(i);
- if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) {
- ibuf[ibufcount++] = ch;
- if (ibufcount == ibuf.length) {
- ibufcount = 0;
- obufcount += decode0(ibuf, obuf, obufcount);
- }
- }
- }
- if (obufcount == obuf.length) {
- return obuf;
- }
- byte[] ret = new byte[obufcount];
- System.arraycopy(obuf, 0, ret, 0, obufcount);
- return ret;
- }
-
- /**
- *
- */
- public static void decode(String data, OutputStream ostream) throws IOException {
- char[] ibuf = new char[4];
- int ibufcount = 0;
- byte[] obuf = new byte[3];
- for (int i = 0; i < data.length(); i++) {
- char ch = data.charAt(i);
- if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) {
- ibuf[ibufcount++] = ch;
- if (ibufcount == ibuf.length) {
- ibufcount = 0;
- int obufcount = decode0(ibuf, obuf, 0);
- ostream.write(obuf, 0, obufcount);
- }
- }
- }
- }
-
- private static int decode0(char[] ibuf, byte[] obuf, int index) {
- int wp = index;
- int outlen = 3;
- if (ibuf[3] == S_BASE64PAD) {
- outlen = 2;
- }
- if (ibuf[2] == S_BASE64PAD) {
- outlen = 1;
- }
- int b0 = S_DECODETABLE[ibuf[0]];
- int b1 = S_DECODETABLE[ibuf[1]];
- int b2 = S_DECODETABLE[ibuf[2]];
- int b3 = S_DECODETABLE[ibuf[3]];
- switch (outlen) {
- case 1:
- obuf[wp] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3);
- return 1;
- case 2:
- obuf[wp++] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3);
- obuf[wp] = (byte) (b1 << 4 & 0xf0 | b2 >> 2 & 0xf);
- return 2;
- case 3:
- obuf[wp++] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3);
- obuf[wp++] = (byte) (b1 << 4 & 0xf0 | b2 >> 2 & 0xf);
- obuf[wp] = (byte) (b2 << 6 & 0xc0 | b3 & 0x3f);
- return 3;
- default:
- throw new IllegalArgumentException("The character sequence is not base64 encoded.");
- }
- }
-
- /**
- * Returns base64 representation of specified byte array.
- */
- public static String encode(byte[] data) {
- return encode(data, 0, data.length);
- }
-
- /**
- * Returns base64 representation of specified byte array.
- */
- public static String encode(byte[] data, int off, int len) {
- if (len <= 0) {
- return "";
- }
- char[] out = new char[len / 3 * 4 + 4];
- int rindex = off;
- int windex = 0;
- int rest = len - off;
- while (rest >= 3) {
- int i =
- ((data[rindex] & 0xff) << 16) + ((data[rindex + 1] & 0xff) << 8)
- + (data[rindex + 2] & 0xff);
- out[windex++] = S_BASE64CHAR[i >> 18];
- out[windex++] = S_BASE64CHAR[(i >> 12) & 0x3f];
- out[windex++] = S_BASE64CHAR[(i >> 6) & 0x3f];
- out[windex++] = S_BASE64CHAR[i & 0x3f];
- rindex += 3;
- rest -= 3;
- }
- if (rest == 1) {
- int i = data[rindex] & 0xff;
- out[windex++] = S_BASE64CHAR[i >> 2];
- out[windex++] = S_BASE64CHAR[(i << 4) & 0x3f];
- out[windex++] = S_BASE64PAD;
- out[windex++] = S_BASE64PAD;
- } else if (rest == 2) {
- int i = ((data[rindex] & 0xff) << 8) + (data[rindex + 1] & 0xff);
- out[windex++] = S_BASE64CHAR[i >> 10];
- out[windex++] = S_BASE64CHAR[(i >> 4) & 0x3f];
- out[windex++] = S_BASE64CHAR[(i << 2) & 0x3f];
- out[windex++] = S_BASE64PAD;
- }
- return new String(out, 0, windex);
- }
-
- /**
- * Outputs base64 representation of the specified byte array to a byte stream.
- */
- public static void encode(byte[] data, int off, int len, OutputStream ostream) throws IOException {
- if (len <= 0) {
- return;
- }
- byte[] out = new byte[4];
- int rindex = off;
- int rest = len - off;
- while (rest >= 3) {
- int i =
- ((data[rindex] & 0xff) << 16) + ((data[rindex + 1] & 0xff) << 8)
- + (data[rindex + 2] & 0xff);
- out[0] = (byte) S_BASE64CHAR[i >> 18];
- out[1] = (byte) S_BASE64CHAR[(i >> 12) & 0x3f];
- out[2] = (byte) S_BASE64CHAR[(i >> 6) & 0x3f];
- out[3] = (byte) S_BASE64CHAR[i & 0x3f];
- ostream.write(out, 0, 4);
- rindex += 3;
- rest -= 3;
- }
- if (rest == 1) {
- int i = data[rindex] & 0xff;
- out[0] = (byte) S_BASE64CHAR[i >> 2];
- out[1] = (byte) S_BASE64CHAR[(i << 4) & 0x3f];
- out[2] = (byte) S_BASE64PAD;
- out[3] = (byte) S_BASE64PAD;
- ostream.write(out, 0, 4);
- } else if (rest == 2) {
- int i = ((data[rindex] & 0xff) << 8) + (data[rindex + 1] & 0xff);
- out[0] = (byte) S_BASE64CHAR[i >> 10];
- out[1] = (byte) S_BASE64CHAR[(i >> 4) & 0x3f];
- out[2] = (byte) S_BASE64CHAR[(i << 2) & 0x3f];
- out[3] = (byte) S_BASE64PAD;
- ostream.write(out, 0, 4);
- }
- }
-
- /**
- * Outputs base64 representation of the specified byte array to a character stream.
- */
- public static void encode(byte[] data, int off, int len, Writer writer) throws IOException {
- if (len <= 0) {
- return;
- }
- char[] out = new char[4];
- int rindex = off;
- int rest = len - off;
- int output = 0;
- while (rest >= 3) {
- int i =
- ((data[rindex] & 0xff) << 16) + ((data[rindex + 1] & 0xff) << 8)
- + (data[rindex + 2] & 0xff);
- out[0] = S_BASE64CHAR[i >> 18];
- out[1] = S_BASE64CHAR[(i >> 12) & 0x3f];
- out[2] = S_BASE64CHAR[(i >> 6) & 0x3f];
- out[3] = S_BASE64CHAR[i & 0x3f];
- writer.write(out, 0, 4);
- rindex += 3;
- rest -= 3;
- output += 4;
- if (output % 76 == 0) {
- writer.write("\n");
- }
- }
- if (rest == 1) {
- int i = data[rindex] & 0xff;
- out[0] = S_BASE64CHAR[i >> 2];
- out[1] = S_BASE64CHAR[(i << 4) & 0x3f];
- out[2] = S_BASE64PAD;
- out[3] = S_BASE64PAD;
- writer.write(out, 0, 4);
- } else if (rest == 2) {
- int i = ((data[rindex] & 0xff) << 8) + (data[rindex + 1] & 0xff);
- out[0] = S_BASE64CHAR[i >> 10];
- out[1] = S_BASE64CHAR[(i >> 4) & 0x3f];
- out[2] = S_BASE64CHAR[(i << 2) & 0x3f];
- out[3] = S_BASE64PAD;
- writer.write(out, 0, 4);
- }
- }
- }
-
- /**
- * <p/>
- * Utility class for xs:hexbinary. </p>
- */
- public static final class HexBinary {
- private HexBinary() {
- }
-
- /**
- * Converts the string <code>pValue</code> into an array of hex bytes.
- */
- public static byte[] decode(String pValue) {
- if ((pValue.length() % 2) != 0) {
- throw new IllegalArgumentException("A HexBinary string must have even length.");
- }
- byte[] result = new byte[pValue.length() / 2];
- int j = 0;
- int i = 0;
- while (i < pValue.length()) {
- byte b;
- char c = pValue.charAt(i++);
- char d = pValue.charAt(i++);
- if (c >= '0' && c <= '9') {
- b = (byte) ((c - '0') << 4);
- } else if (c >= 'A' && c <= 'F') {
- b = (byte) ((c - 'A' + 10) << 4);
- } else if (c >= 'a' && c <= 'f') {
- b = (byte) ((c - 'a' + 10) << 4);
- } else {
- throw new IllegalArgumentException("Invalid hex digit: " + c);
- }
- if (d >= '0' && d <= '9') {
- b += (byte) (d - '0');
- } else if (d >= 'A' && d <= 'F') {
- b += (byte) (d - 'A' + 10);
- } else if (d >= 'a' && d <= 'f') {
- b += (byte) (d - 'a' + 10);
- } else {
- throw new IllegalArgumentException("Invalid hex digit: " + d);
- }
- result[j++] = b;
- }
- return result;
- }
-
- /**
- * Converts the byte array <code>pHexBinary</code> into a string.
- */
- public static String encode(byte[] pHexBinary) {
- StringBuffer result = new StringBuffer();
- for (int i = 0; i < pHexBinary.length; i++) {
- byte b = pHexBinary[i];
- byte c = (byte) ((b & 0xf0) >> 4);
- if (c <= 9) {
- result.append((char) ('0' + c));
- } else {
- result.append((char) ('A' + c - 10));
- }
- c = (byte) (b & 0x0f);
- if (c <= 9) {
- result.append((char) ('0' + c));
- } else {
- result.append((char) ('A' + c - 10));
- }
- }
- return result.toString();
- }
-
- /**
- * Creates a clone of the given byte array.
- */
- public static byte[] getClone(byte[] pHexBinary) {
- byte[] result = new byte[pHexBinary.length];
- System.arraycopy(pHexBinary, 0, result, 0, pHexBinary.length);
- return result;
- }
- }
-
- public class XSDDateFormat extends XSDDateTimeFormat {
- private static final long serialVersionUID = -1629412916827246627L;
-
- /**
- * Creates a new instance.
- */
- public XSDDateFormat() {
- super(true, false);
- }
- }
-
- /**
- * <p/>
- * An instance of {@link java.text.Format}, which may be used to parse and format <code>xs:dateTime</code> values.
- * </p>
- */
- public static class XSDDateTimeFormat extends Format {
- private static final long serialVersionUID = -1148332471737068969L;
-
- final boolean parseDate;
-
- final boolean parseTime;
-
- /**
- * Creates a new instance.
- */
- public XSDDateTimeFormat() {
- this(true, true);
- }
-
- XSDDateTimeFormat(boolean pParseDate, boolean pParseTime) {
- parseDate = pParseDate;
- parseTime = pParseTime;
- }
-
- private void append(StringBuffer pBuffer, int pNum, int pMinLen) {
- String s = Integer.toString(pNum);
- for (int i = s.length(); i < pMinLen; i++) {
- pBuffer.append('0');
- }
- pBuffer.append(s);
- }
-
- public StringBuffer format(Object pCalendar, StringBuffer pBuffer, FieldPosition pPos) {
- assert pCalendar != null : "The Calendar argument must not be null.";
- assert pBuffer != null : "The StringBuffer argument must not be null.";
- assert pPos != null : "The FieldPosition argument must not be null.";
-
- Calendar cal = (Calendar) pCalendar;
- if (parseDate) {
- int year = cal.get(Calendar.YEAR);
- if (year < 0) {
- pBuffer.append('-');
- year = -year;
- }
- append(pBuffer, year, 4);
- pBuffer.append('-');
- append(pBuffer, cal.get(Calendar.MONTH) + 1, 2);
- pBuffer.append('-');
- append(pBuffer, cal.get(Calendar.DAY_OF_MONTH), 2);
- if (parseTime) {
- pBuffer.append('T');
- }
- }
- if (parseTime) {
- append(pBuffer, cal.get(Calendar.HOUR_OF_DAY), 2);
- pBuffer.append(':');
- append(pBuffer, cal.get(Calendar.MINUTE), 2);
- pBuffer.append(':');
- append(pBuffer, cal.get(Calendar.SECOND), 2);
- int millis = cal.get(Calendar.MILLISECOND);
- if (millis > 0) {
- pBuffer.append('.');
- append(pBuffer, millis, 3);
- }
- }
- TimeZone tz = cal.getTimeZone();
- // JDK 1.4: int offset = tz.getOffset(cal.getTimeInMillis());
- int offset = cal.get(Calendar.ZONE_OFFSET);
- if (tz.inDaylightTime(cal.getTime())) {
- offset += cal.get(Calendar.DST_OFFSET);
- }
- if (offset == 0) {
- pBuffer.append('Z');
- } else {
- if (offset < 0) {
- pBuffer.append('-');
- offset = -offset;
- } else {
- pBuffer.append('+');
- }
- int minutes = offset / (60 * 1000);
- int hours = minutes / 60;
- minutes -= hours * 60;
- append(pBuffer, hours, 2);
- pBuffer.append(':');
- append(pBuffer, minutes, 2);
- }
- return pBuffer;
- }
-
- private int parseInt(String pString, int offset, StringBuffer pDigits) {
- int length = pString.length();
- int pOffset = offset;
- pDigits.setLength(0);
- while (pOffset < length) {
- char c = pString.charAt(pOffset);
- if (Character.isDigit(c)) {
- pDigits.append(c);
- ++pOffset;
- } else {
- break;
- }
- }
- return pOffset;
- }
-
- public Object parseObject(String pString, ParsePosition pParsePosition) {
- assert pString != null : "The String argument must not be null.";
- assert pParsePosition != null : "The ParsePosition argument must not be null.";
- int offset = pParsePosition.getIndex();
- int length = pString.length();
-
- boolean isMinus = false;
- StringBuffer digits = new StringBuffer();
- int year = 0;
- int month = 0;
- int mday = 0;
- if (parseDate) {
- // Sign
- if (offset < length) {
- char c = pString.charAt(offset);
- if (c == '+') {
- ++offset;
- } else if (c == '-') {
- ++offset;
- isMinus = true;
- }
- }
-
- offset = parseInt(pString, offset, digits);
- if (digits.length() < 4) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- year = Integer.parseInt(digits.toString());
-
- if (offset < length && pString.charAt(offset) == '-') {
- ++offset;
- } else {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
-
- offset = parseInt(pString, offset, digits);
- if (digits.length() != 2) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- month = Integer.parseInt(digits.toString());
-
- if (offset < length && pString.charAt(offset) == '-') {
- ++offset;
- } else {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
-
- offset = parseInt(pString, offset, digits);
- if (digits.length() != 2) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- mday = Integer.parseInt(digits.toString());
-
- if (parseTime) {
- if (offset < length && pString.charAt(offset) == 'T') {
- ++offset;
- } else {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- }
- } else {
- year = month = mday = 0;
- }
-
- int hour = 0;
- int minute = 0;
- int second = 0;
- int millis = 0;
- if (parseTime) {
- offset = parseInt(pString, offset, digits);
- if (digits.length() != 2) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- hour = Integer.parseInt(digits.toString());
-
- if (offset < length && pString.charAt(offset) == ':') {
- ++offset;
- } else {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
-
- offset = parseInt(pString, offset, digits);
- if (digits.length() != 2) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- minute = Integer.parseInt(digits.toString());
-
- if (offset < length && pString.charAt(offset) == ':') {
- ++offset;
- } else {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
-
- offset = parseInt(pString, offset, digits);
- if (digits.length() != 2) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- second = Integer.parseInt(digits.toString());
-
- if (offset < length && pString.charAt(offset) == '.') {
- ++offset;
- offset = parseInt(pString, offset, digits);
- if (digits.length() > 0) {
- millis = Integer.parseInt(digits.toString());
- } else {
- millis = 0;
- }
- } else {
- millis = 0;
- }
- } else {
- hour = minute = second = millis = 0;
- }
-
- digits.setLength(0);
- digits.append("GMT");
- if (offset < length) {
- char c = pString.charAt(offset);
- if (c == 'Z') {
- // Ignore UTC, it is the default
- ++offset;
- } else if (c == '+' || c == '-') {
- digits.append(c);
- ++offset;
- for (int i = 0; i < 5; i++) {
- if (offset >= length) {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- c = pString.charAt(offset);
- if ((i != 2 && Character.isDigit(c)) || (i == 2 && c == ':')) {
- digits.append(c);
- } else {
- pParsePosition.setErrorIndex(offset);
- return null;
- }
- ++offset;
- }
- }
- }
-
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(digits.toString()));
- cal.set(isMinus ? -year : year, parseDate ? month - 1 : month, mday, hour, minute, second);
- cal.set(Calendar.MILLISECOND, millis);
- pParsePosition.setIndex(offset);
- return cal;
- }
- }
-
- public static class XSDTimeFormat extends XSDDateTimeFormat {
- private static final long serialVersionUID = 1346506860724640517L;
-
- /**
- * Creates a new instance.
- */
- public XSDTimeFormat() {
- super(false, true);
- }
- }
-
- private static final long MAX_UNSIGNED_INT = (((long) Integer.MAX_VALUE) * 2) + 1;
-
- private static final int MAX_UNSIGNED_SHORT = Short.MAX_VALUE * 2 + 1;
-
- public String parseAnySimpleType(String value) {
- return value;
- }
-
- public byte[] parseBase64Binary(String value) {
- return Base64Binary.decode(value);
- }
-
- public boolean parseBoolean(String value) {
- return Boolean.valueOf(value).booleanValue();
- }
-
- public byte parseByte(String value) {
- return Byte.parseByte(value);
- }
-
- public Calendar parseDate(String value) {
- XSDDateFormat format = new XSDDateFormat();
- ParsePosition pos = new ParsePosition(0);
- Calendar cal = (Calendar) format.parseObject(value, pos);
- if (cal == null) {
- throw new IllegalArgumentException("Failed to parse date " + value + " at:"
- + value.substring(pos.getErrorIndex()));
- }
- return cal;
- }
-
- public Calendar parseDateTime(String value) {
- XSDDateTimeFormat format = new XSDDateTimeFormat();
- ParsePosition pos = new ParsePosition(0);
- Calendar cal = (Calendar) format.parseObject(value, pos);
- if (cal == null) {
- throw new IllegalArgumentException("Failed to parse dateTime " + value + " at:"
- + value.substring(pos.getErrorIndex()));
- }
- return cal;
- }
-
- public BigDecimal parseDecimal(String value) {
- return new BigDecimal(value);
- }
-
- public double parseDouble(String value) {
- if ("INF".equals(value)) {
- return Double.POSITIVE_INFINITY;
- } else if ("-INF".equals(value)) {
- return Double.NEGATIVE_INFINITY;
- } else if ("NaN".equals(value)) {
- return Double.NaN;
- } else {
- return Double.parseDouble(value);
- }
- }
-
- public Duration parseDuration(String pDuration) {
- try {
- return DatatypeFactory.newInstance().newDuration(pDuration);
- } catch (DatatypeConfigurationException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- public float parseFloat(String value) {
- if ("INF".equals(value)) {
- return Float.POSITIVE_INFINITY;
- } else if ("-INF".equals(value)) {
- return Float.NEGATIVE_INFINITY;
- } else if ("NaN".equals(value)) {
- return Float.NaN;
- } else {
- return Float.parseFloat(value);
- }
- }
-
- public byte[] parseHexBinary(String value) {
- return HexBinary.decode(value);
- }
-
- public int parseInt(String value) {
- return Integer.parseInt(value);
- }
-
- public BigInteger parseInteger(String value) {
- return new BigInteger(value);
- }
-
- public long parseLong(String value) {
- return Long.parseLong(value);
- }
-
- public QName parseQName(String value, NamespaceContext context) {
- int offset = value.indexOf(':');
- String uri;
- String localName;
- switch (offset) {
- case -1:
- localName = value;
- uri = context.getNamespaceURI("");
- if (uri == null) {
- // Should not happen, indicates an error in the
- // NamespaceContext
- // implementation
- throw new IllegalArgumentException("The default prefix is not bound.");
- }
- break;
- case 0:
- throw new IllegalArgumentException("Default prefix must be indicated by not using a colon: "
- + value);
- default:
- String prefix = value.substring(0, offset);
- localName = value.substring(offset + 1);
- uri = context.getNamespaceURI(prefix);
- if (uri == null) {
- throw new IllegalArgumentException("The prefix " + prefix + " is not bound.");
- }
- }
- return new QName(uri, localName);
- }
-
- public short parseShort(String value) {
- return Short.parseShort(value);
- }
-
- public String parseString(String value) {
- return value;
- }
-
- public Calendar parseTime(String value) {
- XSDTimeFormat format = new XSDTimeFormat();
- ParsePosition pos = new ParsePosition(0);
- Calendar cal = (Calendar) format.parseObject(value, pos);
- if (cal == null) {
- throw new IllegalArgumentException("Failed to parse time " + value + " at:"
- + value.substring(pos.getErrorIndex()));
- }
- return cal;
- }
-
- public long parseUnsignedInt(String value) {
- long l = Long.parseLong(value);
- if (l < 0) {
- throw new IllegalArgumentException("Failed to parse UnsignedInt " + value
- + ": result is negative");
- }
- if (l > MAX_UNSIGNED_INT) {
- throw new IllegalArgumentException("Failed to parse UnsignedInt " + value
- + ": result exceeds maximum value " + MAX_UNSIGNED_INT);
- }
- return l;
- }
-
- public int parseUnsignedShort(String value) {
- int i = Integer.parseInt(value);
- if (i < 0) {
- throw new IllegalArgumentException("Failed to parse UnsignedShort " + value
- + ": result is negative");
- }
- if (i > MAX_UNSIGNED_SHORT) {
- throw new IllegalArgumentException("Failed to parse UnsignedShort " + value
- + ": result exceeds maximum value " + MAX_UNSIGNED_SHORT);
- }
- return i;
- }
-
- public String printAnySimpleType(String value) {
- return value;
- }
-
- public String printBase64Binary(byte[] value) {
- return Base64Binary.encode(value);
- }
-
- public String printBoolean(boolean value) {
- return (value ? Boolean.TRUE : Boolean.FALSE).toString();
- }
-
- public String printByte(byte value) {
- return Byte.toString(value);
- }
-
- public String printDate(Calendar value) {
- return new XSDDateFormat().format(value);
- }
-
- public String printDateTime(Calendar value) {
- return new XSDDateTimeFormat().format(value);
- }
-
- public String printDecimal(BigDecimal value) {
- return value.toString();
- }
-
- public String printDouble(double value) {
- return Double.toString(value);
- }
-
- public String printDuration(Duration pDuration) {
- return pDuration.toString();
- }
-
- public String printFloat(float value) {
- return Float.toString(value);
- }
-
- public String printHexBinary(byte[] value) {
- return HexBinary.encode(value);
- }
-
- public String printInt(int value) {
- return Integer.toString(value);
- }
-
- public String printInteger(BigInteger value) {
- return value.toString();
- }
-
- public String printLong(long value) {
- return Long.toString(value);
- }
-
- public String printQName(QName value, NamespaceContext context) {
- String prefix = context.getPrefix(value.getNamespaceURI());
- if (prefix == null) {
- throw new IllegalArgumentException("The namespace URI " + value.getNamespaceURI()
- + " is not bound.");
- } else if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) {
- return value.getLocalPart();
- } else {
- return prefix + ":" + value.getLocalPart();
- }
- }
-
- public String printShort(short value) {
- return Short.toString(value);
- }
-
- public String printString(String value) {
- return value;
- }
-
- public String printTime(Calendar value) {
- return new XSDTimeFormat().format(value);
- }
-
- public String printUnsignedInt(long value) {
- return Long.toString(value);
- }
-
- public String printUnsignedShort(int value) {
- return Integer.toString(value);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java
deleted file mode 100644
index fead0453be..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.spi.deployer;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.tuscany.host.deployment.DeploymentException;
-
-/**
- * Interface implemented by services that process assembly change sets.
- *
- * @version $Rev$ $Date$
- */
-public interface ChangeSetHandler {
- /**
- * Returns the content type that this implementation can handle.
- *
- * @return the content type that this implementation can handle
- */
- String getContentType();
-
- /**
- * Apply the changes in the supplied changeSet stream to an Assembly.
- * The content on the stream must match the content type this implementation can handle.
- *
- * @param changeSet the set of changes to apply represented as the supported content type
- * @throws DeploymentException if there was a problem applying the changes
- * @throws IOException if there was a problem reading the stream
- */
- void applyChanges(InputStream changeSet) throws DeploymentException, IOException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java
deleted file mode 100644
index df0bf4109b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.spi.deployer;
-
-/**
- * Registry for ChangeSetHandler implementations.
- *
- * @version $Rev$ $Date$
- */
-public interface ChangeSetHandlerRegistry {
- void register(ChangeSetHandler handler);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java
deleted file mode 100644
index 63db5b9e24..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.spi.deployer;
-
-import java.net.URLClassLoader;
-import java.net.URL;
-import java.net.URLStreamHandlerFactory;
-
-/**
- * ClassLoader associated with a composite.
- *
- * @version $Rev$ $Date$
- */
-public class CompositeClassLoader extends URLClassLoader {
- private static final URL[] NOURLS = {};
-
- public CompositeClassLoader(ClassLoader classLoader) {
- super(NOURLS, classLoader);
- }
-
- public CompositeClassLoader(URL[] urls, ClassLoader classLoader) {
- super(urls, classLoader);
- }
-
- public CompositeClassLoader(URL[] urls) {
- super(urls);
- }
-
- public CompositeClassLoader(URL[] urls, ClassLoader classLoader, URLStreamHandlerFactory urlStreamHandlerFactory) {
- super(urls, classLoader, urlStreamHandlerFactory);
- }
-
- public void addURL(URL url) {
- super.addURL(url);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java
deleted file mode 100644
index 4ec57b8fc1..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.deployer;
-
-/**
- * Interface for services that can process contributions.
- *
- * @version $Rev$ $Date$
- */
-public interface ContributionProcessor {
- /**
- * Returns the content type that this implementation can handle.
- *
- * @return the content type that this implementation can handle
- */
- String getContentType();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java
deleted file mode 100644
index 410c6dd61d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.spi.deployer;
-
-/**
- * @version $Rev$ $Date$
- */
-public interface ContributionProcessorRegistry {
- void register(ContributionProcessor processor);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
deleted file mode 100644
index 796416188f..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.spi.deployer;
-
-import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.ComponentException;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.Implementation;
-
-/**
- * Interface that can be used to deploy SCA bundles to a runtime.
- *
- * @version $Rev$ $Date$
- */
-public interface Deployer {
- /**
- * Deploy a component as a child of the supplied parent. This operation creates a new component in the runtime to
- * represent the supplied component definition. The type of component created will depend on the component
- * definition implementation; for example, if the implementation of the component definition is a composite then
- * typically a CompositeComponent would be returned.
- *
- * @param parent the parent context
- * @param componentDefinition the component definition as parsed from an assembly
- * @return the newly deployed component
- */
- <I extends Implementation<?>> Component deploy(CompositeComponent parent,
- ComponentDefinition<I> componentDefinition)
- throws LoaderException, BuilderException, ComponentException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
deleted file mode 100644
index 921781c484..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.spi.deployer;
-
-import java.net.URL;
-import javax.xml.stream.XMLInputFactory;
-
-import org.apache.tuscany.spi.component.ScopeContainer;
-
-/**
- * A holder that can be used during the load process to store information that is not part of the logical assembly
- * model. This should be regarded as transient and references to this context should not be stored inside the model.
- *
- * @version $Rev$ $Date$
- */
-public interface DeploymentContext {
- /**
- * Returns the parent of this deployment context.
- * Will be null for the context created at the root of a deployment.
- *
- * @return the parent of this deployment context; may be null
- */
- DeploymentContext getParent();
-
- /**
- * Returns a class loader that can be used to load application resources.
- *
- * @return a class loader that can be used to load application resources
- */
- ClassLoader getClassLoader();
-
- /**
- * Returns a factory that can be used to obtain an StAX XMLStreamReader.
- *
- * @return a factory that can be used to obtain an StAX XMLStreamReader
- */
- XMLInputFactory getXmlFactory();
-
- /**
- * Returns the ScopeContainer for the COMPOSITE scope that will be associated with this deployment unit.
- *
- * @return the ScopeContainer for the COMPOSITE scope that will be associated with this deployment unit
- */
- ScopeContainer getCompositeScope();
-
- /**
- * Returns the location of the SCDL definition being deployed.
- *
- * @return the location of the SCDL definition being deployed
- */
- URL getScdlLocation();
-
- /**
- * Return the extension property with the supplied name.
- *
- * @param name the name of the property
- * @return the property value; if null indicates that no property is present
- */
- Object getExtension(String name);
-
- /**
- * Set the value of an extension property.
- *
- * @param name the name of the property
- * @param value the property value; if null then the extension property is removed
- */
- void putExtension(String name, Object value);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java
deleted file mode 100644
index 8485a2a6fc..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.tuscany.spi.deployer;
-
-import org.apache.tuscany.api.TuscanyException;
-import org.apache.tuscany.api.annotation.LogLevel;
-
-/**
- * @version $Rev$ $Date$
- */
-public interface DeploymentMonitor {
-
- @LogLevel("DEBUG")
- void startDeployment();
-
- @LogLevel("DEBUG")
- void endDeployment();
-
- @LogLevel("SEVERE")
- void deploymentError(TuscanyException e);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java
deleted file mode 100644
index cc20866cbb..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.spi.event;
-
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-/**
- * Base implementation of an <code>EventPublisher</code>
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractEventPublisher implements EventPublisher {
- protected static final EventFilter TRUE_FILTER = new TrueFilter();
- protected Map<EventFilter, List<RuntimeEventListener>> listeners;
-
- public void addListener(RuntimeEventListener listener) {
- addListener(TRUE_FILTER, listener);
- }
-
- public void removeListener(RuntimeEventListener listener) {
- assert listener != null : "Listener cannot be null";
- synchronized (getListeners()) {
- for (List<RuntimeEventListener> currentList : getListeners().values()) {
- for (RuntimeEventListener current : currentList) {
- if (current == listener) {
- currentList.remove(current);
- return;
- }
- }
- }
- }
- }
-
- public void addListener(EventFilter filter, RuntimeEventListener listener) {
- assert listener != null : "Listener cannot be null";
- synchronized (getListeners()) {
- List<RuntimeEventListener> list = getListeners().get(filter);
- if (list == null) {
- list = new CopyOnWriteArrayList<RuntimeEventListener>();
- listeners.put(filter, list);
- }
- list.add(listener);
- }
- }
-
- public void publish(Event event) {
- assert event != null : "Event object was null";
- for (Map.Entry<EventFilter, List<RuntimeEventListener>> entry : getListeners().entrySet()) {
- if (entry.getKey().match(event)) {
- for (RuntimeEventListener listener : entry.getValue()) {
- listener.onEvent(event);
- }
- }
- }
- }
-
- protected Map<EventFilter, List<RuntimeEventListener>> getListeners() {
- if (listeners == null) {
- listeners = new ConcurrentHashMap<EventFilter, List<RuntimeEventListener>>();
- }
- return listeners;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java
deleted file mode 100644
index b874ca43c9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.event;
-
-/**
- * Represents an event that is propagated in the runtime
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface Event {
-
- /**
- * Returns the source of the event
- */
- Object getSource();
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java
deleted file mode 100644
index d61d04cdc8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.event;
-
-/**
- * Evaluates whether a {@link RuntimeEventListener} is applicable to a given runtime event
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface EventFilter {
-
- /**
- * Performs the actual evaluation on an event
- */
- boolean match(Event event);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java
deleted file mode 100644
index 35df22fb9c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.spi.event;
-
-/**
- * Publishes events in the runtime
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface EventPublisher {
-
- /**
- * Publish an event
- */
- void publish(Event object);
-
- /**
- * Registers a listener to receive notifications for the context
- */
- void addListener(RuntimeEventListener listener);
-
- /**
- * Registers a listener to receive notifications for the context
- */
- void addListener(EventFilter filter, RuntimeEventListener listener);
-
-
- /**
- * Removes a previously registered listener
- */
- void removeListener(RuntimeEventListener listener);
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java
deleted file mode 100644
index 5146559098..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.spi.event;
-
-import java.util.EventListener;
-
-/**
- * Listeners observe events fired in the SCA runtime.
- *
- * @version $Rev$ $Date$
- */
-public interface RuntimeEventListener extends EventListener {
-
- void onEvent(Event event);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java
deleted file mode 100644
index 81382b86ac..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.spi.event;
-
-/**
- * An event filter that always returns a true condition
- *
- * @version $$Rev$$ $$Date$$
- */
-public class TrueFilter implements EventFilter {
-
- public boolean match(Event event) {
- return true;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java
deleted file mode 100644
index a6c1ff086f..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.spi.extension;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.component.AbstractSCAObject;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.model.PropertyValue;
-
-/**
- * @version Provides support for property accessors.
- */
-public abstract class AbstractComponentExtension extends AbstractSCAObject implements Component {
- protected ScopeContainer scopeContainer;
-
- /**
- * Default property values.
- */
- private Map<String, PropertyValue<?>> defaultPropertyValues;
-
- /**
- * Initializes component name and parent.
- *
- * @param name Name of the component.
- * @param parent Parent of the component.
- */
- public AbstractComponentExtension(String name, CompositeComponent parent) {
- super(name, parent);
- }
-
- public void setScopeContainer(ScopeContainer scopeContainer) {
- this.scopeContainer = scopeContainer;
- }
-
- public Map<String, PropertyValue<?>> getDefaultPropertyValues() {
- return defaultPropertyValues;
- }
-
- public void setDefaultPropertyValues(Map<String, PropertyValue<?>> defaultPropertyValues) {
- this.defaultPropertyValues = defaultPropertyValues;
- }
-
- public boolean isOptimizable() {
- return false;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
deleted file mode 100644
index b2b49757fb..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * 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.spi.extension;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ComponentException;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.PrepareException;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.TargetDestructionException;
-import org.apache.tuscany.spi.component.TargetInitializationException;
-import org.apache.tuscany.spi.component.TargetInvokerCreationException;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.work.WorkScheduler;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.WireService;
-
-/**
- * An extension point for atomic component type, which new implementation types may extend
- *
- * @version $$Rev$$ $$Date$$
- */
-public abstract class AtomicComponentExtension extends AbstractComponentExtension implements AtomicComponent {
- protected ScopeContainer scopeContainer;
- protected Scope scope;
- protected Map<String, InboundWire> serviceWires = new HashMap<String, InboundWire>();
- protected Map<String, List<OutboundWire>> referenceWires = new HashMap<String, List<OutboundWire>>();
- protected WireService wireService;
- protected WorkContext workContext;
- protected WorkScheduler workScheduler;
- protected ExecutionMonitor monitor;
- private final int initLevel;
- private final long maxIdleTime;
- private final long maxAge;
- private boolean allowsPassByReference;
-
- protected AtomicComponentExtension(String name,
- CompositeComponent parent,
- WireService wireService,
- WorkContext workContext,
- WorkScheduler workScheduler,
- ExecutionMonitor monitor,
- int initLevel) {
- this(name, parent, wireService, workContext, workScheduler, monitor, initLevel, -1, -1);
-
- }
-
- protected AtomicComponentExtension(String name,
- CompositeComponent parent,
- WireService wireService,
- WorkContext workContext,
- WorkScheduler workScheduler,
- ExecutionMonitor monitor,
- int initLevel,
- long maxIdleTime,
- long maxAge) {
- super(name, parent);
- assert !(maxIdleTime > 0 && maxAge > 0);
- this.wireService = wireService;
- this.workContext = workContext;
- this.workScheduler = workScheduler;
- this.monitor = monitor;
- this.initLevel = initLevel;
- this.maxIdleTime = maxIdleTime;
- this.maxAge = maxAge;
- }
-
- public Scope getScope() {
- return scope;
- }
-
- public int getInitLevel() {
- return initLevel;
- }
-
- public boolean isEagerInit() {
- return initLevel > 0;
- }
-
- public boolean isDestroyable() {
- return false;
- }
-
- public long getMaxIdleTime() {
- return maxIdleTime;
- }
-
- public long getMaxAge() {
- return maxAge;
- }
-
- public boolean isAllowsPassByReference() {
- return allowsPassByReference;
- }
-
- public void setAllowsPassByReference(boolean allowsPassByReference) {
- this.allowsPassByReference = allowsPassByReference;
- }
-
-
- public void setScopeContainer(ScopeContainer scopeContainer) {
- this.scopeContainer = scopeContainer;
- scope = scopeContainer.getScope();
- }
-
- public void start() throws CoreRuntimeException {
- super.start();
- scopeContainer.register(this);
- }
-
- public void init(Object instance) throws TargetInitializationException {
-
- }
-
- public void destroy(Object instance) throws TargetDestructionException {
-
- }
-
- public void addInboundWire(InboundWire wire) {
- serviceWires.put(wire.getServiceName(), wire);
- onServiceWire(wire);
- }
-
- public InboundWire getInboundWire(String serviceName) {
- if (serviceName == null) {
- if (serviceWires.size() < 1) {
- return null;
- }
- return serviceWires.values().iterator().next();
- } else {
- return serviceWires.get(serviceName);
- }
- }
-
- public Collection<InboundWire> getInboundWires() {
- return Collections.unmodifiableCollection(serviceWires.values());
- }
-
- public void addOutboundWire(OutboundWire wire) {
- List<OutboundWire> list = new ArrayList<OutboundWire>();
- list.add(wire);
- referenceWires.put(wire.getReferenceName(), list);
- onReferenceWire(wire);
- }
-
- public Map<String, List<OutboundWire>> getOutboundWires() {
- return Collections.unmodifiableMap(referenceWires);
- }
-
- public void addOutboundWires(List<OutboundWire> wires) {
- assert wires != null && wires.size() > 0;
- referenceWires.put(wires.get(0).getReferenceName(), wires);
- onReferenceWires(wires);
- }
-
- public void removeInstance() throws ComponentException {
- scopeContainer.remove(this);
- }
-
- protected void onReferenceWire(OutboundWire wire) {
- }
-
- protected void onReferenceWires(List<OutboundWire> wires) {
- }
-
- protected void onServiceWire(InboundWire wire) {
- }
-
-
- public void prepare() throws PrepareException {
- // connect inbound wires for atomic components
- for (InboundWire inboundWire : getInboundWires()) {
- for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
- Operation<?> operation = chain.getOperation();
- String serviceName = inboundWire.getServiceName();
- TargetInvoker invoker;
- try {
- invoker = createTargetInvoker(serviceName, operation, null);
- } catch (TargetInvokerCreationException e) {
- throw new PrepareException("Error processing inbound wire", serviceName, e);
- }
- chain.setTargetInvoker(invoker);
- chain.prepare();
- }
- }
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
deleted file mode 100644
index 6f7859e689..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.spi.extension;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.builder.BindingBuilder;
-import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.builder.BuilderRegistry;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.BindingDefinition;
-import org.apache.tuscany.spi.model.BoundReferenceDefinition;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
-import org.apache.tuscany.spi.wire.WireService;
-
-/**
- * An extension point for binding builders. When adding support for new serviceBindings, implementations may extend this
- * class as a convenience.
- *
- * @version $$Rev$$ $$Date$$
- */
-@EagerInit
-public abstract class BindingBuilderExtension<B extends BindingDefinition> implements BindingBuilder<B> {
-
- protected BuilderRegistry builderRegistry;
- protected WireService wireService;
-
- @Autowire
- public void setBuilderRegistry(BuilderRegistry registry) {
- this.builderRegistry = registry;
- }
-
- @Autowire
- public void setWireService(WireService wireService) {
- this.wireService = wireService;
- }
-
- @Init
- public void init() {
- builderRegistry.register(getBindingType(), this);
- }
-
- public ServiceBinding build(CompositeComponent parent,
- BoundServiceDefinition boundServiceDefinition,
- B bindingDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
- return null;
- }
-
- public ReferenceBinding build(CompositeComponent parent,
- BoundReferenceDefinition boundReferenceDefinition,
- B bindingDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
- return null;
- }
-
- protected abstract Class<B> getBindingType();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
deleted file mode 100644
index d58cb55131..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * 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.spi.extension;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.builder.BuilderRegistry;
-import org.apache.tuscany.spi.builder.ComponentBuilder;
-import org.apache.tuscany.spi.builder.Connector;
-import org.apache.tuscany.spi.component.ScopeRegistry;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
-import org.apache.tuscany.spi.services.work.WorkScheduler;
-import org.apache.tuscany.spi.wire.WireService;
-
-import org.apache.tuscany.api.annotation.Monitor;
-
-/**
- * An extension point for component builders. When adding support for new component types, implementations may extend
- * this class as a convenience.
- *
- * @version $$Rev$$ $$Date$$
- */
-@EagerInit
-public abstract class ComponentBuilderExtension<I extends Implementation<?>> implements ComponentBuilder<I> {
- protected BuilderRegistry builderRegistry;
- protected ScopeRegistry scopeRegistry;
- protected WireService wireService;
- protected WorkScheduler workScheduler;
- protected WorkContext workContext;
- protected PolicyBuilderRegistry policyBuilderRegistry;
- protected Connector connector;
- protected ExecutionMonitor monitor;
-
- @Autowire
- public void setBuilderRegistry(BuilderRegistry registry) {
- this.builderRegistry = registry;
- }
-
- @Autowire
- public void setScopeRegistry(ScopeRegistry scopeRegistry) {
- this.scopeRegistry = scopeRegistry;
- }
-
- @Autowire
- public void setWireService(WireService wireService) {
- this.wireService = wireService;
- }
-
- @Autowire
- public void setWorkScheduler(WorkScheduler workScheduler) {
- this.workScheduler = workScheduler;
- }
-
- @Autowire
- public void setWorkContext(WorkContext workContext) {
- this.workContext = workContext;
- }
-
- @Autowire
- public void setPolicyBuilderRegistry(PolicyBuilderRegistry registry) {
- policyBuilderRegistry = registry;
- }
-
- @Autowire
- public void setConnector(Connector connector) {
- this.connector = connector;
- }
-
- @Monitor
- public void setMonitor(ExecutionMonitor monitor) {
- this.monitor = monitor;
- }
-
- @Init
- public void init() {
- builderRegistry.register(getImplementationType(), this);
- }
-
- protected abstract Class<I> getImplementationType();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java
deleted file mode 100644
index ceebcbc490..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.spi.extension;
-
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.EagerInit;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.loader.ComponentTypeLoader;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.model.Implementation;
-
-/**
- * @version $Rev$ $Date$
- */
-@Scope("COMPOSITE")
-@EagerInit
-public abstract class ComponentTypeLoaderExtension<I extends Implementation> implements ComponentTypeLoader<I> {
- protected LoaderRegistry loaderRegistry;
-
- protected ComponentTypeLoaderExtension() {
- }
-
- protected ComponentTypeLoaderExtension(LoaderRegistry loaderRegistry) {
- this.loaderRegistry = loaderRegistry;
- }
-
- @Autowire
- public void setLoaderRegistry(LoaderRegistry loaderRegistry) {
- this.loaderRegistry = loaderRegistry;
- }
-
- @Init
- public void start() {
- loaderRegistry.registerLoader(getImplementationClass(), this);
- }
-
- @Destroy
- public void stop() {
- loaderRegistry.unregisterLoader(getImplementationClass());
- }
-
- protected abstract Class<I> getImplementationClass();
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
deleted file mode 100644
index bb3e224012..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * 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.spi.extension;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.w3c.dom.Document;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.builder.Connector;
-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.ComponentRegistrationException;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.DuplicateNameException;
-import org.apache.tuscany.spi.component.InvalidAutowireInterface;
-import org.apache.tuscany.spi.component.PrepareException;
-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.TargetResolutionException;
-import org.apache.tuscany.spi.event.Event;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.services.management.TuscanyManagementService;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.Wire;
-
-/**
- * An extension point for composite components, which new types may extend
- *
- * @version $$Rev$$ $$Date$$
- */
-public abstract class CompositeComponentExtension extends AbstractComponentExtension implements CompositeComponent {
- protected final Map<String, SCAObject> children = new ConcurrentHashMap<String, SCAObject>();
- protected final List<Service> services = new ArrayList<Service>();
- protected final List<Reference> references = new ArrayList<Reference>();
-
- protected final Map<String, Document> propertyValues;
- protected final Connector connector;
-
- protected final Map<String, SCAObject> systemChildren = new ConcurrentHashMap<String, SCAObject>();
- protected final List<Service> systemServices = new ArrayList<Service>();
- protected final List<Reference> systemReferenceBindings = new ArrayList<Reference>();
-
- // autowire mappings
- protected final Map<Class, InboundWire> autowireInternal = new ConcurrentHashMap<Class, InboundWire>();
- protected final Map<Class, InboundWire> autowireExternal = new ConcurrentHashMap<Class, InboundWire>();
- protected final Map<Class, InboundWire> systemAutowireInternal = new ConcurrentHashMap<Class, InboundWire>();
- protected final Map<Class, InboundWire> systemAutowireExternal = new ConcurrentHashMap<Class, InboundWire>();
-
- /**
- * Management service to use.
- */
- private TuscanyManagementService managementService;
-
- protected CompositeComponentExtension(String name,
- CompositeComponent parent,
- Connector connector,
- Map<String, Document> propertyValues) {
- super(name, parent);
- this.propertyValues = propertyValues;
- this.connector = connector;
- }
-
- /**
- * Autowires the management service.
- *
- * @param managementService Management service used for registering components.
- */
- @Autowire
- public final void setManagementService(TuscanyManagementService managementService) {
- this.managementService = managementService;
- }
-
- public Scope getScope() {
- return Scope.SYSTEM;
- }
-
- public void onEvent(Event event) {
- publish(event);
- }
-
- public <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance)
- throws ComponentRegistrationException {
- throw new UnsupportedOperationException();
- }
-
- public <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance)
- throws ComponentRegistrationException {
- throw new UnsupportedOperationException();
- }
-
- public Document getPropertyValue(String name) {
- return propertyValues.get(name);
- }
-
- public SCAObject getChild(String name) {
- assert name != null;
- return children.get(name);
- }
-
- public SCAObject getSystemChild(String name) {
- assert name != null;
- return systemChildren.get(name);
- }
-
- public void register(SCAObject child) throws ComponentRegistrationException {
- assert child instanceof Service || child instanceof Reference || child instanceof Component;
- if (child.isSystem()) {
- if (systemChildren.get(child.getName()) != null) {
- throw new DuplicateNameException("A system child is already registered with the name", child.getName());
- }
- systemChildren.put(child.getName(), child);
- } else {
- if (children.get(child.getName()) != null) {
- throw new DuplicateNameException("A child is already registered with the name", child.getName());
- }
- children.put(child.getName(), child);
- }
- if (child instanceof Service) {
- Service service = (Service) child;
- synchronized (services) {
- if (service.isSystem()) {
- systemServices.add(service);
- } else {
- services.add(service);
- }
- }
- registerAutowire(service);
- } else if (child instanceof Reference) {
- Reference reference = (Reference) child;
- synchronized (references) {
- if (reference.isSystem()) {
- systemReferenceBindings.add(reference);
- } else {
- references.add(reference);
- }
- }
- registerAutowire(reference);
- } else if (child instanceof AtomicComponent) {
- AtomicComponent atomic = (AtomicComponent) child;
- registerAutowire(atomic);
- if (managementService != null) {
- managementService.registerComponent(atomic.getName(), atomic);
- }
- } else if (child instanceof CompositeComponent) {
- CompositeComponent component = (CompositeComponent) child;
- if (lifecycleState == RUNNING && component.getLifecycleState() == UNINITIALIZED) {
- component.start();
- }
- registerAutowire(component);
- addListener(component);
- }
- }
-
- public Map<String, List<OutboundWire>> getOutboundWires() {
- synchronized (references) {
- Map<String, List<OutboundWire>> map = new HashMap<String, List<OutboundWire>>();
- for (Reference reference : references) {
- List<OutboundWire> wires = new ArrayList<OutboundWire>();
- map.put(reference.getName(), wires);
- for (ReferenceBinding binding : reference.getReferenceBindings()) {
- OutboundWire wire = binding.getOutboundWire();
- if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
- wires.add(wire);
- }
- }
- }
- return map;
- }
- }
-
- public InboundWire getInboundWire(String serviceName) {
- Service service;
- if (serviceName == null) {
- if (services.size() != 1) {
- return null;
- }
- service = services.get(0);
- } else {
- SCAObject object = children.get(serviceName);
- if (!(object instanceof Service)) {
- return null;
- }
- service = (Service) object;
- }
- for (ServiceBinding binding : service.getServiceBindings()) {
- InboundWire wire = binding.getInboundWire();
- if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
- return wire;
- }
- }
- return null;
- }
-
- public InboundWire getInboundSystemWire(String serviceName) {
- Service service;
- if (serviceName == null) {
- if (systemServices.size() != 1) {
- return null;
- }
- service = systemServices.get(0);
- } else {
- SCAObject object = systemChildren.get(serviceName);
- if (!(object instanceof Service)) {
- return null;
- }
- service = (Service) object;
- }
- for (ServiceBinding binding : service.getServiceBindings()) {
- InboundWire wire = binding.getInboundWire();
- if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
- return wire;
- }
- }
- return null;
- }
-
- public Collection<InboundWire> getInboundWires() {
- synchronized (services) {
- List<InboundWire> map = new ArrayList<InboundWire>();
- for (Service service : services) {
- for (ServiceBinding binding : service.getServiceBindings()) {
- InboundWire wire = binding.getInboundWire();
- if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
- map.add(wire);
- }
- }
- }
- return map;
- }
- }
-
- public Collection<InboundWire> getInboundSystemWires() {
- synchronized (systemServices) {
- List<InboundWire> map = new ArrayList<InboundWire>();
- for (Service service : systemServices) {
- for (ServiceBinding binding : service.getServiceBindings()) {
- InboundWire wire = binding.getInboundWire();
- if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
- map.add(wire);
- }
- }
- }
- return map;
- }
- }
-
- public InboundWire resolveAutowire(Class<?> instanceInterface) throws TargetResolutionException {
- // FIXME JNB make this faster and thread safe
- for (Map.Entry<Class, InboundWire> service : autowireInternal.entrySet()) {
- if (instanceInterface.isAssignableFrom(service.getKey())) {
- return service.getValue();
- }
- }
- if (getParent() != null) {
- return getParent().resolveAutowire(instanceInterface);
- }
- return null;
- }
-
- public InboundWire resolveSystemAutowire(Class<?> instanceInterface) throws TargetResolutionException {
- // FIXME JNB make this faster and thread safe
- for (Map.Entry<Class, InboundWire> service : systemAutowireInternal.entrySet()) {
- if (instanceInterface.isAssignableFrom(service.getKey())) {
- return service.getValue();
- }
- }
- if (getParent() != null) {
- return getParent().resolveSystemAutowire(instanceInterface);
- }
- return null;
- }
-
- public InboundWire resolveExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException {
- // FIXME JNB make this faster and thread safe
- for (Map.Entry<Class, InboundWire> service : autowireExternal.entrySet()) {
- if (instanceInterface.isAssignableFrom(service.getKey())) {
- return service.getValue();
- }
- }
- if (getParent() != null) {
- return getParent().resolveAutowire(instanceInterface);
- }
- return null;
- }
-
- public InboundWire resolveSystemExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException {
- // FIXME JNB make this faster and thread safe
- for (Map.Entry<Class, InboundWire> service : systemAutowireExternal.entrySet()) {
- if (instanceInterface.isAssignableFrom(service.getKey())) {
- return service.getValue();
- }
- }
- if (getParent() != null) {
- return getParent().resolveAutowire(instanceInterface);
- }
- return null;
- }
-
- public void prepare() throws PrepareException {
- // Connect services and references first so that their wires are linked first
- List<SCAObject> childList = new ArrayList<SCAObject>();
- for (SCAObject child : systemChildren.values()) {
- if (child instanceof Component) {
- childList.add(child);
- } else {
- childList.add(0, child);
- }
- }
- // connect system artifacts
- for (SCAObject child : childList) {
- // connect all children
- // TODO for composite wires, should delegate down
- try {
- connector.connect(child);
- child.prepare();
- } catch (PrepareException e) {
- e.addContextName(getName());
- } catch (WiringException e) {
- throw new PrepareException("Error preparing composite", getName(), e);
- }
- }
-
- // connect application artifacts
- childList.clear();
- for (SCAObject child : children.values()) {
- if (child instanceof Component) {
- childList.add(child);
- } else {
- childList.add(0, child);
- }
- }
- for (SCAObject child : childList) {
- // connect all children
- // TODO for composite wires, should delegate down
- try {
- connector.connect(child);
- child.prepare();
- } catch (PrepareException e) {
- e.addContextName(getName());
- throw e;
- } catch (WiringException e) {
- throw new PrepareException("Error preparing composite", getName(), e);
- }
- }
- }
-
- protected void registerAutowireExternal(Class<?> interfaze, Service service) throws InvalidAutowireInterface {
- if (interfaze == null) {
- // The ServiceContract is not from Java
- return;
- }
- if (service.isSystem()) {
- if (systemAutowireExternal.containsKey(interfaze)) {
- return;
- }
- // TODO autowire should allow multiple interfaces
- List<ServiceBinding> bindings = service.getServiceBindings();
- if (bindings.size() == 0) {
- return;
- }
- // pick the first binding until autowire allows multiple interfaces
- InboundWire wire = bindings.get(0).getInboundWire();
- if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface",
- interfaze.getName());
- }
- systemAutowireExternal.put(interfaze, wire);
- } else {
- if (autowireExternal.containsKey(interfaze)) {
- return;
- }
- // TODO autowire should allow multiple interfaces
- List<ServiceBinding> bindings = service.getServiceBindings();
- if (bindings.size() == 0) {
- return;
- }
- // pick the first binding until autowire allows multiple interfaces
- InboundWire wire = bindings.get(0).getInboundWire();
- if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
- String iName = interfaze.getName();
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
- }
- autowireExternal.put(interfaze, wire);
- }
- }
-
- protected void registerAutowireInternal(Class<?> interfaze, InboundWire wire, boolean system)
- throws InvalidAutowireInterface {
- if (interfaze == null) {
- // The ServiceContract is not from Java
- return;
- }
- if (system) {
- if (systemAutowireInternal.containsKey(interfaze)) {
- return;
- }
- systemAutowireInternal.put(interfaze, wire);
- } else {
- if (autowireInternal.containsKey(interfaze)) {
- return;
- }
- if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
- String iName = interfaze.getName();
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
- }
- autowireInternal.put(interfaze, wire);
- }
- }
-
- protected void registerAutowireInternal(Class<?> interfaze, Reference reference) throws InvalidAutowireInterface {
- if (interfaze == null) {
- // The ServiceContract is not from Java
- return;
- }
- if (reference.isSystem()) {
- if (systemAutowireInternal.containsKey(interfaze)) {
- return;
- }
- List<ReferenceBinding> bindings = reference.getReferenceBindings();
- if (bindings.size() == 0) {
- return;
- }
- // pick the first binding until autowire allows multiple interfaces
- InboundWire wire = bindings.get(0).getInboundWire();
- if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface",
- interfaze.getName());
- }
- systemAutowireInternal.put(interfaze, wire);
- } else {
- if (autowireInternal.containsKey(interfaze)) {
- return;
- }
- List<ReferenceBinding> bindings = reference.getReferenceBindings();
- if (bindings.size() == 0) {
- return;
- }
- // pick the first binding until autowire allows multiple interfaces
- InboundWire wire = bindings.get(0).getInboundWire();
- if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
- String iName = interfaze.getName();
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
- }
- autowireInternal.put(interfaze, wire);
- }
- }
-
- protected void registerAutowireInternal(Class<?> interfaze, AtomicComponent component)
- throws InvalidAutowireInterface {
- if (interfaze == null) {
- // The ServiceContract is not from Java
- return;
- }
- if (component.isSystem()) {
- if (systemAutowireInternal.containsKey(interfaze) || component.getInboundWires().size() == 0) {
- return;
- }
- for (InboundWire wire : component.getInboundWires()) {
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- if (clazz.isAssignableFrom(interfaze)) {
- systemAutowireInternal.put(interfaze, wire);
- return;
- }
- }
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface", interfaze.getName());
- } else {
- if (autowireInternal.containsKey(interfaze) || component.getInboundWires().size() == 0) {
- return;
- }
- for (InboundWire wire : component.getInboundWires()) {
- if (interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
- autowireInternal.put(interfaze, wire);
- return;
- }
- }
- throw new InvalidAutowireInterface("Matching inbound wire not found for interface", interfaze.getName());
- }
- }
-
- protected void registerAutowire(CompositeComponent component) throws InvalidAutowireInterface {
- if (component.isSystem()) {
- // the composite is under the system hierarchy so only register its system services
- Collection<InboundWire> wires = component.getInboundSystemWires();
- for (InboundWire wire : wires) {
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- registerAutowireInternal(clazz, wire, true);
- }
-
- } else {
- // the composite is under the application hierarchy so only register its non-system services
- Collection<InboundWire> wires = component.getInboundWires();
- for (InboundWire wire : wires) {
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- registerAutowireInternal(clazz, wire, false);
- }
- }
- }
-
- protected void registerAutowire(AtomicComponent component) throws InvalidAutowireInterface {
- for (InboundWire wire : component.getInboundWires()) {
- registerAutowireInternal(wire.getServiceContract().getInterfaceClass(), component);
- }
- }
-
- protected void registerAutowire(Reference reference) throws InvalidAutowireInterface {
- // TODO autowire should allow multiple interfaces
- List<ReferenceBinding> bindings = reference.getReferenceBindings();
- if (bindings.size() == 0) {
- return;
- }
- // pick the first binding until autowire allows multiple interfaces
- InboundWire wire = bindings.get(0).getInboundWire();
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- registerAutowireInternal(clazz, reference);
-
-
- }
-
- protected void registerAutowire(Service service) throws InvalidAutowireInterface {
- // TODO autowire should allow multiple interfaces
- List<ServiceBinding> bindings = service.getServiceBindings();
- if (bindings.size() == 0) {
- return;
- }
- // pick the first binding until autowire allows multiple interfaces
- InboundWire wire = bindings.get(0).getInboundWire();
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- registerAutowireExternal(clazz, service);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java
deleted file mode 100644
index fc6e5b7a14..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.extension;
-
-/**
- * A monitor used to log events during an invocation
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface ExecutionMonitor {
-
- /**
- * Logs an exception thrown during an invocation
- */
- void executionError(Throwable e);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java
deleted file mode 100644
index d256ef1fdd..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.spi.extension;
-
-import javax.xml.namespace.QName;
-
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.EagerInit;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.StAXElementLoader;
-import org.apache.tuscany.spi.model.ModelObject;
-
-/**
- * Support class for extending the Loader mechanism.
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-public abstract class LoaderExtension<T extends ModelObject> implements StAXElementLoader<T> {
- /**
- * The LoaderRegistry that this loader should register with; usually set by injection. This registry may also be
- * used to load sub-elements.
- */
- protected LoaderRegistry registry;
-
- /**
- * Constructor specifies the registry to register with.
- *
- * @param registry the LoaderRegistry this loader should register with
- */
- protected LoaderExtension(@Autowire LoaderRegistry registry) {
- this.registry = registry;
- }
-
- /**
- * Initialize the loader. The base implementation registers this loader with the registry as a handler for the XML
- * type returned by {@link #getXMLType()}. Implementations may override this to register the loader as a handler for
- * multiple XML types.
- */
- @Init
- public void start() {
- registry.registerLoader(getXMLType(), this);
- }
-
- /**
- * Destroy the loader. The base implementation unregisters the loader from the regsitry based on the type returned
- * by {@link #getXMLType()}.
- */
- @Destroy
- public void stop() {
- registry.unregisterLoader(getXMLType(), this);
- }
-
- /**
- * Returns the QName of the element that this implementation handles.
- *
- * @return the QName of the element that this implementation handles
- */
- public abstract QName getXMLType();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java
deleted file mode 100644
index 1653e87dc2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.spi.extension;
-
-import org.apache.tuscany.spi.component.AbstractSCAObject;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-/**
- * The default implementation of an SCA reference
- *
- * @version $Rev$ $Date$
- */
-public abstract class ReferenceBindingExtension extends AbstractSCAObject implements ReferenceBinding {
- protected Reference reference;
- protected InboundWire inboundWire;
- protected OutboundWire outboundWire;
- protected ServiceContract<?> bindingServiceContract;
-
- protected ReferenceBindingExtension(String name, CompositeComponent parent) {
- super(name, parent);
- }
-
- public Scope getScope() {
- return Scope.SYSTEM;
- }
-
- public void setReference(Reference reference) {
- this.reference = reference;
- }
-
- public void setInboundWire(InboundWire wire) {
- this.inboundWire = wire;
- }
-
- public InboundWire getInboundWire() {
- return inboundWire;
- }
-
- public OutboundWire getOutboundWire() {
- return outboundWire;
- }
-
- public void setOutboundWire(OutboundWire outboundWire) {
- this.outboundWire = outboundWire;
- }
-
- public ServiceContract<?> getBindingServiceContract() {
- return bindingServiceContract;
- }
-
- @Override
- public boolean isSystem() {
- return reference != null && reference.isSystem();
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java
deleted file mode 100644
index 76859a65de..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.spi.extension;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-import org.apache.tuscany.spi.component.AbstractSCAObject;
-import org.apache.tuscany.spi.component.CompositeComponent;
-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.model.Operation;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * The default implementation of an SCA service
- *
- * @version $Rev$ $Date$
- */
-public abstract class ServiceBindingExtension extends AbstractSCAObject implements ServiceBinding {
- protected Service service;
- protected InboundWire inboundWire;
- protected OutboundWire outboundWire;
- protected ServiceContract<?> bindingServiceContract;
-
- public ServiceBindingExtension(String name, CompositeComponent parent) throws CoreRuntimeException {
- super(name, parent);
- }
-
- public Scope getScope() {
- return Scope.SYSTEM;
- }
-
- public void setService(Service service) {
- this.service = service;
- }
-
- public InboundWire getInboundWire() {
- return inboundWire;
- }
-
- public void setInboundWire(InboundWire wire) {
- inboundWire = wire;
- }
-
- public OutboundWire getOutboundWire() {
- return outboundWire;
- }
-
- public void setOutboundWire(OutboundWire outboundWire) {
- this.outboundWire = outboundWire;
- }
-
- public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
- throws TargetInvokerCreationException {
- throw new UnsupportedOperationException();
- }
-
- public ServiceContract<?> getBindingServiceContract() {
- return bindingServiceContract;
- }
-
- @Override
- public boolean isSystem() {
- return service != null && service.isSystem();
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java
deleted file mode 100644
index 6c502702e9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.extension;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * @version $Rev$ $Date$
- */
-public abstract class SystemAtomicComponentExtension extends AtomicComponentExtension {
-
- public SystemAtomicComponentExtension(String name,
- CompositeComponent parent,
- int initLevel) {
- super(name, parent, null, null, null, null, initLevel);
- }
-
- public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) {
- throw new UnsupportedOperationException();
- }
-
- public boolean isSystem() {
- return true;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java
deleted file mode 100644
index 88949646ff..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.spi.extension;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.LinkedList;
-
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.InvocationRuntimeException;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-
-/**
- * The default implementation of a TargetInvoker
- *
- * @version $Rev$ $Date$
- */
-public abstract class TargetInvokerExtension implements TargetInvoker {
-
- protected InboundWire wire;
- protected WorkContext workContext;
- protected ExecutionMonitor monitor;
- protected boolean cacheable;
-
- /**
- * Creates a new invoker
- *
- * @param wire the callback wire
- * @param workContext the work context to use for setting correlation information
- * @param monitor the event monitor
- */
- public TargetInvokerExtension(InboundWire wire, WorkContext workContext, ExecutionMonitor monitor) {
- this.wire = wire;
- this.workContext = workContext;
- this.monitor = monitor;
- }
-
- public Message invoke(Message msg) throws InvocationRuntimeException {
- try {
- Object messageId = msg.getMessageId();
- if (messageId != null) {
- workContext.setCurrentCorrelationId(messageId);
- }
- if (wire != null) {
- LinkedList<Object> callbackRoutingChain = msg.getCallbackRoutingChain();
- if (callbackRoutingChain != null) {
- workContext.setCurrentCallbackRoutingChain(callbackRoutingChain);
- }
- }
- Object resp = invokeTarget(msg.getBody(), msg.getConversationSequence());
- msg.setBody(resp);
- } catch (InvocationTargetException e) {
- msg.setBodyWithFault(e.getCause());
- }
- return msg;
- }
-
- public boolean isCacheable() {
- return cacheable;
- }
-
- public void setCacheable(boolean cacheable) {
- this.cacheable = cacheable;
- }
-
- public boolean isOptimizable() {
- return isCacheable();
- }
-
- public Object clone() throws CloneNotSupportedException {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- // TargetInvoker extends Cloneable so this should not have been thrown
- throw new AssertionError(e);
- }
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java
deleted file mode 100644
index b273ec6729..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.host;
-
-/**
- * Interface implemented by host environments that allow for resolution of component implementation resources, e.g.
- * items bound in a JNDI tree.
- *
- * @version $Rev$ $Date$
- */
-public interface ResourceHost {
-
- /**
- * Resolve a resource matching the given type
- *
- * @param type the type of the resources
- * @throws ResourceResolutionException if an error is encountered during resolution
- */
- <T> T resolveResource(Class<T> type) throws ResourceResolutionException;
-
- /**
- * Resolve a resource matching the given type and name
- *
- * @param type the type of the resources
- * @param mappedName the mapped name of the resource
- * @throws ResourceResolutionException if an error is encountered during resolution
- */
- <T> T resolveResource(Class<T> type, String mappedName) throws ResourceResolutionException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java
deleted file mode 100644
index b4964cce3b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.spi.host;
-
-/**
- * Implementations manage a registry of resources and resource hosts in the runtime
- *
- * @version $Rev$ $Date$
- */
-public interface ResourceHostRegistry {
- /**
- * Registers a resource host for the given uri prefix
- *
- * @param uri the uri prefix the host resolves resources for
- * @param host the resource host
- */
- void registerResourceHost(String uri, ResourceHost host);
-
- /**
- * Removes a resource host registered for the given uri prefix
- */
- void unregisterResourceHost(String uri);
-
- /**
- * Register a resource by type
- *
- * @param type the type of the resource
- * @param resource the resource
- */
- void registerResource(Class<?> type, Object resource);
-
- /**
- * Register a resource by type and name
- *
- * @param type the type of the resource
- * @param name the mapped resource name
- * @param resource the resource
- */
- void registerResource(Class<?> type, String name, Object resource);
-
- /**
- * Unregister a resource
- *
- * @param type the type the resource was registered with
- * @param name the mapped name the resource was registered with
- */
- void unregisterResource(Class<?> type, String name);
-
- /**
- * Unregister a resource
- *
- * @param type the type the resource was registered with
- */
- void unregisterResource(Class<?> type);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java
deleted file mode 100644
index 23c18f5115..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.spi.host;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ResourceResolutionException extends TuscanyException {
-
- public ResourceResolutionException(String message, String identifier) {
- super(message, identifier);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java
deleted file mode 100644
index 37937808d4..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.spi.host;
-
-import javax.servlet.Servlet;
-
-/**
- * Interface implemented by host environments that allow Servlets to be registered.
- * <p/>
- * This interface allows an SCA system service to register a servlet to handle inbound requests.
- *
- * @version $Rev$ $Date$
- */
-public interface ServletHost {
- /**
- * Register a mapping for an instance of a Servlet. This requests that the servlet container direct all requests to
- * the designated mapping to the supplied Servlet instance.
- *
- * @param mapping the uri-mapping for the Servlet
- * @param servlet the Servlet that should be invoked
- */
- void registerMapping(String mapping, Servlet servlet);
-
- /**
- * Unregister a servlet mapping. This directs the servlet contain not to direct any more requests to a previously
- * registered Servlet.
- *
- * @param mapping the uri-mapping for the Servlet
- * @return the servlet that was registered to the mapping, null if nothing was registered to the mapping
- */
- Servlet unregisterMapping(String mapping);
-
- /**
- * Check to see if a mapping exists.
- *
- * @param mapping the uri-mapping for the Servlet
- * @return true if mapping is registered, false otherwise
- */
- boolean isMappingRegistered(String mapping);
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
deleted file mode 100644
index 5a0bd3bb5f..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.spi.idl;
-
-import javax.xml.namespace.QName;
-
-/**
- * An abstraction of XML schema elements
- */
-public class ElementInfo {
- private QName name;
- private TypeInfo type;
-
- /**
- * @param name
- * @param type
- */
- public ElementInfo(QName name, TypeInfo type) {
- super();
- this.name = name;
- this.type = type;
- }
-
- /**
- * @return the name
- */
- public QName getQName() {
- return name;
- }
-
- /**
- * @return the type
- */
- public TypeInfo getType() {
- return type;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java
deleted file mode 100644
index e2b4acec24..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.spi.idl;
-
-import java.lang.reflect.Method;
-
-/**
- * Denotes an invalid conversational interface definition
- *
- * @version $Rev$ $Date$
- */
-public class InvalidConversationalOperationException extends InvalidServiceContractException {
- private final Method operation;
-
- public InvalidConversationalOperationException(String message, String identifier, Method operation) {
- super(message, identifier);
- this.operation = operation;
- }
-
- public Method getOperation() {
- return operation;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java
deleted file mode 100644
index e977592df0..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.spi.idl;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * @version $Rev$ $Date$
- */
-public abstract class InvalidServiceContractException extends TuscanyException {
-
- public InvalidServiceContractException() {
- }
-
- public InvalidServiceContractException(String message) {
- super(message);
- }
-
- protected InvalidServiceContractException(String message, String identifier) {
- super(message, identifier);
- }
-
- public InvalidServiceContractException(String message, Throwable cause) {
- super(message, cause);
- }
-
- protected InvalidServiceContractException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public InvalidServiceContractException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java
deleted file mode 100644
index b1d4cb4e7c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.spi.idl;
-
-import java.lang.reflect.Method;
-
-/**
- * Exception thrown to indicate that a service contract specification contains an overloaded method.
- *
- * @version $Rev$ $Date$
- */
-public class OverloadedOperationException extends InvalidServiceContractException {
- private static final long serialVersionUID = -4658711318608885638L;
- private final Method operation;
-
- public OverloadedOperationException(Method operation) {
- super(null, operation.getDeclaringClass().getName());
- this.operation = operation;
- }
-
- public Method getOperation() {
- return operation;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
deleted file mode 100644
index 9bb107812c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.spi.idl;
-
-import javax.xml.namespace.QName;
-
-/**
- * An abstraction of XML schema types
- */
-public class TypeInfo {
- private QName name;
-
- private boolean isSimpleType;
-
- private TypeInfo baseType;
-
- /**
- * @param name
- * @param isSimpleType
- */
- public TypeInfo(QName name, boolean isSimpleType, TypeInfo baseType) {
- super();
- this.name = name;
- this.isSimpleType = isSimpleType;
- this.baseType = baseType;
- }
-
- /**
- * @return the isSimpleType
- */
- public boolean isSimpleType() {
- return isSimpleType;
- }
-
- /**
- * @return the name
- */
- public QName getQName() {
- return name;
- }
-
- /**
- * @return the baseType
- */
- public TypeInfo getBaseType() {
- return baseType;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java
deleted file mode 100644
index 08f22147b5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.idl.java;
-
-import org.apache.tuscany.spi.idl.InvalidServiceContractException;
-
-/**
- * Processor for creating JavaServiceContract definitions from Java Classes.
- *
- * @version $Rev$ $Date$
- */
-public interface InterfaceJavaIntrospector {
-
- /**
- * Introspect a Java interface and return a service contract definition.
- *
- * @param type the interface to inspect
- * @return a JavaServiceContract corresponding to the Java interface
- */
- <I> JavaServiceContract introspect(Class<I> type) throws InvalidServiceContractException;
-
- /**
- * Introspect a Java interface and return a service contract definition.
- *
- * @param type the interface to inspect
- * @param callback the callback interface to inspec
- * @return a JavaServiceContract corresponding to the Java interface
- */
- <I, C> JavaServiceContract introspect(Class<I> type, Class<C> callback) throws InvalidServiceContractException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java
deleted file mode 100644
index c7c7cb2aa8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.spi.idl.java;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.tuscany.spi.model.DataType;
-import org.apache.tuscany.spi.model.Operation;
-
-/**
- * Contains methods for mapping between an operation in a {@link org.apache.tuscany.spi.model.ServiceContract} and a
- * method defined by a Java interface
- *
- * @version $Rev$ $Date$
- */
-public final class JavaIDLUtils {
-
- private JavaIDLUtils() {
- }
-
- /**
- * Searches an array of methods for a match against the given operation
- *
- * @param operation the operation to match
- * @param methods the methods to match against
- * @return a matching method or null
- */
- public static Method findMethod(Operation<?> operation, Method[] methods) {
- for (Method method : methods) {
- if (match(operation, method)) {
- return method;
- }
- }
- return null;
- }
-
- /**
- * Searches a collection of operations for a match against the given method
- *
- * @param method the method to match
- * @param operations the operations to match against
- * @return a matching operation or null
- */
- public static Operation findOperation(Method method, Collection<Operation<?>> operations) {
- for (Operation<?> operation : operations) {
- if (match(operation, method)) {
- return operation;
- }
- }
- return null;
- }
-
- /**
- * Determines if the given operation matches the given method
- *
- * @return true if the operation matches, false if does not
- */
- private static <T> boolean match(Operation<T> operation, Method method) {
- Class<?>[] params = method.getParameterTypes();
- DataType<List<DataType<T>>> inputType = operation.getInputType();
- List<DataType<T>> types = inputType.getLogical();
- boolean found = true;
- if (types.size() == params.length && method.getName().equals(operation.getName())) {
- for (int i = 0; i < params.length; i++) {
- Class<?> clazz = params[i];
- if (!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) {
- found = false;
- }
- }
- } else {
- found = false;
- }
- return found;
-
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java
deleted file mode 100644
index afe98f0773..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.spi.idl.java;
-
-import org.apache.tuscany.spi.idl.InvalidServiceContractException;
-
-/**
- * Implementations introspect metadata on a Java interface, populating the
- * corresponding {@link JavaServiceContract}
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterfaceProcessor {
-
- void visitInterface(Class<?> clazz, Class<?> callbackClass, JavaServiceContract contract)
- throws InvalidServiceContractException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java
deleted file mode 100644
index 950ce1858c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.spi.idl.java;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-
-/**
- * A convenience class for <code>JavaInterfaceProcessor</code> extensions that performs autowiring
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-public abstract class JavaInterfaceProcessorExtension implements JavaInterfaceProcessor {
-
- protected JavaInterfaceProcessorRegistry registry;
-
- @Autowire
- public void setRegistry(JavaInterfaceProcessorRegistry registry) {
- this.registry = registry;
- }
-
- @Init
- public void init() {
- registry.registerProcessor(this);
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java
deleted file mode 100644
index 38c64e6f88..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.spi.idl.java;
-
-/**
- * A registry of {@link JavaInterfaceProcessor}s. Interface processors update a service contract definition based on a
- * Java interface
- *
- * @version $Rev$ $Date$
- */
-public interface JavaInterfaceProcessorRegistry extends InterfaceJavaIntrospector {
-
- /**
- * Registers the given processor
- */
- void registerProcessor(JavaInterfaceProcessor processor);
-
- /**
- * Deregisters the given processor
- */
- void unregisterProcessor(JavaInterfaceProcessor processor);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java
deleted file mode 100644
index ee29846e26..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.spi.idl.java;
-
-import java.lang.reflect.Type;
-
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * Represents a service contract specified using a Java interface
- *
- * @version $Rev$ $Date$
- */
-public class JavaServiceContract extends ServiceContract<Type> {
-
- public JavaServiceContract() {
- }
-
- public JavaServiceContract(Class<?> interfaceClass) {
- super(interfaceClass);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
deleted file mode 100644
index 999fd9a49d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
-import java.util.Map;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-
-/**
- * Base class for ImplementationProcessors that handle annotations that add Properties.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractPropertyProcessor<A extends Annotation> extends ImplementationProcessorExtension {
- private final Class<A> annotationClass;
- private ImplementationProcessorService service;
-
- protected AbstractPropertyProcessor(Class<A> annotationClass, ImplementationProcessorService service) {
- this.annotationClass = annotationClass;
- this.service = service;
- }
-
- public void visitMethod(CompositeComponent parent,
- Method method,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException {
- A annotation = method.getAnnotation(annotationClass);
- if (annotation == null) {
- return;
- }
-
- if (!Void.TYPE.equals(method.getReturnType())) {
- throw new IllegalPropertyException("Method does not have void return type", method.toString());
- }
- Class[] paramTypes = method.getParameterTypes();
- if (paramTypes.length != 1) {
- throw new IllegalPropertyException("Method must have a single parameter", method.toString());
- }
- Class<?> javaType = paramTypes[0];
-
- String name = getName(annotation);
- if (name == null || name.length() == 0) {
- name = method.getName();
- if (name.startsWith("set")) {
- name = toPropertyName(method.getName());
- }
- }
-
- Map<String, JavaMappedProperty<?>> properties = type.getProperties();
- if (properties.containsKey(name)) {
- throw new DuplicatePropertyException(name);
- }
-
- JavaMappedProperty<?> property = createProperty(name, javaType, method);
- initProperty(property, annotation, parent, context);
- properties.put(name, property);
- }
-
- public void visitField(CompositeComponent parent,
- Field field,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException {
- A annotation = field.getAnnotation(annotationClass);
- if (annotation == null) {
- return;
- }
-
- Class<?> javaType = field.getType();
-
- String name = getName(annotation);
- if (name == null || name.length() == 0) {
- name = field.getName();
- }
-
- Map<String, JavaMappedProperty<?>> properties = type.getProperties();
- if (properties.containsKey(name)) {
- throw new DuplicatePropertyException(name);
- }
-
- JavaMappedProperty<?> property = createProperty(name, javaType, field);
- initProperty(property, annotation, parent, context);
- properties.put(name, property);
- }
-
- public <T> void visitConstructor(CompositeComponent parent, Constructor<T> constructor,
- PojoComponentType<JavaMappedService,
- JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException {
-
- ConstructorDefinition<?> definition = type.getConstructorDefinition();
- Class[] params = constructor.getParameterTypes();
- Map<String, JavaMappedProperty<?>> properties = type.getProperties();
- Annotation[][] annotations = constructor.getParameterAnnotations();
- for (int i = 0; i < params.length; i++) {
- Class<?> param = params[i];
- Annotation[] paramAnnotations = annotations[i];
- for (Annotation annotation : paramAnnotations) {
- if (annotation.annotationType().equals(annotationClass)) {
- if (definition == null) {
- definition = new ConstructorDefinition<T>(constructor);
- type.setConstructorDefinition(definition);
- }
- A monitorAnnot = annotationClass.cast(annotation);
- String name = getName(monitorAnnot);
- if (name == null || name.length() == 0) {
- name = param.getName();
- }
- JavaMappedProperty<?> property = createProperty(name, param, constructor);
- initProperty(property, monitorAnnot, parent, context);
- properties.put(name, property);
- service.addName(definition.getInjectionNames(), i, name);
- }
- }
- }
- }
-
- protected abstract String getName(A annotation);
-
- protected <T> void initProperty(JavaMappedProperty<T> property,
- A annotation,
- CompositeComponent parent,
- DeploymentContext context) throws ProcessingException {
- }
-
- protected <T> JavaMappedProperty<T> createProperty(String name, Class<T> javaType, Member member)
- throws ProcessingException {
- return new JavaMappedProperty<T>(name, null, javaType, member);
- }
-
-
- public static String toPropertyName(String name) {
- if (!name.startsWith("set")) {
- return name;
- }
- return Character.toLowerCase(name.charAt(3)) + name.substring(4);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java
deleted file mode 100644
index 94c185966f..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Hold injection information for the constructor used to instantiate a component implementation instance
- *
- * @version $Rev$ $Date$
- */
-public class ConstructorDefinition<T> {
-
- private Constructor<T> constructor;
- private List<String> injectionNames;
-
- public ConstructorDefinition(Constructor<T> constructor) {
- this.constructor = constructor;
- injectionNames = new ArrayList<String>();
- }
-
- public Constructor<T> getConstructor() {
- return constructor;
- }
-
- public List<String> getInjectionNames() {
- return injectionNames;
- }
-
- public void setInjectionNames(List<String> injectionNames) {
- this.injectionNames = injectionNames;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java
deleted file mode 100644
index 87c4074fe7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-/**
- * Thrown when an implementation has more than one property injection site with the same name
- *
- * @version $Rev$ $Date$
- */
-public class DuplicatePropertyException extends ProcessingException {
-
- public DuplicatePropertyException(String message) {
- super(message);
- }
-
- public DuplicatePropertyException(String message, String identifier) {
- super(message, identifier);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java
deleted file mode 100644
index f251f60630..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-/**
- * Denotes an illegal property definition in a component type
- *
- * @version $Rev$ $Date$
- */
-public class IllegalPropertyException extends ProcessingException {
-
- public IllegalPropertyException(String message) {
- super(message);
- }
-
-
- public IllegalPropertyException(String message, String identifier) {
- super(message, identifier);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java
deleted file mode 100644
index fb9beca53c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-
-/**
- * Implementations process class-level metadata, typically parsing annotations and updating the corresponding
- * <code>ComponentType</code>. A processor may, for example, create a {@link JavaMappedProperty} which is responsible
- * for injecting a complex type on a component implementation instance when it is instantiated.
- * <p/>
- * Processors will receive callbacks as the implementation class is walked while evalauting an assembly. It is the
- * responsibility of the parser to determine whether to perform an action during the callback.
- *
- * @version $Rev$ $Date$
- */
-public interface ImplementationProcessor {
-
- /**
- * A callback received when the component implementation class is first loaded
- *
- * @param parent the parent composite
- * @param clazz the component implementation class
- * @param type the incomplete component type associated with the implementation class
- * @param context the current deployment context
- * @throws ProcessingException if an error is encountered while processing metadata
- */
- <T> void visitClass(CompositeComponent parent,
- Class<T> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException;
-
- /**
- * A callback received as the component implementation class hierarchy is evaluated
- *
- * @param parent the parent composite
- * @param clazz the superclass in the component implmentation's class hierarchy
- * @param type the incomplete component type associated with the implementation class
- * @param context the current deployment context
- * @throws ProcessingException if an error is encountered while processing metadata
- */
- <T> void visitSuperClass(CompositeComponent parent,
- Class<T> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException;
-
- /**
- * A callback received as the component implementation's public and protected methods are evaluated
- *
- * @param parent the parent composite
- * @param method the current public or protected method being evaluated
- * @param type the incomplete component type associated with the implementation class
- * @param context the current deployment context
- * @throws ProcessingException if an error is encountered while processing metadata
- */
- void visitMethod(CompositeComponent parent,
- Method method,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException;
-
- /**
- * A callback received as the component implementation's constructor used for instantiation by the runtime is
- * evaluated. If an implementation contains more than one constructor, the constructor passed to the callback will
- * be chosen according to the algorithm described in the SCA Java Client and Implementation Model Specification.
- *
- * @param parent the parent composite
- * @param constructor the constructor used for instantiating component implementation instances
- * @param type the incomplete component type associated with the implementation class
- * @param context the current deployment context
- * @throws ProcessingException if an error is encountered while processing metadata
- */
- <T> void visitConstructor(CompositeComponent parent,
- Constructor<T> constructor,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context)
- throws ProcessingException;
-
- /**
- * A callback received as the component implementation's public and protected fields are evaluated
- *
- * @param parent the parent composite
- * @param field the current public or protected field being evaluated
- * @param type the incomplete component type associated with the implementation class
- * @param context the current deployment context
- * @throws ProcessingException if an error is encountered while processing metadata
- */
- void visitField(CompositeComponent parent,
- Field field,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException;
-
- /**
- * The final callback received when all other callbacks during evaluation of the component implementation have been
- * issued
- *
- * @param parent the parent composite
- * @param clazz the component implementation class
- * @param type the incomplete component type associated with the implementation class
- * @param context the current deployment context
- * @throws ProcessingException if an error is encountered while processing metadata
- */
- <T> void visitEnd(CompositeComponent parent,
- Class<T> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java
deleted file mode 100644
index a7a92e20a7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-
-/**
- * A convenience class for annotation processors which alleviates the need to implement unused callbacks
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-public abstract class ImplementationProcessorExtension implements ImplementationProcessor {
- private IntrospectionRegistry registry;
-
- @Autowire
- public void setRegistry(IntrospectionRegistry registry) {
- this.registry = registry;
- }
-
- @Init
- public void init() {
- registry.registerProcessor(this);
- }
-
- @Destroy
- public void destroy() {
- registry.unregisterProcessor(this);
- }
-
- public <T> void visitClass(CompositeComponent parent, Class<T> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context)
- throws ProcessingException {
- }
-
- public <T> void visitSuperClass(CompositeComponent parent, Class<T> clazz,
- PojoComponentType<JavaMappedService,
- JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context)
- throws ProcessingException {
- }
-
- public void visitMethod(CompositeComponent parent, Method method,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context)
- throws ProcessingException {
- }
-
- public <T> void visitConstructor(CompositeComponent parent, Constructor<T> constructor,
- PojoComponentType<JavaMappedService,
- JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context)
- throws ProcessingException {
- }
-
- public void visitField(CompositeComponent parent, Field field,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException {
- }
-
- public <T> void visitEnd(CompositeComponent parent, Class<T> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context) throws ProcessingException {
-
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java
deleted file mode 100644
index 59d37e8d59..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Member;
-import java.util.List;
-
-import org.apache.tuscany.spi.idl.InvalidServiceContractException;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * Provides utility methods for Java implementation processing
- *
- * @version $Rev$ $Date$
- */
-public interface ImplementationProcessorService {
-
- /**
- * Introspects the given interface to produce a mapped service
- */
- JavaMappedService createService(Class<?> interfaze) throws InvalidServiceContractException;
-
- JavaMappedReference createReference(String name, Member member, Class<?> paramType) throws ProcessingException;
-
- /**
- * Processes the callback contract for a given interface type
- *
- * @param interfaze the interface type to examine
- * @param contract the service contract the callback is associated wth
- * @throws InvalidServiceContractException
- *
- */
- void processCallback(Class<?> interfaze, ServiceContract<?> contract) throws InvalidServiceContractException;
-
- /**
- * Determines if all the members of a collection have unique types
- *
- * @param collection the collection to analyze
- * @return true if the types are unique
- */
- boolean areUnique(Class[] collection);
-
- /**
- * Inserts a name at the specified position, paddiling the list if its size is less than the position
- */
- void addName(List<String> names, int pos, String name);
-
- /**
- * Processes a constructor parameter by introspecting its annotations
- *
- * @param param the parameter to process
- * @param paramAnnotations the parameter annotations
- * @param constructorNames the array of constructorNames specified by
- * @param pos the declaration position of the constructor parameter
- * @param type the component type associated with implementation being reflected
- * @param injectionNames the list of parameter constructorNames specified on parameter annotations
- * @throws ProcessingException
- */
- boolean processParam(
- Class<?> param,
- Annotation[] paramAnnotations,
- String[] constructorNames,
- int pos,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- List<String> injectionNames) throws ProcessingException;
-
- /**
- * Returns true if {@link @Autowire}, {@link @Property}, or {@link @Reference} are present in the given array
- */
- boolean injectionAnnotationsPresent(Annotation[][] annots);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java
deleted file mode 100644
index a6122a6ff1..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-/**
- * A system service which tracks {@link ImplementationProcessor}s
- *
- * @version $Rev$ $Date$
- */
-public interface IntrospectionRegistry extends Introspector {
-
- /**
- * Registers the given processor and makes it available during assembly evaluation (i.e. build)
- */
- void registerProcessor(ImplementationProcessor processor);
-
- /**
- * Deregisters the given processor
- */
- void unregisterProcessor(ImplementationProcessor processor);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java
deleted file mode 100644
index 66abc1f686..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-
-/**
- * Implementations are responsible for walking a component implementation class, adding additional component type
- * information as appropriate
- *
- * @version $Rev$ $Date$
- */
-public interface Introspector {
-
- /**
- * Walks the given component implementation class
- *
- * @param parent the parent composite
- * @param clazz the component implementation class
- * @param type the component type associated with the implementation class
- * @return the updated component type
- * @throws ProcessingException if an error is encountered evaluating the implementation class
- */
- PojoComponentType introspect(CompositeComponent parent,
- Class<?> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
- DeploymentContext context)
- throws ProcessingException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java
deleted file mode 100644
index 34ac8f53f9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import org.apache.tuscany.spi.model.ComponentType;
-
-/**
- * A specialized component type definition whose services, references and properties can be mapped to the Java
- * programming model.
- *
- * @version $Rev$ $Date$
- */
-public class JavaMappedComponentType<
- S extends JavaMappedService,
- R extends JavaMappedReference,
- P extends JavaMappedProperty<?>
- > extends ComponentType<S, R, P> {
-
- private Class<?> implClass;
-
- public JavaMappedComponentType() {
- }
-
- public JavaMappedComponentType(Class<?> implClass) {
- this.implClass = implClass;
- }
-
- /**
- * Returns the implementation class associated with this component type.
- *
- * @return the implementation class associated with this component type
- */
- public Class<?> getImplClass() {
- return implClass;
- }
-
- /**
- * Sets the implementation class associated with this component type.
- *
- * @param implClass the implementation class associated with this component type
- */
- public void setImplClass(Class<?> implClass) {
- this.implClass = implClass;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java
deleted file mode 100644
index 6d1715a035..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Member;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.Property;
-
-/**
- * A Property definition that is mapped to a specific location in the implementation class. This location will typically
- * be used to inject property values.
- *
- * @version $Rev$ $Date$
- */
-public class JavaMappedProperty<T> extends Property<T> {
- private Member member;
-
- public JavaMappedProperty() {
- }
-
- public JavaMappedProperty(String name, QName xmlType, Class<T> javaType) {
- super(name, xmlType, javaType);
- }
-
- public JavaMappedProperty(String name, QName xmlType, Class<T> javaType, Member member) {
- super(name, xmlType, javaType);
- this.member = member;
- }
-
- /**
- * Returns the Member that this property is mapped to.
- *
- * @return the Member that this property is mapped to
- */
- public Member getMember() {
- return member;
- }
-
- /**
- * Sets the Member that this property is mapped to
- *
- * @param member the Member that this property is mapped to
- */
- public void setMember(Member member) {
- this.member = member;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java
deleted file mode 100644
index 8c718a831b..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Member;
-
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * A ReferenceDefinition definition that is mapped to a specific location in the implementation class. This location
- * will typically be used to inject reference values.
- *
- * @version $Rev$ $Date$
- */
-public class JavaMappedReference extends ReferenceDefinition {
- private Member member;
-
- public JavaMappedReference() {
- }
-
- public JavaMappedReference(String name, ServiceContract serviceContract, Member member) {
- super(name, serviceContract);
- this.member = member;
- }
-
- /**
- * Returns the Member that this reference is mapped to.
- *
- * @return the Member that this reference is mapped to
- */
- public Member getMember() {
- return member;
- }
-
- /**
- * Sets the Member that this reference is mapped to
- *
- * @param member the Member that this reference is mapped to
- */
- public void setMember(Member member) {
- this.member = member;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java
deleted file mode 100644
index ee5e0bb2a7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Member;
-
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-/**
- * A ServiceDefinition definition that is mapped to a Java interface. The mapped interface is not required to be the
- * same as the interface specified in the service contract. This is to allow the service contract to be specified using
- * different interface definition languages or, in the case were the IDL is Java, to allow the service definition to be
- * loaded from a different classloader.
- *
- * @version $Rev$ $Date$
- */
-public class JavaMappedService extends ServiceDefinition {
- private Class<?> serviceInterface;
- private Member callbackMember;
-
- public JavaMappedService() {
- }
-
- public JavaMappedService(Class<?> serviceInterface) {
- this.serviceInterface = serviceInterface;
- }
-
- public JavaMappedService(String name, ServiceContract contract, boolean remotable) {
- super(name, contract, remotable);
- }
-
- public JavaMappedService(String name,
- ServiceContract contract,
- boolean remotable,
- String callbackRefName,
- Member callbackMember) {
- super(name, contract, remotable, callbackRefName);
- this.callbackMember = callbackMember;
- }
-
- public JavaMappedService(String name, ServiceContract contract, Class<?> serviceInterface, boolean remotable) {
- super(name, contract, remotable);
- this.serviceInterface = serviceInterface;
- }
-
- /**
- * Returns the Java interface for this service. This may be different from the interface that defines the service
- * contract.
- *
- * @return the Java interface for this service
- */
- public Class<?> getServiceInterface() {
- return serviceInterface;
- }
-
- /**
- * Sets the Java interface for this service. This may be different from the interface used to define the service
- * contract.
- *
- * @param serviceInterface the Java interface for this service
- */
- public void setServiceInterface(Class<?> serviceInterface) {
- this.serviceInterface = serviceInterface;
- }
-
- public Member getCallbackMember() {
- return callbackMember;
- }
-
- public void setCallbackMember(Member callbackMember) {
- this.callbackMember = callbackMember;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java
deleted file mode 100644
index 193c18f3dc..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tuscany.spi.model.ComponentType;
-import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-/**
- * A component type specialization for POJO implementations
- *
- * @version $$Rev$$ $$Date$$
- */
-public class PojoComponentType<S extends ServiceDefinition, R extends ReferenceDefinition, P extends Property<?>>
- extends ComponentType<S, R, P> {
- private boolean allowsPassByReference;
- private ConstructorDefinition<?> constructorDefinition;
- private Method initMethod;
- private Method destroyMethod;
- private final Map<String, Resource> resources = new HashMap<String, Resource>();
- private Member conversationIDMember;
-
- /**
- * Returns the constructor used to instantiate implementation instances
- */
- public ConstructorDefinition<?> getConstructorDefinition() {
- return constructorDefinition;
- }
-
- /**
- * Sets the constructor used to instantiate implementation instances
- */
- public void setConstructorDefinition(ConstructorDefinition<?> definition) {
- this.constructorDefinition = definition;
- }
-
- /**
- * Returns the component initializer method
- */
- public Method getInitMethod() {
- return initMethod;
- }
-
- /**
- * Sets the component initializer method
- */
- public void setInitMethod(Method initMethod) {
- this.initMethod = initMethod;
- }
-
- /**
- * Returns the component destructor method
- */
- public Method getDestroyMethod() {
- return destroyMethod;
- }
-
- /**
- * Sets the component destructor method
- */
- public void setDestroyMethod(Method destroyMethod) {
- this.destroyMethod = destroyMethod;
- }
-
- public Map<String, Resource> getResources() {
- return resources;
- }
-
- public void add(Resource resource) {
- resources.put(resource.getName(), resource);
- }
-
- public boolean isAllowsPassByReference() {
- return allowsPassByReference;
- }
-
- public void setAllowsPassByReference(boolean allowsPassByReference) {
- this.allowsPassByReference = allowsPassByReference;
- }
-
- public Member getConversationIDMember() {
- return this.conversationIDMember;
- }
-
- public void setConversationIDMember(Member conversationIDMember) {
- this.conversationIDMember = conversationIDMember;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java
deleted file mode 100644
index 40fd1dfd15..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Member;
-
-import org.apache.tuscany.spi.loader.LoaderException;
-
-/**
- * Denotes a problem processing annotations on a POJO implementation
- *
- * @version $Rev$ $Date$
- */
-public class ProcessingException extends LoaderException {
- private Member member;
-
- public ProcessingException() {
- }
-
- public ProcessingException(String message) {
- super(message);
- }
-
- public ProcessingException(String message, String identifier) {
- super(message, identifier);
- }
-
- public ProcessingException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public ProcessingException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public ProcessingException(Throwable cause) {
- super(cause);
- }
-
-
- public Member getMemberName() {
- return member;
- }
-
- public void setMember(Member member) {
- this.member = member;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java
deleted file mode 100644
index 5df4c3716d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * 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.spi.implementation.java;
-
-import java.lang.reflect.Member;
-
-import org.apache.tuscany.spi.ObjectFactory;
-
-/**
- * A resource dependency declared by a Java component implementation
- *
- * @version $Rev$ $Date$
- */
-public class Resource {
-
- private String name;
- private String mappedName;
- private boolean optional;
- private Member member;
- private Class<?> type;
- private ObjectFactory<?> objectFactory;
-
- /**
- * The name of the resource
- *
- * @return the name of the resource
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the name of the resource
- *
- * @param name the name of the resource
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Returns the URI of the resource
- *
- * @return the URI of the resource
- */
- public String getMappedName() {
- return mappedName;
- }
-
- /**
- * Sets the resource URI
- */
- public void setMappedName(String mappedName) {
- this.mappedName = mappedName;
- }
-
- /**
- * If true, the resource is optional
- *
- * @return true if the resource is optional
- */
- public boolean isOptional() {
- return optional;
- }
-
- /**
- * Sets whether the resource is optional
- */
- public void setOptional(boolean optional) {
- this.optional = optional;
- }
-
- /**
- * Returns the Member that this resource is mapped to.
- *
- * @return the Member that this resource is mapped to
- */
- public Member getMember() {
- return member;
- }
-
- /**
- * Sets the Member that this resource is mapped to
- *
- * @param member the Member that this resource is mapped to
- */
- public void setMember(Member member) {
- this.member = member;
- }
-
- /**
- * Returns the resource type
- *
- * @return the resource type
- */
- public Class<?> getType() {
- return type;
- }
-
- /**
- * Sets the resource type
- */
- public void setType(Class<?> type) {
- this.type = type;
- }
-
- /**
- * Returns the obeject factory
- *
- * @return the object factory
- */
- public ObjectFactory<?> getObjectFactory() {
- return objectFactory;
- }
-
- /**
- * Sets the object factory
- */
- public void setObjectFactory(ObjectFactory<?> objectFactory) {
- this.objectFactory = objectFactory;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java
deleted file mode 100644
index 8ad01d8197..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.loader;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.Implementation;
-
-/**
- * Loader that will load the ComponentType definition for the supplied implementation. The actual mechanism used to load
- * that definition is determined by the Client and Implementation Specification for the implementaion type. In some
- * cases the definition may be contained in a XML file related to the implementation artifact in some well defined
- * manner; other implementations may obtain this information from introspection of the artifact itself (for example, by
- * examining Java annotations).
- *
- * @version $Rev$ $Date$
- */
-public interface ComponentTypeLoader<I extends Implementation> {
- /**
- * Load the component type definition for the supplied implementation.
- *
- * @param parent the parent composite
- * @param implementation the implementation whose component type information should be loaded
- * @param deploymentContext the current deployment context
- * @throws LoaderException if there was a problem loading the configuration type
- */
- void load(CompositeComponent parent, I implementation, DeploymentContext deploymentContext)
- throws LoaderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java
deleted file mode 100644
index 1c7f3e073d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Denotes an invalid configuration artifact
- *
- * @version $Rev$ $Date$
- */
-public class InvalidConfigurationException extends LoaderException {
-
- public InvalidConfigurationException(String message) {
- super(message);
- }
-
- public InvalidConfigurationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java
deleted file mode 100644
index 40ae50bfe5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * @version $Rev$ $Date$
- */
-public class InvalidReferenceException extends LoaderException {
- private static final long serialVersionUID = -4346666572527197558L;
-
- public InvalidReferenceException(String message) {
- super(message);
- }
-
- public InvalidReferenceException(String message, String identifier) {
- super(message, identifier);
- }
-
- public InvalidReferenceException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java
deleted file mode 100644
index 1717cae0c3..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * @version $Rev: 430937 $ $Date: 2006-08-12 06:47:56 +0530 (Sat, 12 Aug 2006) $
- */
-public class InvalidServiceException extends LoaderException {
-
- public InvalidServiceException(String message, String identifier) {
- super(message, identifier);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java
deleted file mode 100644
index b0ad8594ca..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Exception that indicates the loader encountered an invalid value.
- * The message should be set to the invalid value.
- *
- * @version $Rev$ $Date$
- */
-public class InvalidValueException extends LoaderException {
-
- public InvalidValueException(String message) {
- super(message);
- }
-
- public InvalidValueException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidValueException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java
deleted file mode 100644
index b26c81168f..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * @version $Rev: 430937 $ $Date: 2006-08-12 06:47:56 +0530 (Sat, 12 Aug 2006) $
- */
-public class InvalidWireException extends LoaderException {
-
- public InvalidWireException() {
- }
-
- public InvalidWireException(String message) {
- super(message);
- }
-
-
- public InvalidWireException(String message, String identifier) {
- super(message, identifier);
- }
-
- public InvalidWireException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidWireException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java
deleted file mode 100644
index e890d470a3..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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.spi.loader;
-
-import java.net.URL;
-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.model.Implementation;
-import org.apache.tuscany.spi.model.ModelObject;
-
-/**
- * System service for loading physical artifacts that represent SCDL configurations and creating the model objects that
- * represent them.
- *
- * @version $Rev$ $Date$
- */
-public interface Loader {
- /**
- * Parse the supplied XML stream, dispatching to the appropriate registered loader for each element encountered in
- * the stream.
- * <p/>
- * This method must be called with the XML cursor positioned on a START_ELEMENT event. When this method returns, the
- * stream will be positioned on the corresponding END_ELEMENT event.
- *
- * @param parent the composite in which the model object is contained
- * @param object the model object to load configuration data into. If null, the loader dispatched to is
- * responsible for creating a model object itself
- * @param reader the XML stream to parse
- * @param deploymentContext the current deployment context
- * @return the model object obtained by parsing the current element on the stream
- * @throws XMLStreamException if there was a problem reading the stream
- */
- ModelObject load(CompositeComponent parent,
- ModelObject object,
- XMLStreamReader reader,
- DeploymentContext deploymentContext)
- throws XMLStreamException, LoaderException;
-
- /**
- * Load a model object from a specified location.
- *
- * @param parent the composite in which the model object is contained
- * @param object the model object to load configuration data into. If null, the loader dispatched to is
- * responsible for creating a model object itself
- * @param url the location of an XML document to be loaded
- * @param type the type of ModelObject that is expected to be in the document
- * @param deploymentContext the current deployment context
- * @return the model ojbect loaded from the document
- * @throws LoaderException if there was a problem loading the document
- */
- <MO extends ModelObject> MO load(CompositeComponent parent,
- ModelObject object,
- URL url,
- Class<MO> type,
- DeploymentContext deploymentContext)
- throws LoaderException;
-
- /**
- * Load the component type definition for a given implementation. How the component type information is located is
- * defined by the implementation specification. It may include loading from an XML sidefile, introspection of some
- * artifact related to the implementation, some combination of those techniques or any other implementation-defined
- * mechanism.
- *
- * @param parent the parent composite
- * @param implementation the implementation whose component type should be loaded
- * @param deploymentContext the current deployment context
- * @throws LoaderException if there was a problem loading the component type definition
- */
- <I extends Implementation<?>> void loadComponentType(CompositeComponent parent,
- I implementation,
- DeploymentContext deploymentContext)
- throws LoaderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java
deleted file mode 100644
index defc6b06c9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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.spi.loader;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * Base class for Exceptions raised during the loading process. Loader implementations should throw a subclass of this
- * to indicate the actual problem.
- *
- * @version $Rev$ $Date$
- */
-public class LoaderException extends TuscanyException {
- public static final int UNDEFINED = -1;
- private static final long serialVersionUID = -7459051598906813461L;
- private String resourceURI;
- private int line = UNDEFINED;
- private int column = UNDEFINED;
-
- public LoaderException() {
- }
-
- public LoaderException(String message) {
- super(message);
- }
-
- public LoaderException(String message, String identifier) {
- super(message, identifier);
- }
-
- public LoaderException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public LoaderException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public LoaderException(Throwable cause) {
- super(cause);
- }
-
- /**
- * Returns the location of the resource that was being loaded.
- *
- * @return the location of the resource that was being loaded
- */
- public String getResourceURI() {
- return resourceURI;
- }
-
- /**
- * Sets the location of the resource that was being loaded.
- *
- * @param resourceURI the location of the resource that was being loaded
- */
- public void setResourceURI(String resourceURI) {
- this.resourceURI = resourceURI;
- }
-
- public int getLine() {
- return line;
- }
-
- public void setLine(int line) {
- this.line = line;
- }
-
- public int getColumn() {
- return column;
- }
-
- public void setColumn(int column) {
- this.column = column;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java
deleted file mode 100644
index ea88b99b22..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.spi.loader;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ModelObject;
-
-/**
- * Registry for XML loaders that can parse a StAX input stream and return model objects.
- * <p/>
- * Loaders will typically be contributed to the system by any extension that needs to handle extension specific
- * information contained in some XML configuration file. The loader can be contributed as a system component with an
- * autowire reference to this builderRegistry which is used during initialization to actually register. </p> This
- * builderRegistry can also be used to parse an input stream, dispatching to the appropriate loader for each element
- * accepted. Loaders can call back to the builderRegistry to load sub-elements that they are not able to handle
- * directly.
- *
- * @version $Rev$ $Date$
- */
-public interface LoaderRegistry extends Loader {
- /**
- * Register a loader. This operation will typically be called by a loader during its initialization.
- *
- * @param element the element that should be delegated to the contibuted loader
- * @param loader a loader that is being contributed to the system
- */
- <T extends ModelObject> void registerLoader(QName element, StAXElementLoader<T> loader);
-
- /**
- * Unregister a loader. This will typically be called by a loader as it is being destroyed.
- *
- * @param element the element that was being delegated to the contibuted loader
- * @param loader a loader that should no longer be used
- */
- <T extends ModelObject> void unregisterLoader(QName element, StAXElementLoader<T> loader);
-
- /**
- * Regsiter a component type loader.
- *
- * @param key a type of implementation this loader can load component types for
- * @param loader the loader that is being contributed to the system
- */
- <I extends Implementation<?>> void registerLoader(Class<I> key, ComponentTypeLoader<I> loader);
-
- /**
- * Unregister a component type loader form the system.
- *
- * @param key a type of implementation whose loader should be unregistered
- */
- <I extends Implementation<?>> void unregisterLoader(Class<I> key);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java
deleted file mode 100644
index bf48f91a74..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.spi.loader;
-
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamConstants;
-
-/**
- * Utility functions to support loader implementations.
- *
- * @version $Rev$ $Date$
- */
-public final class LoaderUtil {
- private LoaderUtil() {
- }
-
- /**
- * Advance the stream to the next END_ELEMENT event skipping any nested content.
- *
- * @param reader the reader to advance
- * @throws XMLStreamException if there was a problem reading the stream
- */
- public static void skipToEndElement(XMLStreamReader reader) throws XMLStreamException {
- int depth = 0;
- while (true) {
- int event = reader.next();
- if (event == XMLStreamConstants.START_ELEMENT) {
- depth++;
- } else if (event == XMLStreamConstants.END_ELEMENT) {
- if (depth == 0) {
- return;
- }
- depth--;
- }
- }
- }
-
- /**
- * Load the class using the supplied ClassLoader.
- * The class will be defined so any initializers present will be fired.
- * As the class is being loaded, the Thread context ClassLoader will be
- * set to the supplied classloader.
- *
- * @param name the name of the class to load
- * @param cl the classloader to use to load it
- * @return the class
- * @throws MissingResourceException if the class could not be found
- */
- public static Class<?> loadClass(String name, ClassLoader cl) throws MissingResourceException {
- final Thread thread = Thread.currentThread();
- final ClassLoader oldCL = thread.getContextClassLoader();
- try {
- thread.setContextClassLoader(cl);
- return Class.forName(name, true, cl);
- } catch (ClassNotFoundException e) {
- throw new MissingResourceException(name, e);
- } finally {
- thread.setContextClassLoader(oldCL);
- }
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java
deleted file mode 100644
index 89a44083cc..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Exception that indicates that an implementation was not provided.
- *
- * @version $Rev$ $Date$
- */
-public class MissingImplementationException extends LoaderException {
- private static final long serialVersionUID = -2917278473974880124L;
-
- /**
- * Default constructor.
- */
- public MissingImplementationException() {
- super();
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java
deleted file mode 100644
index 10e40f9288..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Exception that indicates that an include was not provided.
- *
- * @version $Rev$ $Date$
- */
-public class MissingIncludeException extends LoaderException {
- private static final long serialVersionUID = -2917278473974880124L;
-
- public MissingIncludeException(String message, String identifier) {
- super(message, identifier);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java
deleted file mode 100644
index 78856784e5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * @version $Rev$ $Date$
- */
-public class MissingMustOverridePropertyException extends LoaderException {
-
- public MissingMustOverridePropertyException(String name) {
- super(name);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java
deleted file mode 100644
index 7bc206de34..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Indicates a required reference was not configured
- *
- * @version $Rev$ $Date$
- */
-public class MissingReferenceException extends LoaderException {
-
- public MissingReferenceException(String message) {
- super(message);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java
deleted file mode 100644
index 3b6a21aa74..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Exception that indicates an expected resource could not be found. The message should be set to the name of the
- * resource.
- *
- * @version $Rev$ $Date$
- */
-public class MissingResourceException extends LoaderException {
- private static final long serialVersionUID = 3775013318397916445L;
-
- /**
- * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the
- * message.
- *
- * @param resource the resource that could not be found
- */
- public MissingResourceException(String resource) {
- super("Missing resource", resource);
- }
-
- public MissingResourceException(String message, String identifier) {
- super(message, identifier);
- }
-
- /**
- * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the
- * message.
- *
- * @param resource the resource that could not be found
- * @param cause the error thrown resolving the resource
- */
- public MissingResourceException(String resource, Throwable cause) {
- super("Missing resource", resource, cause);
- }
-
-
- /**
- * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the
- * message.
- *
- * @param message the message set on the exception
- * @param identifier the resource that could not be found
- * @param cause the error thrown resolving the resource
- */
- public MissingResourceException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java
deleted file mode 100644
index 4672f22a6a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * @version $Rev$ $Date$
- */
-public class NotOverridablePropertyException extends LoaderException {
- private static final long serialVersionUID = 1483304023970967982L;
-
- public NotOverridablePropertyException(String name) {
- super(name);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java
deleted file mode 100644
index 8b569d76fb..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.spi.loader;
-
-import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.PropertyValue;
-
-/**
- * A factory that will create an ObjectFactory for a property
- *
- * @version $Rev$ $Date$
- */
-public interface PropertyObjectFactory {
- /**
- * Return an ObjectFactory for instances of a property defined in an XML. The ObjectFactory must return instances
- * that can safely be supplied to component implementations. If the instance is mutable and isolation between
- * components is required, then the factory must clone or otherwise protect the implementation from unexpected
- * modifications by other implementation instances.
- *
- * @param property the Property definition that the resulting ObjectFactory must be able to assign to
- * @param propertyValue The component configuration of the property
- * @return an ObjectFactory that can produce instances that can be assigned to the supplied Property
- * @throws LoaderException if there is a problem creating the ObjectFactory
- */
- <T> ObjectFactory<T> createObjectFactory(Property<T> property, PropertyValue<T> propertyValue)
- throws LoaderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java
deleted file mode 100644
index 401e34cb71..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.spi.loader;
-
-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.model.ModelObject;
-
-/**
- * A loader that creates a model object from a StAX input stream.
- *
- * @version $Rev$ $Date$
- */
-public interface StAXElementLoader<T extends ModelObject> {
- /**
- * Create the model object for an element in an XML stream. When this method returns the stream will be positioned
- * on the corresponding END_ELEMENT.
- *
- * @param parent the composite the model object being loaded is contained within
- * @param object the model object to load configuration data into. An implementation may choose to return
- * a different model object than the one passed in, in which case it is responsible for
- * copying data. If null, the loader is responsible for creating a model object itself
- * @param reader the XML stream reader positioned on the applicable START_ELEMENT
- * @param deploymentContext the context for the load operation
- * @return the model object for that element
- */
- T load(CompositeComponent parent, ModelObject object, XMLStreamReader reader, DeploymentContext deploymentContext)
- throws XMLStreamException, LoaderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java
deleted file mode 100644
index bf3aa205d2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * @version $Rev$ $Date$
- */
-public class UndefinedPropertyException extends LoaderException {
- public UndefinedPropertyException(String name) {
- super("Property not found on implementation", name);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java
deleted file mode 100644
index 2c9d8e66c5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.apache.tuscany.spi.loader;
-
-/**
- * @version $Rev$ $Date$
- */
-public class UndefinedReferenceException extends LoaderException {
- public UndefinedReferenceException(String name) {
- super("Reference not found on implementation", name);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java
deleted file mode 100644
index 750762d839..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.spi.loader;
-
-/**
- * Exception that indicates an component type was encountered that could not be handled.
- *
- * @version $Rev$ $Date$
- */
-public class UnrecognizedComponentTypeException extends LoaderException {
- private final Class<?> type;
-
- /**
- * Constructor that indicates which component type loader could not be found.
- *
- * @param type the component type type that could not be handled
- */
- public UnrecognizedComponentTypeException(Class<?> type) {
- super("Unrecognized element", type.getName());
- this.type = type;
- }
-
- public Class<?> getType() {
- return type;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java
deleted file mode 100644
index 7991105da8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.loader;
-
-import javax.xml.namespace.QName;
-
-/**
- * Exception that indicates an element was encountered that could not be handled.
- *
- * @version $Rev$ $Date$
- */
-public class UnrecognizedElementException extends LoaderException {
- private static final long serialVersionUID = 2549543622209829032L;
- private final QName element;
-
- /**
- * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the
- * message.
- *
- * @param element the element that could not be handled
- */
- public UnrecognizedElementException(QName element) {
- super("Unrecognized element", element.toString());
- this.element = element;
- }
-
- public QName getElement() {
- return element;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java
deleted file mode 100644
index 8e12e970ae..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * The base representation of an atomic component implementation
- *
- * @version $Rev$ $Date$
- */
-public abstract class AtomicImplementation<T extends ComponentType> extends Implementation<T> {
- protected AtomicImplementation() {
- }
-
- protected AtomicImplementation(T componentType) {
- super(componentType);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java
deleted file mode 100644
index 4b17181442..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.net.URI;
-
-/**
- * The base representation of a binding specified in an assembly
- *
- * @version $Rev$ $Date$
- */
-public abstract class BindingDefinition extends ModelObject {
- private URI targetUri;
-
- protected BindingDefinition() {
- }
-
- public BindingDefinition(URI targetUri) {
- this.targetUri = targetUri;
- }
-
- public URI getTargetUri() {
- return targetUri;
- }
-
- public void setTargetUri(URI targetUri) {
- this.targetUri = targetUri;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java
deleted file mode 100644
index 94078696e7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Represents a reference in a composite
- *
- * @version $Rev$ $Date$
- */
-public class BoundReferenceDefinition extends ReferenceDefinition {
- private List<BindingDefinition> bindings;
-
- public BoundReferenceDefinition(String name,
- ServiceContract contract,
- List<BindingDefinition> bindings,
- Multiplicity multiplicity) {
- super(name, contract);
- this.bindings = bindings;
- setMultiplicity(multiplicity);
- }
-
- public BoundReferenceDefinition() {
- bindings = new ArrayList<BindingDefinition>();
- }
-
- public List<BindingDefinition> getBindings() {
- return Collections.unmodifiableList(bindings);
- }
-
- public void addBinding(BindingDefinition binding) {
- this.bindings.add(binding);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundServiceDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundServiceDefinition.java
deleted file mode 100644
index d4d3a54704..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundServiceDefinition.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * Represents a service offered by a component, that has a 1..n bindings associated with it.
- *
- * @version $Rev$ $Date$
- */
-public class BoundServiceDefinition extends ServiceDefinition {
- private List<BindingDefinition> bindings;
- private URI target;
-
- public BoundServiceDefinition(String name,
- ServiceContract contract,
- List<BindingDefinition> bindings,
- boolean remotable,
- URI target) {
- super(name, contract, remotable);
- this.target = target;
- this.bindings = bindings;
- }
-
- public BoundServiceDefinition() {
- bindings = new ArrayList<BindingDefinition>();
- }
-
- public List<BindingDefinition> getBindings() {
- return Collections.unmodifiableList(bindings);
- }
-
- public void addBinding(BindingDefinition binding) {
- this.bindings.add(binding);
- }
-
- public URI getTarget() {
- return target;
- }
-
- public void setTarget(URI target) {
- this.target = target;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
deleted file mode 100644
index de4abbd4e8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Represents a component.
- * <p>A component is a configured instance of an implementation. The services provided and consumed
- * and the available configuration properties are defined by the implementation (represented by
- * its componentType).</p>
- * <p>Every component has a name which uniquely identifies it within the scope of the composite
- * that contains it; the name must be different from the names of all other components, services and references
- * immediately contained in the composite (directly or through an &lt;include&gt; element).</p>
- * <p>A component may define a {@link PropertyValue} that overrides the default value of a {@link Property}
- * defined in the componentType.</p>
- * <p>It may also define a {@link ReferenceTarget} for a {@link ReferenceDefinition} defined in the componentType.
- * The ReferenceTarget must resolve to another component or a reference in the enclosing composite.</p>
- * <p>Components may specify an initialization level that will determine the order in which it will be eagerly
- * initialized relative to other components from the enclosing composite that are in the same scope. This can be
- * used to define a startup sequence for components that are otherwise independent. Any initialization required
- * to resolve references between components will override this initialization order.</p>
- *
- * @version $Rev$ $Date$
- */
-public class ComponentDefinition<I extends Implementation<?>> extends ModelObject {
- private String name;
- private Integer initLevel;
- private final I implementation;
- private final Map<String, ReferenceTarget> referenceTargets = new HashMap<String, ReferenceTarget>();
- private final Map<String, PropertyValue<?>> propertyValues = new HashMap<String, PropertyValue<?>>();
-
- /**
- * Constructor specifying the component's name and implementation.
- *
- * @param name the name of this component
- * @param implementation the implementation of this component
- */
- public ComponentDefinition(String name, I implementation) {
- this.name = name;
- this.implementation = implementation;
- }
-
- /**
- * Constructor specifying the implementation of this component.
- *
- * @param implementation the implementation of this component
- */
- public ComponentDefinition(I implementation) {
- this.implementation = implementation;
- }
-
- /**
- * Returns the {@link Implementation} of this component.
- *
- * @return the implementation of this component
- */
- public I getImplementation() {
- return implementation;
- }
-
- /**
- * Returns the name of this component.
- *
- * @return the name of this component
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the name of this component.
- *
- * @param name the name of this component
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Returns the initialization level of this component.
- *
- * @return the initialization level of this component
- */
- public Integer getInitLevel() {
- return initLevel;
- }
-
- /**
- * Sets the initialization level of this component.
- * If set to null then the level from the componentType is used.
- * If set to zero or a negative value then the component will not be eagerly initialized.
- *
- * @param initLevel the initialization level of this component
- */
- public void setInitLevel(Integer initLevel) {
- this.initLevel = initLevel;
- }
-
- /**
- * Returns a live Map of the {@link ReferenceTarget targets} configured by this component definition.
- *
- * @return the reference targets configured by this component
- */
- public Map<String, ReferenceTarget> getReferenceTargets() {
- return referenceTargets;
- }
-
- /**
- * Add a reference target configuration to this component.
- * Any existing configuration for the reference named in the target is replaced.
- *
- * @param target the target to add
- */
- public void add(ReferenceTarget target) {
- referenceTargets.put(target.getReferenceName(), target);
- }
-
- /**
- * Returns a live Map of {@link PropertyValue property values} configured by this component definition.
- *
- * @return the property values configured by this component
- */
- public Map<String, PropertyValue<?>> getPropertyValues() {
- return propertyValues;
- }
-
- /**
- * Add a property value configuration to this component.
- * Any existing configuration for the property names in the property value is replaced.
- *
- * @param value the property value to add
- */
- public void add(PropertyValue<?> value) {
- propertyValues.put(value.getName(), value);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java
deleted file mode 100644
index 2c37f00889..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * <p>The definition of the configurable aspects of an implementation in terms of the services it exposes, the services
- * it references, and properties that can be used to configure it.</p> <p>A service represents an addressable interface
- * provided by the implementation. Such a service may be the target of a wire from another component.</p> <p>A reference
- * represents a requirement that an implementation has on a service provided by another component or by a resource
- * outside the SCA system. Such a reference may be the source of a wire to another component.</p> <p>A property allows
- * the behaviour of the implementation to be configured through externally set values.</p> <p>A component type may also
- * declare that it wishes to be initialized upon activation of the scope that contains it and may specify an order
- * relative to other eagerly initializing components. For example, an implementation that pre-loads some form of cache
- * could declare that it should be eagerly initialized at the start of the scope so that the cache load occured on
- * startup rather than first use.</p>
- *
- * @version $Rev$ $Date$
- */
-public class ComponentType<S extends ServiceDefinition, R extends ReferenceDefinition, P extends Property<?>>
- extends ModelObject {
- protected Scope implementationScope = Scope.UNDEFINED;
- private int initLevel;
- private long maxAge = -1;
- private long maxIdleTime = -1;
- private final Map<String, S> services = new HashMap<String, S>();
- private final Map<String, R> references = new HashMap<String, R>();
- private final Map<String, P> properties = new HashMap<String, P>();
-
- /**
- * Returns the component implementation scope
- */
- public Scope getImplementationScope() {
- return implementationScope;
- }
-
- /**
- * Sets the component implementation scope
- */
- public void setImplementationScope(Scope implementationScope) {
- this.implementationScope = implementationScope;
- }
-
- /**
- * Returns the default initialization level for components of this type. A value greater than zero indicates that
- * components should be eagerly initialized.
- *
- * @return the default initialization level
- */
- public int getInitLevel() {
- return initLevel;
- }
-
- /**
- * Sets the default initialization level for components of this type. A value greater than zero indicates that
- * components should be eagerly initialized.
- *
- * @param initLevel default initialization level for components of this type
- */
- public void setInitLevel(int initLevel) {
- this.initLevel = initLevel;
- }
-
- /**
- * Returns true if this component should be eagerly initialized.
- *
- * @return true if this component should be eagerly initialized
- */
- public boolean isEagerInit() {
- return initLevel > 0;
- }
-
- /**
- * Returns the idle time allowed between operations in milliseconds if the implementation is conversational
- *
- * @return the idle time allowed between operations in milliseconds if the implementation is conversational
- */
- public long getMaxIdleTime() {
- return maxIdleTime;
- }
-
- /**
- * Sets the idle time allowed between operations in milliseconds if the implementation is conversational
- */
- public void setMaxIdleTime(long maxIdleTime) {
- this.maxIdleTime = maxIdleTime;
- }
-
- /**
- * Returns the maximum age a conversation may remain active in milliseconds if the implementation is conversational
- *
- * @return the maximum age a conversation may remain active in milliseconds if the implementation is conversational
- */
- public long getMaxAge() {
- return maxAge;
- }
-
- /**
- * Sets the maximum age a conversation may remain active in milliseconds if the implementation is conversational
- */
- public void setMaxAge(long maxAge) {
- this.maxAge = maxAge;
- }
-
- /**
- * Returns a live Map of the services provided by the implementation.
- *
- * @return a live Map of the services provided by the implementation
- */
- public Map<String, S> getServices() {
- return services;
- }
-
- /**
- * Add a service to those provided by the implementation. Any existing service with the same name is replaced.
- *
- * @param service a service provided by the implementation
- */
- public void add(S service) {
- services.put(service.getName(), service);
- }
-
- /**
- * Returns a live Map of references to services consumed by the implementation.
- *
- * @return a live Map of references to services consumed by the implementation
- */
- public Map<String, R> getReferences() {
- return references;
- }
-
- /**
- * Add a reference to a service consumed by the implementation. Any existing reference with the same name is
- * replaced.
- *
- * @param reference a reference to a service consumed by the implementation
- */
- public void add(R reference) {
- references.put(reference.getName(), reference);
- }
-
- /**
- * Returns a live Map of properties that can be used to configure the implementation.
- *
- * @return a live Map of properties that can be used to configure the implementation
- */
- public Map<String, P> getProperties() {
- return properties;
- }
-
- /**
- * Add a property that can be used to configure the implementation. Any existing property with the same name is
- * replaced.
- *
- * @param property a property that can be used to configure the implementation
- */
- public void add(P property) {
- properties.put(property.getName(), property);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java
deleted file mode 100644
index ffc50b2b7c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * A specialization of component type for composite components.
- *
- * @version $Rev$ $Date$
- */
-public class CompositeComponentType<S extends ServiceDefinition,
- R extends ReferenceDefinition,
- P extends Property<?>> extends ComponentType<S, R, P> {
-
- private String name;
- private final Map<String, ComponentDefinition<? extends Implementation<?>>> components =
- new HashMap<String, ComponentDefinition<? extends Implementation<?>>>();
- private final Map<String, Include> includes = new HashMap<String, Include>();
- private final List<WireDefinition> wires = new ArrayList<WireDefinition>();
-
- public CompositeComponentType() {
- implementationScope = Scope.SYSTEM;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- @SuppressWarnings("unchecked")
- /**
- * Get all properties including the ones are from included composites
- * @return
- */
- public Map<String, P> getProperties() {
- Map<String, P> view = new HashMap<String, P>(super.getProperties());
- for (Include i : includes.values()) {
- view.putAll(i.getIncluded().getProperties());
- }
- return Collections.unmodifiableMap(view);
- }
-
- @Override
- @SuppressWarnings("unchecked")
- /**
- * Get all references including the ones are from included composites
- * @return
- */
- public Map<String, R> getReferences() {
- Map<String, R> view = new HashMap<String, R>(super.getReferences());
- for (Include i : includes.values()) {
- view.putAll(i.getIncluded().getReferences());
- }
- return Collections.unmodifiableMap(view);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- /**
- * Get all services including the ones are from included composites
- * @return
- */
- public Map<String, S> getServices() {
- Map<String, S> view = new HashMap<String, S>(super.getServices());
- for (Include i : includes.values()) {
- view.putAll(i.getIncluded().getServices());
- }
- return Collections.unmodifiableMap(view);
- }
-
- /**
- * Get all components including the ones are from included composites
- */
- @SuppressWarnings("unchecked")
- public Map<String, ComponentDefinition<? extends Implementation<?>>> getComponents() {
- Map<String, ComponentDefinition<? extends Implementation<?>>> view =
- new HashMap<String, ComponentDefinition<? extends Implementation<?>>>(components);
- for (Include i : includes.values()) {
- view.putAll(i.getIncluded().getComponents());
- }
- return Collections.unmodifiableMap(view);
- }
-
-
- /**
- * Get all wires including the ones are from included composites
- */
- @SuppressWarnings("unchecked")
- public List<WireDefinition> getWires() {
- List<WireDefinition> view =
- new ArrayList<WireDefinition>(wires);
- for (Include i : includes.values()) {
- view.addAll(i.getIncluded().getWires());
- }
- return Collections.unmodifiableList(view);
- }
-
- /**
- * Get declared properties in this composite type, included doesn't count
- */
- public Map<String, P> getDeclaredProperties() {
- return super.getProperties();
- }
-
- /**
- * Get declared references in this composite type, included doesn't count
- */
- public Map<String, R> getDeclaredReferences() {
- return super.getReferences();
- }
-
- /**
- * Get declared services in this composite type, included doesn't count
- */
- public Map<String, S> getDeclaredServices() {
- return super.getServices();
- }
-
- /**
- * Get declared components in this composite type, included doesn't count
- */
- public Map<String, ComponentDefinition<? extends Implementation<?>>> getDeclaredComponents() {
- return components;
- }
-
- /**
- * Get declared wires in this composite type, included doesn't count
- */
- public List<WireDefinition> getDeclaredWires() {
- return wires;
- }
-
- public void add(WireDefinition wireDefn) {
- wires.add(wireDefn);
- }
-
-
- public void add(ComponentDefinition<? extends Implementation<?>> componentDefinition) {
- components.put(componentDefinition.getName(), componentDefinition);
- }
-
- public Map<String, Include> getIncludes() {
- return includes;
- }
-
- public void add(Include include) {
- includes.put(include.getName(), include);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java
deleted file mode 100644
index 6948c52286..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.net.URL;
-
-/**
- * A specialization of an implementation associated with composite components
- *
- * @version $Rev$ $Date$
- */
-public class CompositeImplementation extends Implementation<CompositeComponentType> {
- private String name;
- private URL scdlLocation;
- private ClassLoader classLoader;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public URL getScdlLocation() {
- return scdlLocation;
- }
-
- public void setScdlLocation(URL scdlLocation) {
- this.scdlLocation = scdlLocation;
- }
-
- public ClassLoader getClassLoader() {
- return classLoader;
- }
-
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java
deleted file mode 100644
index f36f3765ce..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Representation of the type of data associated with an operation. Data is represented in two forms: the physical form
- * used by the runtime and a logical form used by the assembly. The physical form is a Java Type because the runtime is
- * written in Java. This may be the same form used by the application but it may not; for example, an application that
- * is performing stream processing may want a physical form such as an {@link java.io.InputStream InputStream} to
- * semantially operate on application data such as a purchase order. The logical description is that used by the
- * assembly model and is an identifier into some well-known type space; examples may be a Java type represented by its
- * Class or an XML type represented by its QName. Every data type may also contain metadata describing the expected
- * data; for example, it could specify a preferred data binding technology or the size of a typical instance.
- *
- * @version $Rev$ $Date$
- */
-public class DataType<L> extends ModelObject implements Cloneable {
- private String dataBinding = Object.class.getName();
-
- private final Type physical;
-
- private final L logical;
-
- private Map<String, Object> metadata = new HashMap<String, Object>();
-
- private Operation operation;
-
- /**
- * Construct a data type specifying the physical and logical types.
- *
- * @param physical the physical class used by the runtime
- * @param logical the logical type
- * @see #getLogical()
- */
- public DataType(Type physical, L logical) {
- this.physical = physical;
- this.logical = logical;
- if (physical instanceof Class) {
- this.dataBinding = ((Class) physical).getName();
- }
- }
-
- public DataType(String dataBinding, Type physical, L logical) {
- this.dataBinding = dataBinding;
- this.physical = physical;
- this.logical = logical;
- }
-
- /**
- * Returns the physical type used by the runtime.
- *
- * @return the physical type used by the runtime
- */
- public Type getPhysical() {
- return physical;
- }
-
- /**
- * Returns the logical identifier used by the assembly. The type of this value identifies the logical type system in
- * use. Known values are: <ul> <li>a java.lang.reflect.Type identifies a Java type by name and ClassLoader; this
- * includes Java Classes as they are specializations of Type</li> <li>a javax.xml.namespace.QName identifies an XML
- * type by local name and namespace</li> </ul>
- *
- * @return the logical type name
- */
- public L getLogical() {
- return logical;
- }
-
- /**
- * Returns all metadata about this type.
- *
- * @return all metadata about this type
- */
- public Map<String, ?> getMetadata() {
- return metadata;
- }
-
- /**
- * Returns the specified metadata item or null if not present.
- *
- * @param name the name of the metadata item
- * @return the value, or null if not present
- */
- public Object getMetadata(String name) {
- return metadata.get(name);
- }
-
- /**
- * Sets the specified metadata value. A null value undefines it.
- *
- * @param name the name of the metadata item
- * @param value the value, or null to undefine
- * @return the old value for the item, or null if not present
- */
- public Object setMetadata(String name, Object value) {
- if (value == null) {
- return metadata.remove(name);
- } else {
- return metadata.put(name, value);
- }
- }
-
- public String getDataBinding() {
- if (dataBinding == null) {
- // databinding is not set at the DataType level, check the operation
- Operation<?> operation = (Operation<?>) getOperation();
- if (operation != null) {
- return operation.getDataBinding();
- }
- }
- return dataBinding;
- }
-
- /**
- * @param dataBinding the dataBinding to set
- */
- public void setDataBinding(String dataBinding) {
- this.dataBinding = dataBinding;
- }
-
- public int hashCode() {
- int result;
- result = dataBinding != null ? dataBinding.hashCode() : 0;
- result = 29 * result + (physical != null ? physical.hashCode() : 0);
- result = 29 * result + (logical != null ? logical.hashCode() : 0);
- // Commented the following line out since it causes infinite loop from Operation.hashCode()
- // if the metadata map contains the Operation
- // result = 29 * result + (metadata != null ? metadata.hashCode() : 0);
- return result;
- }
-
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- final DataType dataType = (DataType) o;
-
- if (dataBinding != null ? !dataBinding.equals(dataType.dataBinding) : dataType.dataBinding != null) {
- return false;
- }
- if (logical != null ? !logical.equals(dataType.logical) : dataType.logical != null) {
- return false;
- }
- return !(physical != null ? !physical.equals(dataType.physical) : dataType.physical != null);
-
- }
-
-// @SuppressWarnings("unchecked")
-// public boolean equals(Object o) {
-// if (this == o) {
-// return true;
-// }
-// if (o == null || getClass() != o.getClass()) {
-// return false;
-// }
-//
-// final DataType dataType = (DataType) o;
-//
-// if (logical instanceof Class && dataType.logical instanceof Class) {
-// Class<?> logicalClass = (Class<?>) logical;
-// Class<?> targetLogicalClass = (Class<?>) dataType.logical;
-// if (!logicalClass.isAssignableFrom(targetLogicalClass)) {
-// return false;
-// }
-// } else {
-// if (logical != null ? !logical.equals(dataType.logical) : dataType.logical != null) {
-// return false;
-// }
-// }
-// if (physical instanceof Class && dataType.physical instanceof Class) {
-// Class<?> physicalClass = (Class<?>) physical;
-// Class<?> physicalTargetClass = (Class<?>) dataType.physical;
-// if (dataBinding != null
-// && dataType.dataBinding != null
-// && dataBinding.equals(physicalClass.getName())
-// && dataType.dataBinding.equals(physicalTargetClass.getName())) {
-// return physicalClass.isAssignableFrom(physicalTargetClass);
-// }
-// if (!physicalClass.isAssignableFrom(physicalTargetClass)) {
-// return false;
-// }
-// return !(dataBinding != null ? !dataBinding.equals(dataType.dataBinding) : dataType.dataBinding != null);
-//
-//
-// }
-//
-// if (dataBinding != null ? !dataBinding.equals(dataType.dataBinding) : dataType.dataBinding != null) {
-// return false;
-// }
-//
-// return !(physical != null ? !physical.equals(dataType.physical) : dataType.physical != null);
-// }
-
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append(physical).append(" ").append(dataBinding).append(" ").append(logical);
- return sb.toString();
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Object clone() throws CloneNotSupportedException {
- DataType<L> copy = (DataType<L>) super.clone();
- assert this.metadata instanceof HashMap;
- copy.metadata = (HashMap<String, Object>) ((HashMap) this.metadata).clone();
- return copy;
- }
-
- public Operation getOperation() {
- return operation;
- }
-
- public void setOperation(Operation operation) {
- this.operation = operation;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java
deleted file mode 100644
index 8520ab49e8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * Represents a component implementation
- *
- * @version $Rev$ $Date$
- */
-public abstract class Implementation<T extends ComponentType> extends ModelObject {
- private T componentType;
-
- protected Implementation() {
- }
-
- protected Implementation(T componentType) {
- this.componentType = componentType;
- }
-
- public T getComponentType() {
- return componentType;
- }
-
- public void setComponentType(T componentType) {
- this.componentType = componentType;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java
deleted file mode 100644
index ac320a2b5c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.net.URL;
-
-/**
- * Model object that represents the include of a composite by value.
- *
- * @version $Rev$ $Date$
- */
-public class Include extends ModelObject {
- private String name;
- private URL scdlLocation;
- private CompositeComponentType included;
-
- /**
- * Returns the name of the composite that is being included.
- * @return the name of the composite that is being included
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the name of the composite that is being included.
- * @param name the name of the composite that is being included
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Returns the location of the SCDL for composite being included.
- * @return the location of the SCDL for composite being included
- */
- public URL getScdlLocation() {
- return scdlLocation;
- }
-
- /**
- * Sets the location of the SCDL for composite being included.
- * @param scdlLocation the location of the SCDL for composite being included
- */
- public void setScdlLocation(URL scdlLocation) {
- this.scdlLocation = scdlLocation;
- }
-
- /**
- * Returns the composite that was included.
- * @return the composite that was included
- */
- public CompositeComponentType getIncluded() {
- return included;
- }
-
- /**
- * Sets the composite that was included.
- * @param included the composite that was included
- */
- public void setIncluded(CompositeComponentType included) {
- this.included = included;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java
deleted file mode 100644
index 9f3ee78a23..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import static java.util.Collections.unmodifiableList;
-import java.util.List;
-import javax.xml.namespace.QName;
-
-/**
- * Model representation for intent. This class is used by intent loader only, other SCA model classes will not reference
- * this class directly.
- *
- * @version $Rev$ $Date$
- */
-public class Intent {
-
- /**
- * name of intent.
- */
- protected IntentName name;
-
- /**
- * Description for this intent
- */
- protected String description;
-
- /**
- * QNames of artifacts this intent can apply to
- */
- protected List<QName> appliedArtifacts = new ArrayList<QName>();
-
- /**
- * intents required by this intent, only useful when this intent is a profile intent
- */
- protected List<IntentName> requriedIntents = new ArrayList<IntentName>();
-
- /**
- * Create a policy intent.
- *
- * @param name name of the intent.
- * @param description description of the intent.
- */
- public Intent(IntentName name, String description) {
- this.name = name;
- this.description = description;
- }
-
- public List<QName> getAppliedArtifacts() {
- return unmodifiableList(appliedArtifacts);
- }
-
- public String getDescription() {
- return description;
- }
-
- public IntentName getName() {
- return name;
- }
-
- public List<IntentName> getRequriedIntents() {
- return unmodifiableList(requriedIntents);
- }
-
- public void addRequriedIntents(IntentName intent) {
- requriedIntents.add(intent);
- }
-
- public void addAppliedArtifacts(QName artifactName) {
- appliedArtifacts.add(artifactName);
- }
-
- public boolean isProfileIntent() {
- return !requriedIntents.isEmpty();
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java
deleted file mode 100644
index cbfba86dfe..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import static java.util.Collections.unmodifiableCollection;
-
-/**
- * Represents an IntentMap within PolicySet.
- *
- * @version $Rev$ $Date$
- */
-public class IntentMap extends PolicyModel {
-
- /* Name of default intent provied by this IntentMap */
- private String defaultProvideIntent;
-
- /* Name of intent provided by this IntentMap */
- private Collection<String> provideIntents = new ArrayList<String>();
-
- /* Qualifiers of this IntentMap */
- private Collection<Qualifier> qualifiers = new ArrayList<Qualifier>();
-
- public IntentMap(String defaultProvideIntent, Collection<String> provideIntents) {
- super();
- this.defaultProvideIntent = defaultProvideIntent;
- this.provideIntents.addAll(provideIntents);
- }
-
- public Collection<String> getProvideIntents() {
- return unmodifiableCollection(provideIntents);
- }
-
- public void addQualifier(Qualifier qualifier) {
- qualifiers.add(qualifier);
- }
-
- public Collection<Qualifier> getQualifiers() {
- return unmodifiableCollection(qualifiers);
- }
-
- public String getDefaultProvideIntent() {
- return defaultProvideIntent;
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java
deleted file mode 100644
index eb69b44b37..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.Arrays;
-
-/**
- * Model class represents a name of a intent. An intent name has a domain name and one or more qualified names. For
- * example, in "sec.confidentiality/message/body", the domain name is sec, and the qualified names are confidentiality,
- * message and body
- */
-@SuppressWarnings({"SerializableHasSerializationMethods"})
-public class IntentName implements java.io.Serializable {
- private static final String QUALIFIED_SEPARATOR = "/";
- private static final String DOMAIN_SEPARATOR = ".";
- private static final long serialVersionUID = -7030021353149084879L;
-
- /**
- * domain of the intent
- */
- private String domain;
-
- private String[] qualifiedNames;
-
- /**
- * Construct a IntentName from a string representation.
- *
- * @param intent string representation for a intent.
- */
- public IntentName(String intent) {
- parse(intent);
- }
-
- /**
- * Construct a IntentName from domain name and qualified names
- *
- * @param domain domain name of the intent
- * @param qualifiedNames qualified names of the intent
- */
- public IntentName(String domain, String[] qualifiedNames) {
- this.domain = domain;
- this.qualifiedNames = qualifiedNames;
- }
-
- public String getDomain() {
- return domain;
- }
-
- public String[] getQualifiedNames() {
- String[] results = new String[qualifiedNames.length];
- System.arraycopy(qualifiedNames, 0, results, 0, qualifiedNames.length);
- return results;
- }
-
- @Override
- public String toString() {
- return getName();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final IntentName other = (IntentName) obj;
- if (domain == null) {
- if (other.domain != null) {
- return false;
- }
- } else if (!domain.equals(other.domain)) {
- return false;
- }
- return Arrays.equals(qualifiedNames, other.qualifiedNames);
- }
-
- @Override
- public int hashCode() {
- final int PRIME = 17;
- int result = 1;
- result = PRIME * result + ((domain == null) ? 0 : domain.hashCode());
- result = PRIME * result + Arrays.hashCode(qualifiedNames);
- return result;
- }
-
- private String getName() {
- StringBuilder sbd = new StringBuilder(domain);
- for (int i = 0; i < qualifiedNames.length; i++) {
- if (i == 0) {
- sbd.append(DOMAIN_SEPARATOR);
- } else {
- sbd.append(QUALIFIED_SEPARATOR);
- }
- sbd.append(qualifiedNames[i]);
- }
-
- return sbd.toString();
- }
-
- /**
- * Parse a string representation of intent.
- *
- * @param intent string representation of intent
- */
- private void parse(String intent) {
- String iname = validateFormat(intent);
- int domainIdx = iname.indexOf(DOMAIN_SEPARATOR);
- domain = iname.substring(0, domainIdx);
- String qualifNamesStr = iname.substring(domainIdx + 1);
- qualifiedNames = qualifNamesStr.split(QUALIFIED_SEPARATOR);
-
- }
-
- private String validateFormat(String intent) {
- // TODO validate and canonicalize intent name
- return intent;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java
deleted file mode 100644
index 4e15e353c6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * Represents the interaction scope specifed for a service
- *
- * @version $Rev$ $Date$
- */
-public enum InteractionScope {
- CONVERSATIONAL,
- NONCONVERSATIONAL
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java
deleted file mode 100644
index 2d5a0802e6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * The base class for assembly model subtypes
- *
- * @version $Rev$ $Date$
- */
-public abstract class ModelObject {
- private final Map<Object, Object> extensions = new HashMap<Object, Object>();
-
- protected ModelObject() {
- }
-
- public Map<Object, Object> getExtensions() {
- return extensions;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java
deleted file mode 100644
index f7ec8759f8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * Enumeration for multiplicity.
- */
-public enum Multiplicity {
- /**
- * Indicates a relationship that is optionally connected to the requestor and which, if supplied, must be connected
- * to exactly one provider.
- */
- ZERO_ONE,
-
- /**
- * Indicates a relationship that must be connected between exactly one requestor and exactly one provider.
- */
- ONE_ONE,
-
- /**
- * Indicates a relationship that is optionally connects the requestor to zero to unbounded providers.
- */
- ZERO_N,
-
- /**
- * Indicates a relationship that must be connected at the requestor and which connects it to zero to unbounded
- * providers.
- */
- ONE_N
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
deleted file mode 100644
index 3de0327a20..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Represents an operation that is part of a service contract. The type paramter of this operation identifies the
- * logical type system for all data types.
- *
- * @version $Rev$ $Date$
- */
-public class Operation<T> extends ModelObject implements Cloneable {
- public static final int NO_CONVERSATION = -1;
- public static final int CONVERSATION_CONTINUE = 1;
- public static final int CONVERSATION_END = 2;
-
- protected Map<String, Object> metaData;
- private final String name;
- private ServiceContract<T> contract;
- private final DataType<T> outputType;
- private final DataType<List<DataType<T>>> inputType;
- private final List<DataType<T>> faultTypes;
- private String dataBinding;
- private boolean wrapperStyle;
- private WrapperInfo wrapper;
- private boolean callback;
- private boolean nonBlocking;
- private int conversationSequence = NO_CONVERSATION;
-
- /**
- * Construct a minimally-specified operation
- *
- * @param name the name of the operation
- * @param inputType the data types of parameters passed to the operation
- * @param outputType the data type returned by the operation
- * @param faultTypes the data type of faults raised by the operation
- */
- public Operation(String name,
- DataType<List<DataType<T>>> inputType,
- DataType<T> outputType,
- List<DataType<T>> faultTypes) {
- this(name, inputType, outputType, faultTypes, false, null, NO_CONVERSATION);
- }
-
- /**
- * Construct an operation
- *
- * @param name the name of the operation
- * @param inputType the data types of parameters passed to the operation
- * @param outputType the data type returned by the operation
- * @param faultTypes the data type of faults raised by the operation
- * @param nonBlocking if the operation is non-blocking
- * @param dataBinding the data-binding type required by the operation
- * @param sequence the conversational attributes of the operation, {@link NO_CONVERSATION}, {@link
- * CONVERSATION_CONTINUE}, or {@link CONVERSATION_END}
- */
- public Operation(final String name,
- final DataType<List<DataType<T>>> inputType,
- final DataType<T> outputType,
- final List<DataType<T>> faultTypes,
- boolean nonBlocking,
- String dataBinding,
- int sequence) {
- super();
- this.name = name;
- List<DataType<T>> types = Collections.emptyList();
- this.inputType = (inputType != null) ? inputType : new DataType<List<DataType<T>>>(Object[].class, types);
- this.outputType = (outputType != null) ? outputType : new DataType<T>(void.class, null);
- this.faultTypes = (faultTypes == null) ? types : faultTypes;
- this.nonBlocking = nonBlocking;
- this.dataBinding = dataBinding;
- this.conversationSequence = sequence;
- // Register the operation with the types
- this.inputType.setOperation(this);
- for (DataType<?> d : this.inputType.getLogical()) {
- d.setOperation(this);
- }
- this.outputType.setOperation(this);
- for (DataType<?> d : this.faultTypes) {
- d.setOperation(this);
- }
- }
-
- /**
- * Returns the service contract the operation is part of.
- *
- * @return the service contract the operation is part of.
- */
- public ServiceContract<T> getServiceContract() {
- return contract;
- }
-
- /**
- * Sets the service contract the operation is part of.
- *
- * @param contract the service contract the operation is part of.
- */
- public void setServiceContract(ServiceContract<T> contract) {
- this.contract = contract;
- }
-
- /**
- * Returns true if the operation is part of the callback contract.
- *
- * @return true if the operation is part of the callback contract.
- */
- public boolean isCallback() {
- return callback;
- }
-
- /**
- * Sets whether the operation is part of the callback contract.
- *
- * @param callback whether the operation is part of the callback contract.
- */
- public void setCallback(boolean callback) {
- this.callback = callback;
- }
-
- /**
- * Returns the name of the operation.
- *
- * @return the name of the operation
- */
- public String getName() {
- return name;
- }
-
- /**
- * Returns the data type returned by the operation.
- *
- * @return the data type returned by the operation
- */
- public DataType<T> getOutputType() {
- return outputType;
- }
-
- /**
- * Returns the data types of the parameters passed to the operation.
- * <p/>
- * The inputType's logical type is a list of DataTypes which describes the parameter types
- *
- * @return the data types of the parameters passed to the operation
- */
- public DataType<List<DataType<T>>> getInputType() {
- return inputType;
- }
-
- /**
- * Returns the data types of the faults raised by the operation.
- *
- * @return the data types of the faults raised by the operation
- */
- public List<DataType<T>> getFaultTypes() {
- if (faultTypes == null) {
- return Collections.emptyList();
- }
- return faultTypes;
- }
-
- /**
- * Returns true if the operation is non-blocking. A non-blocking operation may not have completed execution at the
- * time an invocation of the operation returns.
- *
- * @return true if the operation is non-blocking
- */
- public boolean isNonBlocking() {
- return nonBlocking;
- }
-
- /**
- * Sets if the operation is non-blocking
- */
- public void setNonBlocking(boolean nonBlocking) {
- this.nonBlocking = nonBlocking;
- }
-
- /**
- * Returns the sequence the operation is called in a conversation, {@link NO_CONVERSATION}, {@link
- * CONVERSATION_CONTINUE}, or {@link CONVERSATION_END}
- *
- * @return the sequence the operation is called in a conversation
- */
- public int getConversationSequence() {
- return conversationSequence;
- }
-
- /**
- * Sets the sequence the operation is called in a conversation, {@link NO_CONVERSATION}, {@link
- * CONVERSATION_CONTINUE}, or {@link CONVERSATION_END}
- */
- public void setConversationSequence(int conversationSequence) {
- this.conversationSequence = conversationSequence;
- }
-
- /**
- * Returns the data binding type specified for the operation or null.
- *
- * @return the data binding type specified for the operation or null.
- */
- public String getDataBinding() {
- return (dataBinding == null && contract != null) ? contract.getDataBinding() : dataBinding;
- }
-
- /**
- * Set the databinding for this operation
- *
- * @param dataBinding The databinding
- */
- public void setDataBinding(String dataBinding) {
- this.dataBinding = dataBinding;
- }
-
- /**
- * Returns a map of metadata key to value mappings for the operation.
- *
- * @return a map of metadata key to value mappings for the operation.
- */
- public Map<String, Object> getMetaData() {
- if (metaData == null) {
- return Collections.emptyMap();
- }
- return metaData;
- }
-
- /**
- * Adds metadata associated with the operation.
- *
- * @param key the metadata key
- * @param val the metadata value
- */
- public void setMetaData(String key, Object val) {
- if (metaData == null) {
- metaData = new HashMap<String, Object>();
- }
- metaData.put(key, val);
- }
-
- public String toString() {
- return name;
- }
-
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- final Operation operation = (Operation) o;
-
- if (name != null ? !name.equals(operation.name) : operation.name != null) {
- return false;
- }
-
- // HACK: If the operation is mappable, then the equality test is relaxed
- if (isMappable()) {
- return true;
- }
-
- if (faultTypes == null && operation.faultTypes != null) {
- return false;
- } else if (faultTypes != null
- && operation.faultTypes != null
- && faultTypes.size() != 0
- && operation.faultTypes.size() != 0) {
- if (faultTypes.size() < operation.faultTypes.size()) {
- return false;
- } else {
- //noinspection ForLoopReplaceableByForEach
- for (int i = 0; i < operation.faultTypes.size(); i++) {
- if (!faultTypes.get(i).equals(operation.faultTypes.get(i))) {
- return false;
- }
- }
- }
- }
-
- if (inputType != null ? !inputType.equals(operation.inputType) : operation.inputType != null) {
- return false;
- }
- return !(outputType != null ? !outputType.equals(operation.outputType) : operation.outputType != null);
- }
-
- public int hashCode() {
- int result;
- result = name != null ? name.hashCode() : 0;
- // HACK:
- if (isMappable()) {
- return result;
- }
- result = 29 * result + (outputType != null ? outputType.hashCode() : 0);
- result = 29 * result + (inputType != null ? inputType.hashCode() : 0);
- result = 29 * result + (faultTypes != null ? faultTypes.hashCode() : 0);
- return result;
- }
-
- /**
- * Returns true if the operation may be mapped to another target operation through an mediation
- */
- private boolean isMappable() {
- if (contract != null) {
- return contract.isRemotable();
- } else {
- return false;
- }
- }
-
- /**
- * Returns true if the operation is wrapper style
- *
- * @return the wrapperStyle
- */
- public boolean isWrapperStyle() {
- return wrapperStyle;
- }
-
- /**
- * Return the Wrapper information for this operation is it's wrapper style
- *
- * @return The Wrapper
- */
- public WrapperInfo getWrapper() {
- if (!isWrapperStyle()) {
- throw new IllegalStateException("The operation is not wrapper style.");
- } else {
- return wrapper;
- }
- }
-
- /**
- * @param wrapper the wrapper to set
- */
- public void setWrapper(WrapperInfo wrapper) {
- this.wrapper = wrapper;
- }
-
- /**
- * @param wrapperStyle the wrapperStyle to set
- */
- public void setWrapperStyle(boolean wrapperStyle) {
- this.wrapperStyle = wrapperStyle;
- }
-
- @SuppressWarnings({"unchecked", "CloneDoesntCallSuperClone"})
- @Override
- public Operation<T> clone() throws CloneNotSupportedException {
- final List<DataType<T>> clonedFaultTypes = new ArrayList<DataType<T>>(this.faultTypes.size());
- for (DataType<T> t : this.faultTypes) {
- clonedFaultTypes.add((DataType<T>) t.clone());
- }
-
- List<DataType<T>> clonedTypes = new ArrayList<DataType<T>>();
- for (DataType<T> t : inputType.getLogical()) {
- DataType<T> type = (DataType<T>) t.clone();
- clonedTypes.add(type);
- }
-
- DataType<List<DataType<T>>> clonedInputType =
- new DataType<List<DataType<T>>>(inputType.getPhysical(), clonedTypes);
- clonedInputType.setDataBinding(inputType.getDataBinding());
-
- DataType<T> outputType = (DataType<T>) this.outputType.clone();
- Operation<T> copy =
- new Operation<T>(name,
- clonedInputType,
- outputType,
- clonedFaultTypes,
- nonBlocking,
- dataBinding,
- conversationSequence);
-
- copy.callback = this.callback;
- copy.contract = this.contract;
- copy.wrapper = this.wrapper;
- copy.wrapperStyle = this.wrapperStyle;
-
- if (this.metaData != null) {
- assert this.metaData instanceof HashMap;
- copy.metaData = (HashMap) ((HashMap) this.metaData).clone();
- }
- return copy;
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java
deleted file mode 100644
index cc86b2670a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * <ul>
- * <li>no – the value may not be overridden by the higher composite. In this
- * case, a value must be provided for the reference or property as part of its
- * declaration.
- * <li>may – the value may be overridden by the composite. This is the default
- * for references.
- * <li>must – no value is specified and the using composite must specify one.
- * </ul>
- */
-public enum OverrideOptions {
- NO, MAY, MUST
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java
deleted file mode 100644
index eae425dca8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.tuscany.spi.model;
-
-import java.util.Collection;
-/**
-*
-* Represents capability of being attached with Intent and PolicySet.
-*
-*/
-public interface PolicyAttachable {
- /**
- * Get the name of PolicySet attached
- * @return the name of PolicySet
- */
- String getPolicySet();
- /**
- * Get collection contains <code>IntentName</code> required.
- * @return collection contains <code>IntentName</code> required.
- */
- Collection<IntentName> getRequiredIntents();
-
-} \ No newline at end of file
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java
deleted file mode 100644
index 3ebbfb16d7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.Collection;
-
-/**
- * Base class for model classes which can be associated with Intent and PolicySet by specifing requires and policySet
- * attributes on xml element.
- */
-
-public abstract class PolicyAttachableModel extends ModelObject implements PolicyAttachable {
- protected Collection<IntentName> requiredIntent;
- protected String policySet;
-
- public String getPolicySet() {
- return policySet;
- }
-
- public void setPolicySet(String policySet) {
- this.policySet = policySet;
- }
-
- public Collection<IntentName> getRequiredIntents() {
- return requiredIntent;
- }
-
- public void addRequiredIntent(IntentName requiredIntent) {
- this.requiredIntent.add(requiredIntent);
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java
deleted file mode 100644
index 7d2412ee8d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import static java.util.Collections.unmodifiableCollection;
-
-/**
- * PolicyModel which contains concrete policy content in form of WSPolicyAttachment or other extensions.
- */
-public abstract class PolicyContentModel extends PolicyModel {
- /* WSPolicyAttachment contained in this Model */
- protected Collection<WSPolicyAttachment> wsPolicyAttachments = new ArrayList<WSPolicyAttachment>();
- /* Any policy model extensions besides standard intentMap, ws-policyattachment, etc. */
- protected Collection<PolicyModel> extensions = new ArrayList<PolicyModel>();
-
- public Collection<PolicyModel> getPolicyExtensions() {
- return extensions;
- }
-
- public Collection<WSPolicyAttachment> getWsPolicyAttachments() {
- return unmodifiableCollection(wsPolicyAttachments);
- }
-
- public void addWsPolicyAttachment(WSPolicyAttachment attachment) {
- wsPolicyAttachments.add(attachment);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java
deleted file mode 100644
index 17bd8f0b7e..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.spi.model;
-
-
-/**
- * An abstract base class for all policy model representations.
- * <p/>
- * $Version$ $Date$
- */
-public abstract class PolicyModel extends ModelObject {
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java
deleted file mode 100644
index 7545f234e1..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import static java.util.Collections.unmodifiableCollection;
-import static java.util.Collections.unmodifiableList;
-import java.util.List;
-import javax.xml.namespace.QName;
-
-/**
- * Model representation for PolicySet.
- * <p/>
- * $Rev$ $Date$
- */
-public class PolicySet extends PolicyContentModel {
-
- /**
- * QNames of artifacts to which this Policy can apply
- */
- protected List<QName> appliedArtifacts = new ArrayList<QName>();
-
- /**
- * IntentMap contained in this PolicySet
- */
- private Collection<IntentMap> intentMaps = new ArrayList<IntentMap>();
-
- /**
- * Name for PolicySet, corresponding to name attribute of PolicySet element in SCDL
- */
- private QName name;
-
- /**
- * References to other PolicySet
- */
- private Collection<PolicySetReference> policySetReferences = new ArrayList<PolicySetReference>();
-
- /**
- * Name of intents provided by this PolicySet
- */
- private Collection<IntentName> provideIntents = new ArrayList<IntentName>();
-
- public PolicySet(QName name, List<IntentName> providesIntent) {
- super();
- this.name = name;
- this.provideIntents.addAll(providesIntent);
- }
-
-
- public void addPolicySetReference(PolicySetReference ref) {
- policySetReferences.add(ref);
- }
-
- public void addAppliedArtifacts(QName artifactName) {
- appliedArtifacts.add(artifactName);
- }
-
- public List<QName> getAppliedArtifacts() {
- return unmodifiableList(appliedArtifacts);
- }
-
- public void addIntentMap(IntentMap intentMap) {
- intentMaps.add(intentMap);
- }
-
- public Collection<IntentMap> getIntentMaps() {
- return unmodifiableCollection(intentMaps);
- }
-
- public QName getName() {
- return name;
- }
-
- public Collection<PolicySetReference> getPolicySetReferences() {
- return unmodifiableCollection(policySetReferences);
- }
-
- public Collection<IntentName> getProvideIntents() {
- return unmodifiableCollection(provideIntents);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java
deleted file mode 100644
index 46924910d0..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.spi.model;
-
-import javax.xml.namespace.QName;
-
-/**
- * Presents a PolicySetReference.
- */
-public class PolicySetReference extends PolicyModel {
-
- private QName reference;
-
- public PolicySetReference(QName reference) {
- super();
- this.reference = reference;
- }
-
- public QName getReference() {
- return reference;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java
deleted file mode 100644
index 700b099da7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.spi.model;
-
-import javax.xml.namespace.QName;
-
-import org.w3c.dom.Document;
-
-import org.apache.tuscany.spi.ObjectFactory;
-
-/**
- * A component property
- *
- * @version $Rev$ $Date$
- */
-public class Property<T> extends ModelObject {
- private String name;
- private ObjectFactory<T> defaultValueFactory;
- private QName xmlType;
- private Class<T> javaType;
- private boolean many;
- private OverrideOptions override;
- private Document defaultValue;
-
- public Property() {
- }
-
- public Property(String name, QName xmlType, Class<T> javaType) {
- this.name = name;
- this.xmlType = xmlType;
- this.javaType = javaType;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public ObjectFactory<T> getDefaultValueFactory() {
- return defaultValueFactory;
- }
-
- public void setDefaultValueFactory(ObjectFactory<T> factory) {
- this.defaultValueFactory = factory;
- }
-
- public QName getXmlType() {
- return xmlType;
- }
-
- public void setXmlType(QName xmlType) {
- this.xmlType = xmlType;
- }
-
- public Class<T> getJavaType() {
- return javaType;
- }
-
- public void setJavaType(Class<T> javaType) {
- this.javaType = javaType;
- }
-
- public boolean isMany() {
- return many;
- }
-
- public void setMany(boolean many) {
- this.many = many;
- }
-
- public OverrideOptions getOverride() {
- return override;
- }
-
- public void setOverride(OverrideOptions override) {
- this.override = override;
- }
-
- public Document getDefaultValue() {
- return defaultValue;
- }
-
- public void setDefaultValue(Document defaultValue) {
- this.defaultValue = defaultValue;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java
deleted file mode 100644
index 93eaa74f52..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.spi.model;
-
-import org.apache.tuscany.spi.ObjectFactory;
-import org.w3c.dom.Document;
-
-/**
- * Represents a configured component property
- *
- * @version $Rev$ $Date$
- */
-public class PropertyValue<T> extends ModelObject {
- private String name;
- private String source;
- private String file;
- private Document value;
- private ObjectFactory<T> valueFactory;
-
- public PropertyValue() {
- }
-
- /**
- * Constructor specifying the name of a property and the XPath source expression.
- *
- * @param name the name of the property which this value is for
- * @param source an XPath expression whose result will be the actual value
- * @param file A URI that the property value can be loaded from
- */
- public PropertyValue(String name, String source, String file) {
- this.name = name;
- this.source = source;
- this.file = file;
- }
-
- /**
- * @param name
- * @param value
- */
- public PropertyValue(String name, Document value) {
- this.name = name;
- this.value = value;
- }
-
- public PropertyValue(String name, ObjectFactory<T> valueFactory) {
- this.name = name;
- this.valueFactory = valueFactory;
- }
-
- /**
- * Returns the name of the property that this value is for.
- * @return the name of the property that this value is for
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the name of the property that this value is for.
- * @param name the name of the property that this value is for
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Returns an XPath expression that should be evaluated to get the actual property value.
- *
- * @return an XPath expression that should be evaluated to get the actual property value
- */
- public String getSource() {
- return source;
- }
-
- /**
- * Sets an XPath expression that should be evaluated to get the actual property value.
- * @param source an XPath expression that should be evaluated to get the actual property value
- */
- public void setSource(String source) {
- this.source = source;
- }
-
- public ObjectFactory<T> getValueFactory() {
- return valueFactory;
- }
-
- public void setValueFactory(ObjectFactory<T> valueFactory) {
- this.valueFactory = valueFactory;
- }
-
- public Document getValue() {
- return value;
- }
-
- public void setValue(Document value) {
- this.value = value;
- }
-
- /**
- * @return the file
- */
- public String getFile() {
- return file;
- }
-
- /**
- * @param file the file to set
- */
- public void setFile(String file) {
- this.file = file;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java
deleted file mode 100644
index 8a7d709bd9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * Model reprentation for qualifier
- */
-
-public class Qualifier extends PolicyContentModel {
-
- private String name;
-
- /**
- * IntentMap contained in this Qualifier
- */
- private IntentMap intentMap;
-
- public Qualifier(String name) {
- super();
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public IntentMap getIntentMap() {
- return intentMap;
- }
-
- public void setIntentMap(IntentMap intentMap) {
- this.intentMap = intentMap;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java
deleted file mode 100644
index f167272705..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * Represents a component reference
- *
- * @version $Rev$ $Date$
- */
-public class ReferenceDefinition extends ModelObject {
- private String name;
- private ServiceContract serviceContract;
- private Multiplicity multiplicity;
- private boolean autowire;
- private boolean required;
-
- public ReferenceDefinition() {
- }
-
- public ReferenceDefinition(String name, ServiceContract serviceContract) {
- this.name = name;
- this.serviceContract = serviceContract;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public ServiceContract<?> getServiceContract() {
- return serviceContract;
- }
-
- public void setServiceContract(ServiceContract serviceContract) {
- this.serviceContract = serviceContract;
- }
-
- public Multiplicity getMultiplicity() {
- return multiplicity;
- }
-
- public void setMultiplicity(Multiplicity multiplicity) {
- this.multiplicity = multiplicity;
- }
-
- public boolean isAutowire() {
- return autowire;
- }
-
- public void setAutowire(boolean autowire) {
- this.autowire = autowire;
- }
-
- public boolean isRequired() {
- return required;
- }
-
- public void setRequired(boolean required) {
- this.required = required;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java
deleted file mode 100644
index db0bdb2b22..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents the set of targets configured on a reference
- *
- * @version $Rev$ $Date$
- */
-public class ReferenceTarget extends ModelObject {
- private String referenceName;
- private List<URI> targets = new ArrayList<URI>();
-
- public String getReferenceName() {
- return referenceName;
- }
-
- public void setReferenceName(String referenceName) {
- this.referenceName = referenceName;
- }
-
- public List<URI> getTargets() {
- return targets;
- }
-
- public void addTarget(URI target) {
- targets.add(target);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java
deleted file mode 100644
index a53b26d2ba..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * The default implementation scopes supported by assemblies.
- *
- * @version $Rev$ $Date$
- */
-public class Scope {
- public static final Scope STATELESS = new Scope("STATELESS");
- public static final Scope REQUEST = new Scope("REQUEST");
- public static final Scope SESSION = new Scope("SESSION");
- public static final Scope CONVERSATION = new Scope("CONVERSATION");
- public static final Scope COMPOSITE = new Scope("COMPOSITE");
- public static final Scope SYSTEM = new Scope("SYSTEM");
- public static final Scope UNDEFINED = new Scope("UNDEFINED");
-
- private String scope;
-
- public Scope(String scope) {
- this.scope = scope.toUpperCase().intern();
- }
-
- public String getScope() {
- return scope;
- }
-
- @SuppressWarnings({"StringEquality"})
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- final Scope scope1 = (Scope) o;
- return !(scope != null ? scope != scope1.scope.intern() : scope1.scope != null);
- }
-
- public int hashCode() {
- return scope != null ? scope.hashCode() : 0;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java
deleted file mode 100644
index b199de720c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Base class representing service contract information
- *
- * @version $Rev$ $Date$
- */
-public abstract class ServiceContract<T> extends ModelObject implements Cloneable {
- protected InteractionScope interactionScope;
- protected boolean remotable;
- protected Class<?> interfaceClass;
- protected String interfaceName;
- protected String callbackName;
- protected Class<?> callbackClass;
- protected Map<String, Operation<T>> operations;
- protected Map<String, Operation<T>> callbackOperations;
- protected String dataBinding;
- protected Map<String, Object> metaData;
-
- protected ServiceContract() {
- }
-
- protected ServiceContract(Class<?> interfaceClass) {
- this.interfaceClass = interfaceClass;
- }
-
- protected ServiceContract(String interfaceName) {
- this.interfaceName = interfaceName;
- }
-
- /**
- * Returns the interface name for the contract
- *
- * @return the interface name for the contract
- */
- public String getInterfaceName() {
- return interfaceName;
- }
-
- /**
- * Sets the interface name for the contract
- */
- public void setInterfaceName(String interfaceName) {
- this.interfaceName = interfaceName;
- }
-
- /**
- * Returns the class used to represent the service contract
- */
- public Class<?> getInterfaceClass() {
- return interfaceClass;
- }
-
- /**
- * Sets the class used to represent the service contract
- */
- public void setInterfaceClass(Class<?> interfaceClass) {
- this.interfaceClass = interfaceClass;
- }
-
- /**
- * Returns the service interaction scope
- */
- public InteractionScope getInteractionScope() {
- return interactionScope;
- }
-
- /**
- * Sets the service interaction scope
- */
- public void setInteractionScope(InteractionScope interactionScope) {
- this.interactionScope = interactionScope;
- }
-
- /**
- * @return the remotable
- */
- public boolean isRemotable() {
- return remotable;
- }
-
- /**
- * @param remotable the remotable to set
- */
- public void setRemotable(boolean remotable) {
- this.remotable = remotable;
- }
-
- /**
- * Returns the name of the callback or null if the contract is unidirectional
- */
- public String getCallbackName() {
- return callbackName;
- }
-
- /**
- * Sets the name of the callback service
- */
- public void setCallbackName(String callbackName) {
- this.callbackName = callbackName;
- }
-
- /**
- * Returns the name of the callback service
- */
- public Class<?> getCallbackClass() {
- return callbackClass;
- }
-
- public void setCallbackClass(Class<?> callbackClass) {
- this.callbackClass = callbackClass;
- }
-
- public Map<String, Operation<T>> getOperations() {
- if (operations == null) {
- return Collections.emptyMap();
- }
- return Collections.unmodifiableMap(operations);
- }
-
- public void setOperations(Map<String, Operation<T>> operations) {
- for (Operation<T> operation : operations.values()) {
- operation.setServiceContract(this);
- }
- this.operations = operations;
- }
-
- public Map<String, Operation<T>> getCallbackOperations() {
- if (callbackOperations == null) {
- return Collections.emptyMap();
- }
- return Collections.unmodifiableMap(callbackOperations);
- }
-
- public void setCallbackOperations(Map<String, Operation<T>> callbacksOperations) {
- for (Operation<T> operation : callbacksOperations.values()) {
- operation.setServiceContract(this);
- operation.setCallback(true);
- }
- this.callbackOperations = callbacksOperations;
- }
-
- public String getDataBinding() {
- return dataBinding;
- }
-
- public void setDataBinding(String dataBinding) {
- this.dataBinding = dataBinding;
- }
-
- /**
- * Returns a map of metadata key to value mappings for the operation.
- *
- * @return a map of metadata key to value mappings for the operation.
- */
- public Map<String, Object> getMetaData() {
- if (metaData == null) {
- return Collections.emptyMap();
- }
- return metaData;
- }
-
- /**
- * Adds metadata associated with the operation.
- *
- * @param key the metadata key
- * @param val the metadata value
- */
- public void setMetaData(String key, Object val) {
- if (metaData == null) {
- metaData = new HashMap<String, Object>();
- }
- metaData.put(key, val);
- }
-
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- final ServiceContract that = (ServiceContract) o;
-
- if (callbackName != null ? !callbackName.equals(that.callbackName) : that.callbackName != null) {
- return false;
- }
- if (callbackOperations != null ? !callbackOperations.equals(that.callbackOperations)
- : that.callbackOperations != null) {
- return false;
- }
- if (interfaceClass != null ? !interfaceClass.equals(that.interfaceClass) : that.interfaceClass != null) {
- return false;
- }
- if (interfaceName != null ? !interfaceName.equals(that.interfaceName) : that.interfaceName != null) {
- return false;
- }
- return !(operations != null ? !operations.equals(that.operations) : that.operations != null);
-
- }
-
- public int hashCode() {
- int result;
- result = interfaceClass != null ? interfaceClass.hashCode() : 0;
- result = 29 * result + (interfaceName != null ? interfaceName.hashCode() : 0);
- result = 29 * result + (callbackName != null ? callbackName.hashCode() : 0);
- result = 29 * result + (operations != null ? operations.hashCode() : 0);
- result = 29 * result + (callbackOperations != null ? callbackOperations.hashCode() : 0);
- return result;
- }
-
- public String toString() {
- if (interfaceName != null) {
- return new StringBuilder().append("ServiceContract[").append(interfaceName).append("]").toString();
- } else if (interfaceClass != null) {
- return new StringBuilder().append("ServiceContract[").append(interfaceClass.getName()).append("]")
- .toString();
- } else {
- return super.toString();
- }
-
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Object clone() throws CloneNotSupportedException {
- ServiceContract<T> copy = (ServiceContract<T>) super.clone();
-
- if (operations != null) {
- Map<String, Operation<T>> clonedOperations = new HashMap<String, Operation<T>>();
- for (Operation<T> o : operations.values()) {
- clonedOperations.put(o.getName(), o);
- }
- copy.setOperations(clonedOperations);
- }
-
- if (callbackOperations != null) {
- Map<String, Operation<T>> clonedCallbackOperations = new HashMap<String, Operation<T>>();
- for (Operation<T> o : callbackOperations.values()) {
- clonedCallbackOperations.put(o.getName(), (Operation<T>) o.clone());
- }
- copy.setCallbackOperations(clonedCallbackOperations);
- }
-
- if (this.metaData != null) {
- assert this.metaData instanceof HashMap;
- copy.metaData = (HashMap) ((HashMap) this.metaData).clone();
- }
-
- return copy;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java
deleted file mode 100644
index aadcef8d4c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.spi.model;
-
-/**
- * Represents a service offered by a component
- *
- * @version $Rev$ $Date$
- */
-public class ServiceDefinition extends ModelObject {
- private String name;
- private ServiceContract serviceContract;
- private boolean remotable;
- private String callbackRefName;
-
- public ServiceDefinition() {
- }
-
- public ServiceDefinition(String name, ServiceContract serviceContract, boolean remotable) {
- this.name = name;
- this.serviceContract = serviceContract;
- this.remotable = remotable;
- }
-
- public ServiceDefinition(String name, ServiceContract serviceContract, boolean remotable, String callbackRefName) {
- this.name = name;
- this.serviceContract = serviceContract;
- this.remotable = remotable;
- this.callbackRefName = callbackRefName;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public ServiceContract<?> getServiceContract() {
- return serviceContract;
- }
-
- public void setServiceContract(ServiceContract serviceContract) {
- this.serviceContract = serviceContract;
- }
-
- public boolean isRemotable() {
- return remotable;
- }
-
- public void setRemotable(boolean remotable) {
- this.remotable = remotable;
- }
-
- /**
- * Returns the callback name.
- */
- public String getCallbackReferenceName() {
- return callbackRefName;
- }
-
- /**
- * Sets the callback name
- * @param name
- */
- public void setCallbackReferenceName(String name) {
- this.callbackRefName = name;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java
deleted file mode 100644
index ff1a6cf791..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.spi.model;
-
-/*
- * Presents a ws-policy attachment.
- */
-public class WSPolicyAttachment<T> extends PolicyModel {
- private T content;
-
- public T getContent() {
- return content;
- }
-
- public void setContent(T content) {
- this.content = content;
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java
deleted file mode 100644
index 7ae91811b6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.net.URI;
-
-/**
- * Represents a wire specified in an assembly
- *
- * @version $Rev$ $Date$
- */
-public class WireDefinition extends ModelObject {
- private URI source;
- private URI target;
-
- public URI getSource() {
- return source;
- }
-
- public void setSource(URI source) {
- this.source = source;
- }
-
- public URI getTarget() {
- return target;
- }
-
- public void setTarget(URI target) {
- this.target = target;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java
deleted file mode 100644
index 50209e045c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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.spi.model;
-
-import java.util.List;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.idl.ElementInfo;
-
-/**
- * The "Wrapper Style" WSDL operation is defined by The Java API for XML-Based Web Services (JAX-WS) 2.0 specification,
- * section 2.3.1.2 Wrapper Style.
- * <p/>
- * A WSDL operation qualifies for wrapper style mapping only if the following criteria are met: <ul> <li>(i) The
- * operation’s input and output messages (if present) each contain only a single part <li>(ii) The input message part
- * refers to a global element declaration whose localname is equal to the operation name <li>(iii) The output message
- * part refers to a global element declaration <li>(iv) The elements referred to by the input and output message parts
- * (henceforth referred to as wrapper elements) are both complex types defined using the xsd:sequence compositor <li>(v)
- * The wrapper elements only contain child elements, they must not contain other structures such as wildcards (element
- * or attribute), xsd:choice, substitution groups (element references are not permitted) or attributes; furthermore,
- * they must not be nillable. </ul>
- *
- * @version $Rev$ $Date$
- */
-public class WrapperInfo {
- private ElementInfo inputWrapperElement;
-
- private ElementInfo outputWrapperElement;
-
- private List<ElementInfo> inputChildElements;
-
- private List<ElementInfo> outputChildElements;
-
- private DataType<List<DataType<QName>>> unwrappedInputType;
-
- private DataType<QName> unwrappedOutputType;
-
- public WrapperInfo(ElementInfo inputWrapperElement,
- ElementInfo outputWrapperElement,
- List<ElementInfo> inputElements,
- List<ElementInfo> outputElements,
- DataType<List<DataType<QName>>> unwrappedInputType,
- DataType<QName> unwrappedOutputType) {
- super();
- this.inputWrapperElement = inputWrapperElement;
- this.outputWrapperElement = outputWrapperElement;
- this.inputChildElements = inputElements;
- this.outputChildElements = outputElements;
- this.unwrappedInputType = unwrappedInputType;
- this.unwrappedOutputType = unwrappedOutputType;
- }
-
- /**
- * @return the inputElements
- */
- public List<ElementInfo> getInputChildElements() {
- return inputChildElements;
- }
-
- /**
- * @return the inputWrapperElement
- */
- public ElementInfo getInputWrapperElement() {
- return inputWrapperElement;
- }
-
- /**
- * @return the outputElements
- */
- public List<ElementInfo> getOutputChildElements() {
- return outputChildElements;
- }
-
- /**
- * @return the outputWrapperElement
- */
- public ElementInfo getOutputWrapperElement() {
- return outputWrapperElement;
- }
-
- /**
- * @return the unwrappedInputType
- */
- public DataType<List<DataType<QName>>> getUnwrappedInputType() {
- return unwrappedInputType;
- }
-
- /**
- * @return the unwrappedOutputType
- */
- public DataType<QName> getUnwrappedOutputType() {
- return unwrappedOutputType;
- }
-} \ No newline at end of file
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java
deleted file mode 100644
index 8517977f0d..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.spi.policy;
-
-import java.util.Collection;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.Intent;
-import org.apache.tuscany.spi.model.IntentName;
-
-/**
- * The registry for intents.
- *
- * @version $Rev$ $Date$
- */
-public interface IntentRegistry {
-
- /**
- * Register a intent.
- *
- * @param intent intent to register
- */
- void register(Intent intent);
-
- /**
- * Unregister a intent.
- *
- * @param intent intent to unregister
- */
- void unRegister(Intent intent);
-
- /**
- * Replace the profile intents in intentNameList with the real concrete intent.
- *
- * @param intentNameList intent list that may contains profile intents
- * @param artifact QName of SCA artifact
- * @return concrete intents list
- */
- Collection<IntentName> inlineProfileIntent(Collection<IntentName> intentNameList, QName artifact);
-
- /**
- * Whether the intent is appplicable for specified SCA artifact.
- *
- * @param intentName name of intent
- * @param artifact QName of SCA artifact
- * @return Whether the intent is appplicable for specified SCA artifact
- */
- boolean isApplicable(IntentName intentName, QName artifact);
-
- /**
- * Get a list including all qualified intents for a qulifiable intent.
- *
- * @param qualifiable qualifiable intent
- * @param artifact QName of SCA artifact
- * @return list including all qualified intents for a qulifiable intent.
- */
- Collection<IntentName> getQualifiedIntents(IntentName qualifiable, QName artifact);
-
- /**
- * Whether the intent is a qualified.
- *
- * @param name intent name.
- * @return whether the intent is a qualified
- */
- boolean isQualifiedIntent(IntentName name);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
deleted file mode 100644
index 2c85f846ac..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.spi.policy;
-
-import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-/**
- * A registry for policy builders that dispatches to the appropriate builder when converting an assembly to runtime
- * artifacts. Policy builders operate on either a source- or target-side wires.
- *
- * @version $Rev$ $Date$
- */
-public interface PolicyBuilderRegistry {
-
- int INITIAL = 0;
- int EXTENSION = 1;
- int FINAL = 2;
-
- /**
- * Registers a target-side policy builder. Called by extensions to register their builders.
- *
- * @param phase the phase hwne the builder must be run
- * @param builder the builder to register
- */
- void registerTargetBuilder(int phase, TargetPolicyBuilder builder);
-
- /**
- * Registers a source-side policy builder. Called by extensions to register their builders.
- *
- * @param phase the phase hwne the builder must be run
- * @param builder the builder to register
- */
- void registerSourceBuilder(int phase, SourcePolicyBuilder builder);
-
- /**
- * Evaluates source-side policy metadata for referenceDefinition and updates the curresponding collection of wire
- * configurations
- *
- * @throws BuilderException
- */
- void buildSource(ReferenceDefinition referenceDefinition, OutboundWire wire) throws BuilderException;
-
- /**
- * Evaluates target-side policy metadata for configured reference and updates the curresponding collection of wire
- * configurations
- *
- * @throws BuilderException
- */
- void buildTarget(ServiceDefinition serviceDefinition, InboundWire wire) throws BuilderException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java
deleted file mode 100644
index fd4ba129d5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.spi.policy;
-
-import java.util.Collection;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.IntentName;
-import org.apache.tuscany.spi.model.PolicyModel;
-
-/**
- * Responsible for matching concrete policy artifacts required by abstract intent name.
- */
-public interface PolicyEngine {
-
- /**
- * Retrieve policies which match the intents requirement on a SCA artifact. See SCA policy frame spec. 1.4.5 Guided
- * Selection of PolicySets using Intents
- *
- * @param requires Intent names requred by the SCA artifact
- * @param policySetName PolicySet names specify on the SCA artifact explicitly
- * @param artifactType QName of SCA artifact type, which may be a abstract artifact type
- * @return Collection contains all policy matching the intent requirement
- */
- Collection<PolicyModel> getPolicy(IntentName[] requires, QName[] policySetName, QName artifactType);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java
deleted file mode 100644
index f7a9e0922a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.policy;
-
-import java.util.Collection;
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.model.PolicySet;
-
-/**
- * The host for PolicySet.
- */
-public interface PolicySetContainer {
-
- /**
- * Get all PolicySet of this container
- *
- * @return Collection contains all PolicySet of this container
- */
- Collection<PolicySet> getAllPolicySet();
-
- /**
- * Get PolicySet by name.
- *
- * @param name QName of PolicySet.
- * @return PolicySet with specified name
- */
- PolicySet getPolicySet(QName name);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java
deleted file mode 100644
index 3a5127f014..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.spi.policy;
-
-import javax.xml.namespace.QName;
-
-public interface SCATypeManager {
-
- /**
- * Whether the <code>subType</code> is a sub type of <code>type</code> or the type itself.
- */
- boolean isTypeOf(QName subType, QName type);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java
deleted file mode 100644
index b32f52c8ab..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.spi.policy;
-
-import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-/**
- * Implementations contribute {@link org.apache.tuscany.spi.wire.Interceptor}s to handle source-side policy on a wire.
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface SourcePolicyBuilder {
-
- /**
- * Callback for attaching policy to a source-side wire
- *
- * @param definition the service definition
- * @param wire the wire to attach policy to
- * @throws BuilderException
- */
- void build(ReferenceDefinition definition, OutboundWire wire) throws BuilderException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java
deleted file mode 100644
index 2bb06add8f..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.spi.policy;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Property;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-
-/**
- * A runtime extension point for {@link SourcePolicyBuilder}s
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-public abstract class SourcePolicyBuilderExtension implements SourcePolicyBuilder {
- protected int phase = PolicyBuilderRegistry.EXTENSION;
- private PolicyBuilderRegistry registry;
-
- @Autowire
- public void setRegistry(PolicyBuilderRegistry registry) {
- this.registry = registry;
- }
-
- @Property
- public void setPhase(int phase) {
- this.phase = phase;
- }
-
- @Init
- public void init() {
- registry.registerSourceBuilder(phase, this);
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java
deleted file mode 100644
index c4b932fdd8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.spi.policy;
-
-import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-import org.apache.tuscany.spi.wire.InboundWire;
-
-/**
- * Implementations contribute {@link org.apache.tuscany.spi.wire.Interceptor}s to handle target-side policy on a wire.
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface TargetPolicyBuilder {
-
- /**
- * Callback for attaching policy to a target-side wire
- *
- * @param definition the service definition
- * @param wire the wire to attach policy to
- * @throws BuilderException
- */
- void build(ServiceDefinition definition, InboundWire wire) throws BuilderException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java
deleted file mode 100644
index babcce50e9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.spi.policy;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Property;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-
-/**
- * A runtime extension point for {@link org.apache.tuscany.spi.policy.SourcePolicyBuilder}s
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-public abstract class TargetPolicyBuilderExtension implements TargetPolicyBuilder {
- protected int phase = PolicyBuilderRegistry.EXTENSION;
- private PolicyBuilderRegistry registry;
-
- @Autowire
- public void setRegistry(PolicyBuilderRegistry registry) {
- this.registry = registry;
- }
-
- @Property
- public void setPhase(int phase) {
- this.phase = phase;
- }
-
- @Init
- public void init() {
- registry.registerTargetBuilder(phase, this);
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java
deleted file mode 100644
index 777cfbd3e9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.spi.services;
-
-import org.osoa.sca.annotations.Service;
-
-/**
- * Empty interface for a service component that has no operations.
- * This can be used as a default service interface by components that
- * do not wish the base class to be used as the interface as specified
- * by the defaulting rules.
- *
- * @version $Rev$ $Date$
- */
-@Service
-public interface VoidService {
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java
deleted file mode 100644
index 4da522d196..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * 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.spi.services.artifact;
-
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Description of some packaged artifact such as a JAR file or a Composite.
- *
- * @version $Rev$ $Date$
- */
-public class Artifact {
-
- /* Artifact group */
- private String group;
-
- /* Artifact name */
- private String name;
-
- /* Artifact version */
- private String version;
-
- /* Artifact classifier */
- private String classifier;
-
- /* Artifact type */
- private String type;
-
- /* Artifact url */
- private URL url;
-
- /* Transitive dependencies */
- private Set<Artifact> dependencies = new HashSet<Artifact>();
-
- /**
- * Adds a transitive dependency to the artifact.
- *
- * @param artifact Dependency to be added.
- */
- public void addDependency(Artifact artifact) {
- dependencies.add(artifact);
- }
-
- /**
- * Gets the URLs for all the transitive dependencies.
- *
- * @return Sets of URLs for all the transitive dependencies.
- */
- public Set<URL> getUrls() {
-
- Set<URL> urls = new HashSet<URL>();
-
- for (Artifact artifact : dependencies) {
- urls.add(artifact.getUrl());
- }
- urls.add(getUrl());
-
- return urls;
-
- }
-
- /**
- * Returns the name of a logical grouping to which this artifact belongs. For example, this might represent the
- * original publisher of the artifact.
- *
- * @return the name of a logical grouping to which this artifact belongs
- */
- public String getGroup() {
- return group;
- }
-
- /**
- * Sets the name of a logical grouping to which this artifact belongs.
- *
- * @param group the name of a logical grouping to which this artifact belongs
- */
- public void setGroup(String group) {
- this.group = group;
- }
-
- /**
- * Returns the name of an artifact.
- *
- * @return the name of an artifact
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the name of an artifact.
- *
- * @param name the name of an artifact
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Returns the version of an artifact.
- *
- * @return the version of an artifact
- */
- public String getVersion() {
- return version;
- }
-
- /**
- * Sets the version of an artifact.
- *
- * @param version the version of an artifact
- */
- public void setVersion(String version) {
- this.version = version;
- }
-
- /**
- * Returns a way of classifying an artifact. This can be used to distinguish variants of an artifact that provide
- * the same function but which may have platform specific requirements. For example, it may contain the name of a
- * hardware platform for artifacts that contain native code.
- *
- * @return a way of classifying an artifact
- */
- public String getClassifier() {
- return classifier;
- }
-
- /**
- * Sets a way of classifying an artifact
- *
- * @param classifier a way of classifying an artifact
- */
- public void setClassifier(String classifier) {
- this.classifier = classifier;
- }
-
- /**
- * Returns the type of artifact.
- *
- * @return the type of artifact
- */
- public String getType() {
- return type;
- }
-
- /**
- * Sets the type of artifact.
- *
- * @param type the type of artifact
- */
- public void setType(String type) {
- this.type = type;
- }
-
- /**
- * Returns a URL from which the artifact can be obtained.
- *
- * @return a URL from which the artifact can be obtained
- */
- public URL getUrl() {
- return url;
- }
-
- /**
- * Sets a URL from which the artifact can be obtained.
- *
- * @param url a URL from which the artifact can be obtained
- */
- public void setUrl(URL url) {
- this.url = url;
- }
-
-
- public String toString() {
- StringBuilder buf = new StringBuilder();
- buf.append(group).append(':').append(name).append(':').append(version).append(':').append(type);
- return buf.toString();
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java
deleted file mode 100644
index b0f590e163..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.spi.services.artifact;
-
-import java.util.Collection;
-
-/**
- * Abstraction for a repository of SCA and other artifacts.
- *
- * @version $Rev$ $Date$
- */
-public interface ArtifactRepository {
- /**
- * Resolve an artifact.
- * This ensures that the information associated with an artifact is fully populated;
- * Specifically, after this operation the URL should contain a location where the artifact can be obtained.
- *
- * @param artifact the artifact to be resolved
- */
- void resolve(Artifact artifact);
-
- /**
- * Resolve a collection of Artifacts.
- *
- * @param artifacts a collection of artifacts to be resolved
- * @see #resolve(Artifact)
- */
- void resolve(Collection<? extends Artifact> artifacts);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java
deleted file mode 100644
index 6e309243f3..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.spi.services.discovery;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.host.RuntimeInfo;
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.Init;
-
-/**
- * Abstract implementation of the discovery service.
- *
- * @version $Revision$ $Date$
- *
- */
-public abstract class AbstractDiscoveryService implements DiscoveryService {
-
- /** Runtime info. */
- private RuntimeInfo runtimeInfo;
-
- /** Listeners. */
- private Map<QName, MessageListener> listenerMap = new ConcurrentHashMap<QName, MessageListener>();
-
- /**
- * Registers a listener for async messages.
- *
- * @param meesageType Message type that can be handled by the listener.
- * @param listener Recipient of the async message.
- */
- public void registerListener(QName messageType, MessageListener listener) {
- listenerMap.put(messageType, listener);
- }
-
- /**
- * Sets the runtime info for the runtime using the discovery service.
- *
- * @param runtimeInfo Runtime info for the runtime using the discovery service.
- */
- @Autowire
- public final void setRuntimeInfo(RuntimeInfo runtimeInfo) {
- this.runtimeInfo = runtimeInfo;
- }
-
- /**
- * Starts the discovery service.
- */
- @Init
- public final void start() {
-
- onStart();
-
- Runnable shutdownHook = new ShutdownHook();
- Runtime.getRuntime().addShutdownHook(new Thread(shutdownHook));
-
- }
-
- /**
- * Stops the discovery service.
- */
- @Destroy
- public final void stop() {
- onStop();
- }
-
- /**
- * Gets the runtime info for the runtime using the discovery service.
- *
- * @return Runtime info for the runtime using the discovery service.
- */
- protected final RuntimeInfo getRuntimeInfo() {
- return runtimeInfo;
- }
-
- /**
- * Returns the listener for the specified message type.
- *
- * @param messageType Message type for the incoming message.
- * @return Listeners inteersted in the message type.
- */
- public final MessageListener getListener(QName messageType) {
- return listenerMap.get(messageType);
- }
-
- /**
- * Required to be overridden by sub-classes.
- *
- */
- protected abstract void onStart();
-
- /**
- * Required to be overridden by sub-classes.
- *
- */
- protected abstract void onStop();
-
- /**
- * Shutdown hook.
- */
- private class ShutdownHook implements Runnable {
-
- public void run() {
- stop();
- }
-
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java
deleted file mode 100644
index b54dfc79b5..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.spi.services.discovery;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamReader;
-
-/**
- * Defines the abstraction that allows runtimes participating
- * in the domain to discover each other and broadcast liveness
- * to the admin server that holds the domain's runtime physical
- * model and the domain-wide assembly model..
- *
- * @version $Revision$ $Date$
- *
- */
-public interface DiscoveryService {
-
- /**
- * Sends a message to the specified runtime.
- *
- * @param runtimeId Runtime id of recipient.
- * @param content Message content.
- */
- void sendMessage(String runtimeId, XMLStreamReader content);
-
- /**
- * Registers a listener for async messages.
- *
- * @param messageType Message type that can be handled by the listener.
- * @param listener Recipient of the async message.
- */
- void registerListener(QName messageType, MessageListener listener);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java
deleted file mode 100644
index ed354a01a9..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.spi.services.discovery;
-
-import javax.xml.stream.XMLStreamReader;
-
-/**
- * Message listener for propogating callbacks.
- *
- * @version $Revision$ $Date$
- *
- */
-public interface MessageListener {
-
- /**
- * Callback for propogating async messages.
- * @param content Message content.
- */
- void onMessage(XMLStreamReader content);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java
deleted file mode 100644
index 10c2215bf6..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.spi.services.management;
-
-import org.apache.tuscany.host.management.ManagementService;
-import org.apache.tuscany.spi.component.Component;
-
-/**
- * Interface for the management service abstraction. The implementaion
- * could be based on a variety of technologies including JMX, WSDM,
- * SNMP etc.
- *
- * @version $Revision$ $Date$
- */
-public interface TuscanyManagementService extends ManagementService<Component> {
-
- /**
- * Registers a component for management.
- *
- * @param name Name of the component.
- * @param component Component to be registered.
- */
- void registerComponent(String name, Component component);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java
deleted file mode 100644
index 1210d05f5a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.spi.services.store;
-
-/**
- * thrown when a record already exists during an insert operation
- *
- * @version $Rev$ $Date$
- */
-public class DuplicateRecordException extends StoreWriteException {
-
- public DuplicateRecordException(String owner, String identifier) {
- super(null, owner, identifier);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java
deleted file mode 100644
index 186d741c04..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.services.store;
-
-import java.util.UUID;
-
-/**
- * Implementations receive callback events during a store recovery operation
- *
- * @version $Rev$ $Date$
- */
-public interface RecoveryListener {
-
- /**
- * Signals the start of a recovery
- */
- void onBegin();
-
- /**
- * Received when a record is recovered
- *
- * @param id
- */
- void onRecord(UUID id);
-
- /**
- * Signals the end of recovery
- */
- void onEnd();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java
deleted file mode 100644
index 7a09f90811..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.spi.services.store;
-
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.event.EventPublisher;
-
-/**
- * Implementations provide a persistent store for runtime data such as conversational state. A persistent store could be
- * implemented in a durable fashion using JDBC or a journaling system, or using a non-durable mechanism such as an
- * in-memory map.
- *
- * @version $Rev$ $Date$
- */
-public interface Store extends EventPublisher {
-
- /* Used to indicate an the default expiration offset for records for the store */
- long DEFAULT_EXPIRATION_OFFSET = -1;
-
- /* Used to indicate an entry should not expire */
- long NEVER = -2;
-
- /**
- * Adds the given record to the store. Implementations may choose different strategies for writing data such as
- * write-through or write-behind.
- *
- * @param owner the instance owner
- * @param id the unique id of the record
- * @param object the object representing the data to write
- * @param expiration the time in milliseconds when the entry expires
- * @throws StoreWriteException if an error occurs during the write operation
- */
- void insertRecord(SCAObject owner, String id, Object object, long expiration) throws StoreWriteException;
-
- /**
- * Updates a given record in the store, overwriting previous information.
- *
- * @param owner the instance owner
- * @param id the unique id of the record
- * @param object the object representing the data to write
- * @param expiration the time in milliseconds when the entry expires
- * @throws StoreWriteException
- */
- void updateRecord(SCAObject owner, String id, Object object, long expiration) throws StoreWriteException;
-
- /**
- * Returns the deserialized object in the store corresponding to the given id
- *
- * @param owner the instance owner
- * @param id the unique id of the record
- * @return the deserialized object or null if one is not found
- * @throws StoreReadException
- */
- Object readRecord(SCAObject owner, String id) throws StoreReadException;
-
- /**
- * Removes a record from the store
- *
- * @param owner the instance owner
- * @param id the unique id of the record
- * @throws StoreWriteException
- */
- void removeRecord(SCAObject owner, String id) throws StoreWriteException;
-
- /**
- * Removes all records from the store
- *
- * @throws StoreWriteException
- */
- void removeRecords() throws StoreWriteException;
-
- /**
- * Initiates a recovery operation, for example during restart after a crash
- *
- * @param listener the listener to receive recovery callback events
- * @throws StoreReadException
- */
- void recover(RecoveryListener listener) throws StoreReadException;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java
deleted file mode 100644
index 59f1797490..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.spi.services.store;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * Represents a generic exception thrown by a <code>Store</code>
- *
- * @version $Rev$ $Date$
- */
-public class StoreException extends TuscanyException {
- private final String owner;
-
- public StoreException(String message, String owner, String identifier) {
- super(message, identifier);
- this.owner = owner;
- }
-
- public StoreException(String message, String owner, String identifier, Throwable cause) {
- super(message, identifier, cause);
- this.owner = owner;
- }
-
- public StoreException(String message, String owner, Throwable cause) {
- super(message, cause);
- this.owner = owner;
- }
-
- public StoreException(Throwable cause) {
- super(cause);
- owner = null;
- }
-
- public String getOwner() {
- return owner;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java
deleted file mode 100644
index fbb38dd362..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.spi.services.store;
-
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.event.Event;
-
-/**
- * Fired when a store implementation expires a resource
- *
- * @version $Rev$ $Date$
- */
-public class StoreExpirationEvent implements Event {
- private Object source;
- private SCAObject owner;
- private Object instance;
-
- /**
- * Constructor.
- *
- * @param source the source of the event
- * @param owner the owner of the expiring object
- * @param instance the expiring object
- */
- public StoreExpirationEvent(Object source, SCAObject owner, Object instance) {
- assert source != null;
- assert owner != null;
- assert instance != null;
- this.source = source;
- this.owner = owner;
- this.instance = instance;
- }
-
- public Object getSource() {
- return source;
- }
-
- /**
- * Returns the owner of the expiring object.
- *
- * @return the owner of the expiring object.
- */
- public SCAObject getOwner() {
- return owner;
- }
-
- /**
- * Returns the expiring object.
- *
- * @return the expiring object.
- */
- public Object getInstance() {
- return instance;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java
deleted file mode 100644
index f3bbbf0b73..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.spi.services.store;
-
-import org.apache.tuscany.api.annotation.LogLevel;
-
-/**
- * A generic monintor interface for services to log events
- *
- * @version $Rev$ $Date$
- */
-public interface StoreMonitor {
-
- /**
- * Signals the service has started
- *
- * @param msg
- */
- @LogLevel("DEBUG")
- void start(String msg);
-
- /**
- * Signals the service has been shutdown
- *
- * @param msg
- */
- @LogLevel("DEBUG")
- void stop(String msg);
-
- /**
- * Fired when recovery is started
- */
- @LogLevel("DEBUG")
- void beginRecover();
-
- /**
- * Fired when recovery is completed
- */
- @LogLevel("DEBUG")
- void endRecover();
-
- /**
- * Fired when a record is processed during recovery
- *
- * @param recordId the id of the record being recovered
- */
- @LogLevel("DEBUG")
- void recover(Object recordId);
-
- /**
- * Signals an error event
- *
- * @param e the error
- */
- @LogLevel("ERROR")
- void error(Throwable e);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java
deleted file mode 100644
index 0f46ac6878..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.spi.services.store;
-
-/**
- * Thrown when an error occurs reading from persistent storage
- *
- * @version $Rev$ $Date$
- */
-public class StoreReadException extends StoreException {
-
- public StoreReadException(Throwable cause) {
- super(cause);
- }
-
- public StoreReadException(String message, String owner, String identifier) {
- super(message, owner, identifier);
- }
-
- public StoreReadException(String owner, String identifier, Throwable throwable) {
- super(owner, identifier, throwable);
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java
deleted file mode 100644
index 9eef91db9a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.spi.services.store;
-
-/**
- * Thrown when an error occurs writing to persistent storage
- *
- * @version $Rev$ $Date$
- */
-public class StoreWriteException extends StoreException {
-
- public StoreWriteException(String message, String owner, String identifier) {
- super(message, owner, identifier);
- }
-
- public StoreWriteException(String message, String owner, String identifier, Throwable cause) {
- super(message, owner, identifier, cause);
- }
-
- public StoreWriteException(String message, String owner, Throwable cause) {
- super(message, owner, cause);
- }
-
- public StoreWriteException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java
deleted file mode 100644
index 9675cdce53..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.spi.services.work;
-
-/**
- * A callback inyterface that can be optionally used for registering
- * interest in status of asynchronously scheduled unit of work.
- *
- */
-public interface NotificationListener<T extends Runnable> {
-
- /**
- * Callback method when the unit of work is accepted.
- *
- * @param work Work that was accepted.
- */
- void workAccepted(T work);
-
- /**
- * Callback method when the unit of work is successfully completed.
- *
- * @param work Work that was succesfully completed.
- */
- void workCompleted(T work);
-
- /**
- * Callback when the unit of work is started.
- *
- * @param work Unit of work that was started.
- */
- void workStarted(T work);
-
- /**
- * Callback when the unit of work is rejected.
- *
- * @param work Unit of work that was rejected.
- */
- void workRejected(T work);
-
- /**
- * Callnack when the unit of work fails to complete.
- *
- * @param work Unit of work that failed to complete.
- * @param error Error that caused the unit of work to fail.
- */
- void workFailed(T work, Throwable error);
-
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java
deleted file mode 100644
index 0824990c93..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.spi.services.work;
-
-/**
- * Defines the contract for scheduling asychronous units of work.
- *
- * <p>
- * Units of work can be scheduled with an optional <code>NotificationListener</code>.
- * If a notification listener is specified, the caller will be notified regarding the
- * status of the work. The unit of work can either be completed, rejected or completed
- * with an error. If the work completed with an error, the caller is notfied with the
- * error details.
- * </p>
- *
- */
-public interface WorkScheduler {
-
- /**
- * Schedules a unit of work for future execution. The notification listener
- * is used to register interest in callbacks regarding the status of the work.
- *
- * @param work The unit of work that needs to be asynchronously executed.
- * @param listener Notification listener for callbacks.
- */
- <T extends Runnable>void scheduleWork(T work, NotificationListener<T> listener);
-
- /**
- * Schedules a unit of work for future execution. The notification listener
- * is used to register interest in callbacks regarding the status of the work.
- *
- * @param work The unit of work that needs to be asynchronously executed.
- */
- <T extends Runnable>void scheduleWork(T work);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java
deleted file mode 100644
index 72dc8ee5d2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.spi.services.work;
-
-/**
- * Exception thrown by the work scheduler in case of unexpected exceptions.
- *
- */
-public class WorkSchedulerException extends RuntimeException {
-
- /**
- * Wraps the root cause.
- *
- * @param cause Root cause for the exception.
- */
- public WorkSchedulerException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java
deleted file mode 100644
index cf495d7f18..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.spi.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectStreamClass;
-
-import org.apache.tuscany.spi.component.SCAExternalizable;
-import org.apache.tuscany.spi.component.WorkContext;
-
-/**
- * Deserializes an object based on the thread context classloader and provides special handling for {@link
- * SCAExternalizable}
- *
- * @version $Rev$ $Date$
- */
-public class SCAObjectInputStream extends ObjectInputStream {
- private final ClassLoader classLoader;
- private WorkContext context;
-
- public SCAObjectInputStream(InputStream in, WorkContext context) throws IOException, SecurityException {
- super(in);
- this.context = context;
- this.classLoader = Thread.currentThread().getContextClassLoader();
- enableResolveObject(true);
- }
-
- protected Class resolveClass(ObjectStreamClass streamClass) throws IOException, ClassNotFoundException {
- return classLoader.loadClass(streamClass.getName());
- }
-
- protected Object resolveObject(Object obj) throws IOException {
- if (obj instanceof SCAExternalizable) {
- SCAExternalizable ext = (SCAExternalizable) obj;
- ext.setWorkContext(context);
- ext.reactivate();
- }
- return obj;
- }
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java
deleted file mode 100644
index 77bc189bb2..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * Base class for dispatching an invocation through an {@link InboundInvocationChain}
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractInboundInvocationHandler {
-
- /**
- * Dispatches a client request made on a proxy
- */
- public Object invoke(InboundInvocationChain chain, TargetInvoker invoker, Object[] args) throws Throwable {
- Interceptor headInterceptor = chain.getHeadInterceptor();
- if (headInterceptor == null) {
- // short-circuit the dispatch and invoke the target directly
- if (chain.getTargetInvoker() == null) {
- throw new AssertionError("No target invoker [" + chain.getOperation().getName() + "]");
- }
- return chain.getTargetInvoker().invokeTarget(args, TargetInvoker.NONE);
- } else {
- Message msg = new MessageImpl();
- msg.setTargetInvoker(invoker);
- msg.setBody(args);
- Message resp;
- // dispatch the wire down the chain and get the response
- resp = headInterceptor.invoke(msg);
- Object body = resp.getBody();
- if (resp.isFault()) {
- throw (Throwable) body;
- }
- return body;
- }
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
deleted file mode 100644
index 2ac99e2a60..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.LinkedList;
-
-import org.apache.tuscany.spi.model.InteractionScope;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * Base class for performing invocations on an outbound chain. Subclasses are responsible for retrieving and supplying
- * the appropriate chain, target invoker and invocation arguments.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractOutboundInvocationHandler {
- private boolean conversationStarted;
-
- protected Object invoke(OutboundInvocationChain chain,
- TargetInvoker invoker,
- Object[] args,
- Object correlationId,
- LinkedList<Object> callbackRoutingChain)
- throws Throwable {
- Interceptor headInterceptor = chain.getHeadInterceptor();
- if (headInterceptor == null) {
- try {
- // short-circuit the dispatch and invoke the target directly
- TargetInvoker targetInvoker = chain.getTargetInvoker();
- if (targetInvoker == null) {
- String name = chain.getOperation().getName();
- throw new AssertionError("No target invoker [" + name + "]");
- }
- return targetInvoker.invokeTarget(args, TargetInvoker.NONE);
- } catch (InvocationTargetException e) {
- // the cause was thrown by the target so throw it
- throw e.getCause();
- }
- } else {
- Message msg = new MessageImpl();
- msg.setTargetInvoker(invoker);
- Object fromAddress = getFromAddress();
- if (fromAddress != null && callbackRoutingChain != null) {
- throw new AssertionError("Can't use both a from address and callback routing chain");
- }
- if (fromAddress != null) {
- msg.pushFromAddress(fromAddress);
- }
- if (correlationId != null) {
- msg.setCorrelationId(correlationId);
- }
- if (callbackRoutingChain != null) {
- msg.setCallbackRoutingChain(callbackRoutingChain);
- }
- Operation operation = chain.getOperation();
- ServiceContract contract = operation.getServiceContract();
- if (InteractionScope.CONVERSATIONAL.equals(contract.getInteractionScope())) {
- int sequence = chain.getOperation().getConversationSequence();
- if (sequence == Operation.CONVERSATION_END) {
- msg.setConversationSequence(TargetInvoker.END);
- conversationStarted = false;
- } else if (sequence == Operation.CONVERSATION_CONTINUE) {
- if (conversationStarted) {
- msg.setConversationSequence(TargetInvoker.CONTINUE);
- } else {
- conversationStarted = true;
- msg.setConversationSequence(TargetInvoker.START);
- }
- }
- }
- msg.setBody(args);
- // dispatch the wire down the chain and get the response
- Message resp = headInterceptor.invoke(msg);
- Object body = resp.getBody();
- if (resp.isFault()) {
- throw (Throwable) body;
- }
- return body;
- }
- }
-
- protected Object getFromAddress() {
- // Default to null, only needed in outbound (forward) direction
- return null;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java
deleted file mode 100644
index d557fb84a3..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * A set of interceptors associated with the inbound side of a wire for an operation.
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface InboundInvocationChain extends InvocationChain {
-
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java
deleted file mode 100644
index ef7e3e2980..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.model.Operation;
-
-/**
- * Implementations are responsible for managing the inbound side of a wire, including the invocation chains associated
- * with each service operation.
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface InboundWire extends Wire {
-
- /**
- * Returns the name of the target service of the wire
- */
- String getServiceName();
-
- /**
- * Sets the name of the target service of the wire
- */
- void setServiceName(String name);
-
- /**
- * Returns the invocation chain for each operation on a service specified by a reference or a target
- * service.
- */
- Map<Operation<?>, InboundInvocationChain> getInvocationChains();
-
- /**
- * Adds the collection of invocation chains keyed by operation
- */
- void addInvocationChains(Map<Operation<?>, InboundInvocationChain> chains);
-
- /**
- * Adds the invocation chain associated with the given operation
- */
- void addInvocationChain(Operation<?> operation, InboundInvocationChain chain);
-
- /**
- * Returns the callback invocation configuration for each operation on a service specified by a reference or a
- * target service.
- */
- Map<Operation<?>, OutboundInvocationChain> getSourceCallbackInvocationChains(Object targetAddr);
-
- /**
- * Adds the collection of callback invocation chains keyed by operation for a given target addr
- */
- void addSourceCallbackInvocationChains(Object targetAddr, Map<Operation<?>, OutboundInvocationChain> chains);
-
- /**
- * Adds the callback invocation chain associated with the given operation for a given target addr
- */
- void addSourceCallbackInvocationChain(Object targetAddr, Operation<?> operation, OutboundInvocationChain chain);
-
- /**
- * Returns the name of the callback associated with the service of the wire
- */
- String getCallbackReferenceName();
-
- /**
- * Sets the name of the callback associated with the service of the wire
- */
- void setCallbackReferenceName(String callbackReferenceName);
-
- /**
- * Set when a wire can be optimized; that is when no handlers or interceptors exist on either end
- */
- void setTargetWire(OutboundWire wire);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java
deleted file mode 100644
index 114df5a55c..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.spi.wire;
-
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * Denotes imcompatible service contracts for a wire
- *
- * @version $Rev$ $Date$
- */
-public class IncompatibleServiceContractException extends TuscanyException {
- private static final long serialVersionUID = 5127478601823295587L;
- private final ServiceContract<?> source;
- private final ServiceContract<?> target;
- private final Operation<?> sourceOperation;
- private final Operation<?> targetOperation;
-
- public IncompatibleServiceContractException(String message, ServiceContract<?> source, ServiceContract<?> target) {
- super(message, (String) null);
- this.source = source;
- this.target = target;
- this.sourceOperation = null;
- this.targetOperation = null;
- }
-
-
- public IncompatibleServiceContractException(String message,
- ServiceContract<?> source,
- ServiceContract<?> target,
- Operation<?> sourceOperation, Operation<?> targetOperation) {
- super(message, (String) null);
- this.source = source;
- this.target = target;
- this.sourceOperation = sourceOperation;
- this.targetOperation = targetOperation;
- }
-
- public ServiceContract<?> getTarget() {
- return target;
- }
-
- public ServiceContract<?> getSource() {
- return source;
- }
-
- public Operation<?> getSourceOperation() {
- return sourceOperation;
- }
-
- public Operation<?> getTargetOperation() {
- return targetOperation;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java
deleted file mode 100644
index ad38ed1cf1..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * Synchronous, around-style mediation associated with a client- or target- side wire.
- *
- * @version $Rev$ $Date$
- */
-public interface Interceptor {
-
- /**
- * Process a synchronous wire
- *
- * @param msg the request Message for the wire
- * @return the response Message from the wire
- */
- Message invoke(Message msg);
-
- /**
- * Sets the next interceptor
- */
- void setNext(Interceptor next);
-
- /**
- * Returns the next interceptor or null
- */
- Interceptor getNext();
-
- /**
- * Returns true if the interceptor can be optimized away from a wire
- */
- boolean isOptimizable();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java
deleted file mode 100644
index 82e1a52adf..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.spi.wire;
-
-import org.apache.tuscany.spi.model.Operation;
-
-/**
- * An inbound or outbound invocation pipeline for a service operation. Wires consist of 1..n invocation chains
- * associated with the operations of the service contract the wire represents. Invocation chains are associated with the
- * outbound or inbound side of a wire are bridged or "connected" when an assembly is processed. Outbound chains are only
- * connected to inbound chains and vice versa.
- * <p/>
- * Invocation chains contain at least one {@link Interceptor} that process invocations in an around-style manner. In
- * some scenarios, a service proxy may only contain inbound invocation chains, for example, when a service is resolved
- * through a locate operation by a non-component client. In this case, there will be no outbound invocation chains and
- * the target invoker will be held by the target-side and passed down the pipeline.
- * <p/>
- * A {@link Message} is used to pass data associated with an invocation through the chain. <code>Message</code>s contain
- * a {@link TargetInvoker} responsible for dispatching to a target instance and may be cached on the source-side.
- * Caching allows various optimizations such as avoiding target instance resolution when the client-side lifecycle scope
- * is a shorter duration than the target.
- *
- * @version $Rev$ $Date$
- */
-public interface InvocationChain {
- /**
- * Returns the target operation for this invocation chain
- */
- Operation getOperation();
-
- /**
- * Sets the target invoker to pass down the chain
- */
- void setTargetInvoker(TargetInvoker invoker);
-
- /**
- * Returns the target invoker that is passed down the chain
- */
- TargetInvoker getTargetInvoker();
-
- /**
- * Adds an interceptor to the chain
- */
- void addInterceptor(Interceptor interceptor);
-
- /**
- * Adds an interceptor at the given position in the interceptor stack
- *
- * @param index the position in the interceptor stack to add the interceptor
- * @param interceptor the interceptor to add
- */
- void addInterceptor(int index, Interceptor interceptor);
-
- /**
- * Returns the first interceptor in the chain
- */
- Interceptor getHeadInterceptor();
-
- /**
- * Returns the last interceptor in the chain
- */
- Interceptor getTailInterceptor();
-
- /**
- * Sets the head interceptor of the bridged target-side chain
- */
- void setTargetInterceptor(Interceptor interceptor);
-
- /**
- * Returns the head interceptor of the birdged target-side chain
- */
- Interceptor getTargetInterceptor();
-
- /**
- * Signals to the chain that its configuration is complete. Implementations may use this callback to prepare their
- * invocation chains.
- */
- void prepare();
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java
deleted file mode 100644
index c2ba19c48a..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.spi.wire;
-
-import org.osoa.sca.ServiceRuntimeException;
-
-/**
- * Denotes a runtime exception thrown during an invocation over a wire
- *
- * @version $Rev$ $Date$
- */
-public class InvocationRuntimeException extends ServiceRuntimeException {
-
- public InvocationRuntimeException() {
- super();
- }
-
- public InvocationRuntimeException(String message) {
- super(message);
- }
-
- public InvocationRuntimeException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvocationRuntimeException(Throwable cause) {
- super(cause);
- }
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java
deleted file mode 100644
index e6fc43d889..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.util.LinkedList;
-
-/**
- * Represents a request, response, or exception flowing through a wire
- *
- * @version $Rev $Date
- */
-public interface Message {
-
- /**
- * Returns the body of the message, which will be the payload or parameters associated with the wire
- */
- Object getBody();
-
- /**
- * Sets the body of the message.
- */
- void setBody(Object body);
-
- /**
- * Sets the target invoker to dispatch to when the message passes through the request side of the invocation chain
- */
- void setTargetInvoker(TargetInvoker invoker);
-
- /**
- * Sets the target invoker to dispatch to when the message passes through the request side of the invocation chain
- */
- TargetInvoker getTargetInvoker();
-
- /**
- * Returns the latest 'address' of the SCAObject where this message originated
- */
- Object popFromAddress();
-
- /**
- * Adds the latest 'address' of the SCAObject where this message originated
- */
- void pushFromAddress(Object fromAddress);
-
- /**
- * Returns the chain of SCAObject addresses
- */
- LinkedList<Object> getCallbackRoutingChain();
-
- /**
- * Sets the chain of SCAObject addresses
- */
- void setCallbackRoutingChain(LinkedList<Object> fromAddresses);
-
- /**
- * Returns the id of the message
- */
- Object getMessageId();
-
- /**
- * Sets the id of the message
- */
- void setMessageId(Object messageId);
-
- /**
- * Returns the correlation id of the message
- */
- Object getCorrelationId();
-
- /**
- * Sets the correlation id of the message
- */
- void setCorrelationId(Object correlationId);
-
- /**
- * Test if the message represents a fault/exception
- *
- * @return true if the message body is a fault object, false is the body is a normal payload
- */
- boolean isFault();
-
- /**
- * Set the message body with a fault object. After this method is called, isFault() returns true.
- *
- * @param fault The fault object represents an exception
- */
- void setBodyWithFault(Object fault);
-
- /**
- * Returns the conversational sequence the message is associated with, {@link TargetInvoker.NONE}, {@link
- * TargetInvoker.START}, {@link TargetInvoker.CONTINUE}, or {@link TargetInvoker.END}
- *
- * @return the conversational sequence the message is associated with
- */
- short getConversationSequence();
-
- /**
- * Sets the conversational sequence the message is associated with,
- *
- * @param sequence {@link TargetInvoker.NONE}, {@link TargetInvoker.START}, {@link TargetInvoker.CONTINUE}, or
- * {@link TargetInvoker.END}
- */
- void setConversationSequence(short sequence);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java
deleted file mode 100644
index f179eb79b1..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * A unique identifier for a message flowing on a wire, potentially end-to-end (ie, through more than one SCAObject to
- * SCAObject hop).
- */
-public class MessageId {
-
- private long timestamp;
-
- public MessageId() {
- this.timestamp = System.currentTimeMillis();
- }
-
- public long getTimestamp() {
- return timestamp;
- }
-
- public String toString() {
- return "MsgId[" + timestamp + "]";
- }
-
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- final MessageId messageId = (MessageId) o;
- return timestamp == messageId.timestamp;
- }
-
- public int hashCode() {
- return (int) (timestamp ^ (timestamp >>> 32));
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java
deleted file mode 100644
index 728be85771..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.util.LinkedList;
-
-/**
- * The default implementation of a message flowed through a wire during an invocation
- *
- * @version $Rev $Date
- */
-public class MessageImpl implements Message {
- private Object body;
- private TargetInvoker invoker;
- private LinkedList<Object> callbackRoutingChain;
- private Object messageId;
- private Object correlationId;
- private boolean isFault;
- private short conversationSequence;
-
- public MessageImpl() {
- }
-
- public Object getBody() {
- return body;
- }
-
- public void setBody(Object body) {
- this.isFault = false;
- this.body = body;
- }
-
- public void setTargetInvoker(TargetInvoker invoker) {
- this.invoker = invoker;
- }
-
- public TargetInvoker getTargetInvoker() {
- return invoker;
- }
-
- public Object popFromAddress() {
- return callbackRoutingChain.removeFirst();
- }
-
- public void pushFromAddress(Object fromAddress) {
- if (callbackRoutingChain == null) {
- callbackRoutingChain = new LinkedList<Object>();
- }
- callbackRoutingChain.addFirst(fromAddress);
- }
-
- public LinkedList<Object> getCallbackRoutingChain() {
- return callbackRoutingChain;
- }
-
- public void setCallbackRoutingChain(LinkedList<Object> callbackRoutingChain) {
- this.callbackRoutingChain = callbackRoutingChain;
- }
-
- public Object getMessageId() {
- return messageId;
- }
-
- public void setMessageId(Object messageId) {
- this.messageId = messageId;
- }
-
- public Object getCorrelationId() {
- return correlationId;
- }
-
- public void setCorrelationId(Object correlationId) {
- this.correlationId = correlationId;
- }
-
- public boolean isFault() {
- return isFault;
- }
-
- public void setBodyWithFault(Object fault) {
- this.isFault = true;
- this.body = fault;
- }
-
- public TargetInvoker getInvoker() {
- return invoker;
- }
-
- public void setInvoker(TargetInvoker invoker) {
- this.invoker = invoker;
- }
-
- public short getConversationSequence() {
- return conversationSequence;
- }
-
- public void setConversationSequence(short conversationSequence) {
- this.conversationSequence = conversationSequence;
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java
deleted file mode 100644
index 7c20efeca8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.apache.tuscany.spi.wire;
-
-/**
- * A holder used to associate an wire chain with a local copy of a target invoker that was previously cloned from the
- * chain master
- *
- * @version $Rev$ $Date$
- */
-public class OutboundChainHolder implements Cloneable {
- OutboundInvocationChain chain;
- TargetInvoker cachedInvoker;
-
- public OutboundChainHolder(OutboundInvocationChain config) {
- this.chain = config;
- }
-
- public OutboundInvocationChain getChain() {
- return chain;
- }
-
- public TargetInvoker getCachedInvoker() {
- return cachedInvoker;
- }
-
- public void setCachedInvoker(TargetInvoker invoker) {
- this.cachedInvoker = invoker;
- }
-
- @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"})
- @Override
- public OutboundChainHolder clone() {
- try {
- return (OutboundChainHolder) super.clone();
- } catch (CloneNotSupportedException e) {
- throw new AssertionError();
- }
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java
deleted file mode 100644
index b15678a4a8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * Responsible for flowing a request to a target service and invoking an operation.
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface OutboundInvocationChain extends InvocationChain {
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java
deleted file mode 100644
index cf37fe84d7..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.util.Map;
-
-import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.model.Operation;
-
-/**
- * Implementations are responsible for managing the reference side of a wire, including the invocation chains associated
- * with each service operation. An <code>OutboundWire</code> is connected to an {@link InboundWire} through their
- * invocation chains.
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface OutboundWire extends Wire {
-
- /**
- * Returns the name of the source reference
- */
- String getReferenceName();
-
- /**
- * Sets the name of the source reference
- */
- void setReferenceName(String name);
-
- /**
- * Returns the name of the target
- */
- QualifiedName getTargetName();
-
- /**
- * Sets the name of the target
- */
- void setTargetName(QualifiedName name);
-
- boolean isAutowire();
-
- void setAutowire(boolean val);
-
- /**
- * Sets the callback interface type generated proxies implement
- */
- void setCallbackInterface(Class<?> interfaze);
-
- /**
- * Returns the callback interface type implemented by generated proxies
- */
- Class<?> getCallbackInterface();
-
- /**
- * Returns the invocation configuration for each operation on a service specified by a reference or a target
- * service.
- */
- Map<Operation<?>, OutboundInvocationChain> getInvocationChains();
-
- /**
- * Adds the collection of invocation chains keyed by operation
- */
- void addInvocationChains(Map<Operation<?>, OutboundInvocationChain> chains);
-
- /**
- * Adds the invocation chain associated with the given operation
- */
- void addInvocationChain(Operation<?> operation, OutboundInvocationChain chain);
-
- /**
- * Returns the callback invocation configuration for each operation on a service specified by a reference or a
- * target service.
- */
- Map<Operation<?>, InboundInvocationChain> getTargetCallbackInvocationChains();
-
- /**
- * Adds the collection of callback invocation chains keyed by operation
- */
- void addTargetCallbackInvocationChains(Map<Operation<?>, InboundInvocationChain> chains);
-
- /**
- * Adds the callback invocation chain associated with the given operation
- */
- void addTargetCallbackInvocationChain(Operation<?> operation, InboundInvocationChain chain);
-
- /**
- * Set when a wire can be optimized; that is when no handlers or interceptors exist on either end
- */
- void setTargetWire(InboundWire wire);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java
deleted file mode 100644
index 4805c75252..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.spi.wire;
-
-import org.apache.tuscany.spi.CoreRuntimeException;
-
-/**
- * Denotes an error creating a proxy
- *
- * @version $$Rev$$ $$Date$$
- */
-public class ProxyCreationException extends CoreRuntimeException {
- public ProxyCreationException() {
- }
-
- public ProxyCreationException(String message) {
- super(message);
- }
-
- public ProxyCreationException(String message, String identifier) {
- super(message, identifier);
- }
-
- public ProxyCreationException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public ProxyCreationException(String message, String identifier, Throwable cause) {
- super(message, identifier, cause);
- }
-
- public ProxyCreationException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java
deleted file mode 100644
index b2d4648a2e..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * Implementations are responsible for resolving a target and performing the actual invocation on it, for example, a
- * component implementation instance or a service client.
- *
- * @version $Rev$ $Date$
- */
-public interface TargetInvoker extends Cloneable {
- /* indicates that no conversational sequence is associated with the message */
- short NONE = 0;
- /* indicates that the message initiates a conversation */
- short START = 1;
- /* indicates that the message continues a conversation */
- short CONTINUE = 2;
- /* indicates that the message ends a conversation */
- short END = 3;
-
- /**
- * Invokes an operation on a target with the given payload. Used in optmized cases where messages do not need to be
- * flowed such as in non-proxied wires.
- *
- * @param payload the invocation payload, typically an array of parameters
- * @param sequence if the invocation is part of a conversation, the sequence. Valid values are {@link NONE} for
- * non-conversational, {@link START} to begin a conversation, {@link CONTINUE} to continue a
- * conversation, or {@link END} to end a conversation
- * @throws InvocationTargetException
- */
- Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException;
-
- /**
- * Invokes an operation on a target with the given message
- *
- * @throws InvocationRuntimeException
- */
- Message invoke(Message msg) throws InvocationRuntimeException;
-
- /**
- * Determines whether the proxy can be cached on the client/source side
- */
- boolean isCacheable();
-
- /**
- * Sets whether the target service instance may be cached by the invoker. This is a possible optimization when a
- * wire is configured for a "down-scope" reference, i.e. a reference from a source of a shorter lifetime to a source
- * of greater lifetime.
- */
- void setCacheable(boolean cacheable);
-
- /**
- * Determines if the target invoker can be discarded during wire optimization
- */
- boolean isOptimizable();
-
- /**
- * Implementations must support deep cloning
- */
- Object clone() throws CloneNotSupportedException;
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
deleted file mode 100644
index bece953a6e..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.spi.wire;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.component.TargetResolutionException;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-/**
- * The base wire type used to connect references and serviceBindings
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface Wire {
- QName LOCAL_BINDING = new QName("http://tuscany.apache.org/xmlns/sca/binding/1.0", "binding.local");
-
- QName getBindingType();
-
- /**
- * Returns the non-proxied target instance for this wire
- */
- Object getTargetService() throws TargetResolutionException;
-
- /**
- * Returns the service contract associated with the wire
- *
- * @return the service contract associated with the wire
- */
- ServiceContract getServiceContract();
-
- /**
- * Sets the contract associated with the wire
- *
- * @param contract the contract associated with the wire
- */
- void setServiceContract(ServiceContract contract);
-
- /**
- * Adds an interface type generated proxies implement
- */
- void addInterface(Class<?> claz);
-
- /**
- * Returns true if its invocation chains may be bypassed
- */
- boolean isOptimizable();
-
- /**
- * Determines if the wire may be optimized
- *
- * @param optimizable true if the wire is optimizable
- */
- void setOptimizable(boolean optimizable);
-
- /**
- * Returns the SCAObject that contains this wire
- */
- SCAObject getContainer();
-
- /**
- * Sets the name of the SCAObject that contains this wire
- */
- void setContainer(SCAObject container);
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java
deleted file mode 100644
index 325f26ba91..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.lang.reflect.Method;
-
-/**
- * Implementations are responsible for dispatching an operation down an invocation chain
- *
- * @version $$Rev$$ $$Date$$
- */
-public interface WireInvocationHandler {
-
- Object invoke(Method method, Object[] args) throws Throwable;
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java
deleted file mode 100644
index c380d208d8..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * Implementations are called after inbound and outbound wires are decorated with policy and before they are connected.
- *
- * @version $Rev$ $Date$
- */
-public interface WirePostProcessor {
-
- /**
- * @param source
- * @param target
- */
- void process(OutboundWire source, InboundWire target);
-
- /**
- * @param source
- * @param target
- */
- void process(InboundWire source, OutboundWire target);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java
deleted file mode 100644
index 605a433590..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.spi.wire;
-
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-
-/**
- * @version $Rev$ $Date$
- */
-@Scope("COMPOSITE")
-@EagerInit
-public abstract class WirePostProcessorExtension implements WirePostProcessor {
- protected WirePostProcessorRegistry registry;
-
- @Autowire
- public void setRegistry(WirePostProcessorRegistry registry) {
- this.registry = registry;
- }
-
- @Init
- public void init() {
- registry.register(this);
- }
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java
deleted file mode 100644
index f012d119c3..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.spi.wire;
-
-/**
- * Acts as a delegating <code>WirePostProcessor</code>, delegating post-processing of wires after policies have been
- * applied and source an targets have been matched but before they are connected.
- *
- * @version $Rev$ $Date$
- */
-public interface WirePostProcessorRegistry extends WirePostProcessor {
-
-
- /**
- * Registers a post-processor in the runtime
- *
- * @param processor the processor to register
- */
- void register(WirePostProcessor processor);
-
- /**
- * De-registers a post-processor in the runtime
- *
- * @param processor the processor to de-register
- */
- void unregister(WirePostProcessor processor);
-
-}
diff --git a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java b/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
deleted file mode 100644
index f913b9ed80..0000000000
--- a/branches/pre-spec-changes/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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.spi.wire;
-
-import java.lang.reflect.Method;
-import java.util.Map;
-
-import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.model.ServiceDefinition;
-
-/**
- * Creates proxies that implement Java interfaces and invocation handlers for fronting wires
- *
- * @version $$Rev$$ $$Date$$
- */
-
-public interface WireService {
-
- /**
- * Creates a Java proxy for the given wire
- *
- * @param interfaze the interface the proxy implements
- * @param wire the wire to proxy @return the proxy
- * @throws ProxyCreationException
- */
- <T> T createProxy(Class<T> interfaze, Wire wire) throws ProxyCreationException;
-
- /**
- * Creates a Java proxy for the given wire
- *
- * @param interfaze the interface the proxy implements
- * @param wire the wire to proxy @return the proxy
- * @param mapping the method to chain holder mapping to use in creating the proxy. Clients may cache and resuse
- * this mapping for performance.
- * @throws ProxyCreationException
- */
- <T> T createProxy(Class<T> interfaze, Wire wire, Map<Method, OutboundChainHolder> mapping)
- throws ProxyCreationException;
-
- /**
- * Creates a Java proxy for the service contract callback
- *
- * @param interfaze the interface the proxy should implement
- * @return the proxy
- * @throws ProxyCreationException
- */
- Object createCallbackProxy(Class<?> interfaze, InboundWire wire) throws ProxyCreationException;
-
- /**
- * Creates an {@link WireInvocationHandler} for the given wire
- *
- * @param interfaze the client side interface
- * @param wire the wire to create the invocation handler for
- * @return the invocation handler
- */
- WireInvocationHandler createHandler(Class<?> interfaze, Wire wire);
-
- /**
- * Creates an outbound invocation chain for a given operation
- *
- * @param operation the operation to create the chain for
- * @return the outbound invocation chain for a given operation
- */
- OutboundInvocationChain createOutboundChain(Operation<?> operation);
-
- /**
- * Creates an inbound invocation chain for a given operation
- *
- * @param operation the operation to create the chain for
- * @return the inbound invocation chain for a given operation
- */
- InboundInvocationChain createInboundChain(Operation<?> operation);
-
- /**
- * Creates a wire for flowing inbound invocations to a service. The returned inbound chain will always contain at
- * least one interceptor in order for outbound wires to connect to it.
- *
- * @param service the model representation of the service
- * @return the wire for flowing inbound invocations to a service
- */
- InboundWire createWire(ServiceDefinition service);
-
- /**
- * Creates and injects wires for an atomic component
- *
- * @param component the component
- * @param definition the model artifact representing the component
- */
- void createWires(AtomicComponent component, ComponentDefinition<?> definition);
-
- /**
- * Creates and injects wires for a reference binding
- *
- * @param referenceBinding the reference
- * @param contract the model artifact representing the service contract for the reference
- * @param targetName the qualified target name or null if the reference referes to a target outside the SCA
- * domain
- */
- void createWires(ReferenceBinding referenceBinding, ServiceContract<?> contract, QualifiedName targetName);
-
- /**
- * Creates and injects wires for a service binding
- *
- * @param serviceBinding the serviceBinding
- * @param contract the serviceBinding contract
- * @param targetName the target nane
- */
- void createWires(ServiceBinding serviceBinding, ServiceContract<?> contract, String targetName);
-
- /**
- * Check the compatiblity of the source and the target service contracts.<p> A wire may only connect a source to a
- * target if the target implements an interface that is compatible with the interface required by the source. The
- * source and the target are compatible if:
- * <p/>
- * <ol> <li>the source interface and the target interface MUST either both be remotable or they are both local
- * <li>the methods on the target interface MUST be the same as or be a superset of the methods in the interface
- * specified on the source <li>compatibility for the individual method is defined as compatibility of the signature,
- * that is method name, input types, and output types MUST BE the same. <li>the order of the input and output types
- * also MUST BE the same. <li>the set of Faults and Exceptions expected by the source MUST BE the same or be a
- * superset of those specified by the service. <li>other specified attributes of the two interfaces MUST match,
- * including Scope and Callback interface </ol>
- * <p/>
- * <p>Please note this test is not symetric: the success of checkCompatibility(A, B) does NOT imply that
- * checkCompatibility(B, A)
- *
- * @param source The source service contract
- * @param target The target service contract
- * @param ignoreCallback Indicate the callback should be checked
- * @throws IncompatibleServiceContractException
- * If the source service contract is not compatible with the target one
- */
- void checkCompatibility(ServiceContract<?> source, ServiceContract<?> target, boolean ignoreCallback)
- throws IncompatibleServiceContractException;
-
-}