From 9fb2fb275d3f69a287ac4f1c7d55190fb7a7bb3b Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 6 Oct 2008 08:32:38 +0000 Subject: Work in progress. Started to clean up cross-bundle dependencies on ContributionService implementation class, the various CompositeBuilder implementation classes and the ContributionDependencyBuilder implementation class. Added extension points for ContributionBuilders and CompositeBuilders to have them discovered and loaded by the Equinox ServiceDiscovery like other extension points. Moved injection of monitors and SCA definitions to the build methods instead of the constructors to remove references to these implementation constructors. Simplified NodeImpl a bit to remove references to other runtime implementation classes. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@702000 13f79535-47bb-0310-9956-ffa450edef68 --- .../CheckingsDeptAuthorizationPolicyProcessor.java | 4 +- .../builder/CompositeBuilderNonWiringImpl.java | 75 ++-- .../sca/itest/builder/CustomCompositeBuilder.java | 25 +- .../tuscany/sca/itest/TestPolicyProcessor.java | 4 +- .../test/java/domain/CustomCompositeBuilder.java | 27 +- .../xml/ComponentTypeDocumentProcessor.java | 4 +- .../assembly/xml/ComponentTypeModelResolver.java | 4 +- .../sca/assembly/xml/ComponentTypeProcessor.java | 4 +- .../assembly/xml/CompositeDocumentProcessor.java | 4 +- .../sca/assembly/xml/CompositeModelResolver.java | 4 +- .../sca/assembly/xml/CompositeProcessor.java | 8 +- .../assembly/xml/ConfiguredOperationProcessor.java | 4 +- .../xml/ConstrainingTypeDocumentProcessor.java | 4 +- .../xml/ConstrainingTypeModelResolver.java | 4 +- .../assembly/xml/ConstrainingTypeProcessor.java | 4 +- .../sca/assembly/xml/BuildPolicyTestCase.java | 8 +- .../tuscany/sca/assembly/xml/WireTestCase.java | 10 +- .../tuscany/sca/assembly/xml/WriteAllTestCase.java | 8 +- .../sca/assembly/xml/WriteNamespacesTestCase.java | 4 +- .../sca/assembly/builder/CompositeBuilder.java | 13 +- .../builder/CompositeBuilderExtensionPoint.java | 51 +++ .../DefaultCompositeBuilderExtensionPoint.java | 145 ++++++ .../assembly/builder/DefaultEndpointBuilder.java | 4 +- .../sca/assembly/builder/EndpointBuilder.java | 4 +- .../builder/impl/BaseConfigurationBuilderImpl.java | 287 +++++------- .../assembly/builder/impl/BaseWireBuilderImpl.java | 94 ++-- .../impl/ComponentConfigurationBuilderImpl.java | 20 +- .../impl/ComponentReferenceBindingBuilderImpl.java | 17 +- ...ComponentReferencePromotionWireBuilderImpl.java | 17 +- .../impl/ComponentReferenceWireBuilderImpl.java | 13 +- .../impl/ComponentServiceBindingBuilderImpl.java | 18 +- .../impl/ComponentServicePromotionBuilderImpl.java | 8 +- .../CompositeBindingConfigurationBuilderImpl.java | 73 +++ .../impl/CompositeBindingURIBuilderImpl.java | 21 +- .../builder/impl/CompositeBuilderImpl.java | 90 ++-- .../builder/impl/CompositeCloneBuilderImpl.java | 9 +- .../builder/impl/CompositeIncludeBuilderImpl.java | 33 +- .../builder/impl/CompositePolicyBuilderImpl.java | 13 +- .../impl/CompositePromotionBuilderImpl.java | 13 +- ...CompositeReferenceConfigurationBuilderImpl.java | 8 +- .../impl/CompositeReferenceWireBuilderImpl.java | 13 +- .../impl/CompositeServiceBindingBuilderImpl.java | 17 +- .../CompositeServiceConfigurationBuilderImpl.java | 8 +- .../impl/CompositeServicePromotionBuilderImpl.java | 8 +- .../assembly/builder/impl/EndpointBuilderImpl.java | 17 +- ...e.tuscany.sca.assembly.builder.CompositeBuilder | 35 ++ ...assembly.builder.CompositeBuilderExtensionPoint | 18 + .../builder/impl/CompositeBuilderTestCase.java | 4 +- .../atom/provider/AtomBindingProviderFactory.java | 4 +- .../binding/corba/impl/CorbaBindingProcessor.java | 4 +- .../sca/binding/ejb/impl/EJBBindingProcessor.java | 4 +- .../binding/gdata/impl/GdataBindingProcessor.java | 4 +- .../provider/GdataBindingProviderFactory.java | 4 +- .../provider/GDataBindingProviderFactory.java | 4 +- .../gdata/GDataImplementationProcessor.java | 4 +- .../http/provider/HTTPBindingProviderFactory.java | 4 +- .../sca/binding/jms/impl/JMSBindingProcessor.java | 4 +- .../rss/provider/RSSBindingProviderFactory.java | 4 +- .../impl/Axis2SCAReferenceBindingProvider.java | 4 +- .../axis2/impl/Axis2SCAServiceBindingProvider.java | 4 +- .../tuscany/sca/binding/sca/axis2/TestNode.java | 6 +- .../sca/binding/sca/xml/SCABindingProcessor.java | 4 +- .../tuscany/sca/binding/sca/xml/ReadTestCase.java | 8 +- .../sca/impl/RuntimeSCABindingProviderFactory.java | 2 +- .../sca/binding/sca/SCABindingTestCase.java | 8 +- .../Axis2BasicAuthenticationPolicyProcessor.java | 4 +- .../Axis2ConfigParamPolicyProcessor.java | 4 +- .../ws/axis2/Axis2BindingProviderFactory.java | 6 +- .../ws/axis2/Axis2ReferenceBindingProvider.java | 4 +- .../ws/axis2/Axis2ServiceBindingProvider.java | 4 +- .../binding/ws/wsdlgen/BindingWSDLGenerator.java | 4 +- .../ws/wsdlgen/BindingWSDLGeneratorTestCase.java | 4 +- .../wsdlgen/Interface2WSDLGeneratorTestCase.java | 4 +- .../binding/ws/xml/WebServiceBindingProcessor.java | 4 +- .../tuscany/sca/binding/ws/xml/ReadTestCase.java | 10 +- .../service/impl/ContributionServiceImpl.java | 6 +- .../resolver/ExtensibleModelResolverTestCase.java | 6 +- .../contribution/resolver/TestModelResolver.java | 4 +- .../java/impl/ClassLoaderModelResolver.java | 4 +- .../java/impl/ClassReferenceModelResolver.java | 6 +- .../java/impl/JavaExportProcessor.java | 4 +- .../java/impl/JavaImportExportListener.java | 4 +- .../java/impl/JavaImportProcessor.java | 4 +- .../ClassReferenceArtifactResolverTestCase.java | 4 +- .../java/impl/ContributionClassLoaderTestCase.java | 4 +- .../namespace/impl/NamespaceExportProcessor.java | 4 +- .../namespace/impl/NamespaceImportProcessor.java | 4 +- .../resource/impl/ArtifactModelResolver.java | 4 +- .../resource/impl/ResourceExportProcessor.java | 4 +- .../resource/impl/ResourceImportProcessor.java | 4 +- .../processor/xml/AnyAttributeProcessor.java | 4 +- .../processor/xml/AnyElementProcessor.java | 4 +- ...ributionGeneratedMetadataDocumentProcessor.java | 4 +- .../xml/ContributionMetadataDocumentProcessor.java | 4 +- .../xml/ContributionMetadataProcessor.java | 4 +- .../xml/ContributionModelResolver.java | 4 +- .../tuscany/sca/contribution/Contribution.java | 7 + .../DefaultModelFactoryExtensionPoint.java | 132 ------ .../contribution/ModelFactoryExtensionPoint.java | 54 --- .../sca/contribution/impl/ContributionImpl.java | 5 + ...DefaultStAXArtifactProcessorExtensionPoint.java | 22 +- ...efaultStAXAttributeProcessorExtensionPoint.java | 18 +- .../DefaultURLArtifactProcessorExtensionPoint.java | 10 +- .../resolver/ExtensibleModelResolver.java | 10 +- .../DefaultContributionListenerExtensionPoint.java | 10 +- ...any.sca.contribution.ModelFactoryExtensionPoint | 18 - .../module/DataBindingModuleActivator.java | 4 +- .../core/assembly/ReferenceParameterProcessor.java | 4 +- .../DefaultProxyFactoryExtensionPoint.java | 4 +- .../sca/databinding/sdo/ImportSDOProcessor.java | 4 +- .../sdo/ImportSDOProcessorTestCase.java | 4 +- .../xml/SCADefinitionsDocumentProcessor.java | 4 +- .../impl/CompositeConfigurationServiceImpl.java | 53 ++- .../impl/CompositeGeneratorServiceImpl.java | 6 +- .../manager/impl/ContributionCollectionImpl.java | 44 +- .../impl/DeployableCompositeCollectionImpl.java | 16 +- .../impl/DeployedCompositeCollectionImpl.java | 6 +- .../impl/NodeProcessCollectionFacadeImpl.java | 4 +- .../tuscany/sca/binding/sca/EndpointTestCase.java | 13 +- .../sca/core/DefaultFactoryExtensionPoint.java | 133 ++++++ .../tuscany/sca/core/FactoryExtensionPoint.java | 54 +++ ...g.apache.tuscany.sca.core.FactoryExtensionPoint | 18 + .../sca/host/embedded/impl/DefaultSCADomain.java | 3 +- .../sca/host/embedded/impl/EmbeddedSCADomain.java | 6 +- .../sca/host/embedded/impl/ReallySmallRuntime.java | 6 +- .../embedded/impl/ReallySmallRuntimeBuilder.java | 6 +- .../test/extension/module/TestModuleActivator.java | 4 +- .../implementation/bpel/impl/BPELFactoryImpl.java | 4 +- .../bpel/xml/BPELDocumentProcessor.java | 4 +- .../bpel/xml/BPELImplementationProcessor.java | 4 +- .../ejb/xml/EJBImplementationProcessor.java | 4 +- .../sca/implementation/ejb/xml/ReadTestCase.java | 8 +- .../java/module/JavaRuntimeModuleActivator.java | 4 +- .../java/xml/JavaImplementationProcessor.java | 4 +- .../sca/implementation/java/xml/ReadTestCase.java | 12 +- .../java/JavaImplementationActivator.java | 4 +- .../builder/impl/NodeCompositeBuilderImpl.java | 41 +- .../xml/ConfiguredNodeImplementationProcessor.java | 4 +- .../node/xml/NodeImplementationProcessor.java | 4 +- ...e.tuscany.sca.assembly.builder.CompositeBuilder | 18 + .../builder/impl/CalculateBindingURITestCase.java | 43 +- .../sca/implementation/node/xml/ReadTestCase.java | 8 +- .../impl/ResourceImplementationFactoryImpl.java | 4 +- .../impl/ResourceImplementationProcessor.java | 4 +- .../script/ScriptImplementationProcessor.java | 4 +- .../spring/SpringImplementationProcessor.java | 4 +- .../widget/WidgetImplementationFactory.java | 4 +- .../widget/WidgetImplementationProcessor.java | 4 +- .../xquery/xml/XQueryImplementationProcessor.java | 4 +- .../java/xml/JavaInterfaceProcessor.java | 4 +- .../sca/interfacedef/java/xml/ReadTestCase.java | 9 +- .../java/DefaultJavaInterfaceFactory.java | 6 +- .../wsdl/xml/WSDLDocumentProcessor.java | 4 +- .../wsdl/xml/WSDLInterfaceProcessor.java | 4 +- .../interfacedef/wsdl/xml/WSDLModelResolver.java | 4 +- .../interfacedef/wsdl/AbstractWSDLTestCase.java | 4 +- .../sca/interfacedef/wsdl/xml/ReadTestCase.java | 9 +- .../sca/interfacedef/wsdl/xml/WSDLTestCase.java | 4 +- .../sca/interfacedef/wsdl/DefaultWSDLFactory.java | 4 +- .../interfacedef/wsdl/impl/WSDLFactoryImpl.java | 4 +- .../wsdl/impl/WSDLInterfaceIntrospectorImpl.java | 4 +- .../org/apache/tuscany/sca/node/impl/NodeImpl.java | 491 ++++++--------------- .../org/apache/tuscany/sca/node/impl/NodeUtil.java | 157 +++++++ .../tuscany/sca/node/impl/RuntimeBootStrapper.java | 67 +-- .../tuscany/sca/node/impl/RuntimeBuilder.java | 22 +- .../logging/jdk/JDKLoggingPolicyProcessor.java | 4 +- .../tuscany/sca/policy/jsr250/JSR250Activator.java | 4 +- .../ws/Axis2ConfigParamPolicyProcessor.java | 4 +- .../basic/BasicAuthenticationPolicyProcessor.java | 4 +- .../AuthorizationPolicyProcessor.java | 4 +- .../identity/SecurityIdentityPolicyProcessor.java | 4 +- .../jaas/JaasAuthenticationPolicyProcessor.java | 4 +- .../transaction/TransactionPolicyProcessor.java | 4 +- .../sca/policy/xml/ws/WSPolicyProcessor.java | 4 +- .../sca/policy/xml/BindingTypeProcessor.java | 4 +- .../policy/xml/ImplementationTypeProcessor.java | 4 +- .../sca/policy/xml/PolicyIntentProcessor.java | 4 +- .../tuscany/sca/policy/xml/PolicySetProcessor.java | 4 +- .../sca/policy/xml/ProfileIntentProcessor.java | 4 +- .../sca/policy/xml/QualifiedIntentProcessor.java | 4 +- .../sca/policy/xml/SimpleIntentProcessor.java | 4 +- .../impl/ContributionDependencyBuilderImpl.java | 43 +- .../impl/ContributionContentProcessor.java | 8 +- .../processor/impl/ContributionInfoProcessor.java | 8 +- ...scany.sca.workspace.builder.ContributionBuilder | 18 + .../ContributionDependencyBuilderTestCase.java | 7 +- .../sca/workspace/xml/WorkspaceProcessor.java | 4 +- .../sca/workspace/builder/ContributionBuilder.java | 49 ++ .../builder/ContributionBuilderException.java | 45 ++ .../builder/ContributionBuilderExtensionPoint.java | 51 +++ .../builder/ContributionDependencyBuilder.java | 42 -- .../DefaultContributionBuilderExtensionPoint.java | 139 ++++++ .../tuscany/sca/workspace/impl/WorkspaceImpl.java | 5 + ...space.builder.ContributionBuilderExtensionPoint | 18 + .../tuscany/sca/xsd/xml/XSDDocumentProcessor.java | 4 +- .../tuscany/sca/xsd/xml/XSDModelResolver.java | 4 +- .../sca/xsd/xml/XSDDocumentProcessorTestCase.java | 4 +- .../echo/provider/EchoBindingProviderFactory.java | 4 +- .../EchoBindingEncryptionPolicyProcessor.java | 4 +- .../java/manager/DistributeAndRunComponents.java | 58 +-- .../main/java/manager/DistributeComponents.java | 55 +-- .../src/main/java/manager/ListComponents.java | 25 +- .../src/main/java/manager/ListDependencies.java | 21 +- .../src/main/java/manager/WireComponents.java | 45 +- .../crud/impl/CRUDImplementationFactoryImpl.java | 4 +- .../pojo/impl/POJOImplementationProcessor.java | 4 +- .../CheckingsDeptAuthorizationPolicyProcessor.java | 4 +- 207 files changed, 2185 insertions(+), 1719 deletions(-) create mode 100644 branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderExtensionPoint.java create mode 100644 branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java create mode 100644 branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingConfigurationBuilderImpl.java create mode 100644 branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder create mode 100644 branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint delete mode 100644 branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java delete mode 100644 branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ModelFactoryExtensionPoint.java delete mode 100644 branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint create mode 100644 branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java create mode 100644 branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/FactoryExtensionPoint.java create mode 100644 branches/sca-equinox/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.FactoryExtensionPoint create mode 100644 branches/sca-equinox/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder create mode 100644 branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java create mode 100644 branches/sca-equinox/modules/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder create mode 100644 branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java create mode 100644 branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java create mode 100644 branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java delete mode 100644 branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java create mode 100644 branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java create mode 100644 branches/sca-equinox/modules/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint diff --git a/branches/sca-equinox/demos/bigbank-account/src/main/java/bigbank/account/security/CheckingsDeptAuthorizationPolicyProcessor.java b/branches/sca-equinox/demos/bigbank-account/src/main/java/bigbank/account/security/CheckingsDeptAuthorizationPolicyProcessor.java index da1b6e1d06..fd3a4d4503 100644 --- a/branches/sca-equinox/demos/bigbank-account/src/main/java/bigbank/account/security/CheckingsDeptAuthorizationPolicyProcessor.java +++ b/branches/sca-equinox/demos/bigbank-account/src/main/java/bigbank/account/security/CheckingsDeptAuthorizationPolicyProcessor.java @@ -23,12 +23,12 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * Implementation of a Policy Processor @@ -40,7 +40,7 @@ public class CheckingsDeptAuthorizationPolicyProcessor implements StAXArtifactPr return CHECKINGS_DEPT_AUTHORIZATION_POLICY_QNAME; } - public CheckingsDeptAuthorizationPolicyProcessor(ModelFactoryExtensionPoint modelFactories) { + public CheckingsDeptAuthorizationPolicyProcessor(FactoryExtensionPoint modelFactories) { } diff --git a/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CompositeBuilderNonWiringImpl.java b/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CompositeBuilderNonWiringImpl.java index cad09920e8..aebe4ff211 100644 --- a/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CompositeBuilderNonWiringImpl.java +++ b/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CompositeBuilderNonWiringImpl.java @@ -49,16 +49,12 @@ import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; public class CompositeBuilderNonWiringImpl implements CompositeBuilder { private static final Logger logger = Logger.getLogger(CompositeBuilderNonWiringImpl.class.getName()); private CompositeBuilder compositeIncludeBuilder; - //private CompositeBuilder componentReferenceWireBuilder; - //private CompositeBuilder componentReferencePromotionWireBuilder; - //private CompositeBuilder compositeReferenceWireBuilder; private CompositeBuilder compositeCloneBuilder; private CompositeBuilder componentConfigurationBuilder; private CompositeBuilder compositeServiceConfigurationBuilder; private CompositeBuilder compositeReferenceConfigurationBuilder; private CompositeBuilder compositeBindingURIBuilder; private CompositeBuilder componentServicePromotionBuilder; - //private CompositeBuilder compositeServicePromotionBuilder; private CompositeBuilder compositePromotionBuilder; private CompositeBuilder compositePolicyBuilder; private CompositeBuilder componentServiceBindingBuilder; @@ -76,9 +72,8 @@ public class CompositeBuilderNonWiringImpl implements CompositeBuilder { public CompositeBuilderNonWiringImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, - InterfaceContractMapper interfaceContractMapper, - Monitor monitor) { - this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, interfaceContractMapper, null, monitor); + InterfaceContractMapper interfaceContractMapper) { + this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, interfaceContractMapper); } /** @@ -96,77 +91,59 @@ public class CompositeBuilderNonWiringImpl implements CompositeBuilder { EndpointFactory endpointFactory, SCABindingFactory scaBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { if (endpointFactory == null){ endpointFactory = new DefaultEndpointFactory(); } - compositeIncludeBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeIncludeBuilderImpl(monitor); - //componentReferenceWireBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceWireBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); - //componentReferencePromotionWireBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentReferencePromotionWireBuilderImpl(assemblyFactory, endpointFactory, monitor); - //compositeReferenceWireBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeReferenceWireBuilderImpl(assemblyFactory, endpointFactory, monitor); - compositeCloneBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeCloneBuilderImpl(monitor); - componentConfigurationBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); + compositeIncludeBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeIncludeBuilderImpl(); + compositeCloneBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeCloneBuilderImpl(); + componentConfigurationBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper); compositeServiceConfigurationBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeServiceConfigurationBuilderImpl(assemblyFactory); compositeReferenceConfigurationBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeReferenceConfigurationBuilderImpl(assemblyFactory); - compositeBindingURIBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); - //componentServicePromotionBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentServicePromotionBuilderImpl(assemblyFactory); - //compositeServicePromotionBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeServicePromotionBuilderImpl(assemblyFactory); - compositePromotionBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositePromotionBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); - compositePolicyBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositePolicyBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); - componentServiceBindingBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuilderImpl(monitor); - componentReferenceBindingBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBuilderImpl(monitor); + compositeBindingURIBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper); + compositePromotionBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositePromotionBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper); + compositePolicyBuilder = new org.apache.tuscany.sca.assembly.builder.impl.CompositePolicyBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper); + componentServiceBindingBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuilderImpl(); + componentReferenceBindingBuilder = new org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBuilderImpl(); } - public void build(Composite composite) throws CompositeBuilderException { + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeBuilderNonWiring"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Collect and fuse includes - compositeIncludeBuilder.build(composite); + compositeIncludeBuilder.build(composite, definitions, monitor); // Expand nested composites - compositeCloneBuilder.build(composite); + compositeCloneBuilder.build(composite, definitions, monitor); // Configure all components - componentConfigurationBuilder.build(composite); + componentConfigurationBuilder.build(composite, definitions, monitor); // Connect composite services/references to promoted services/references - compositePromotionBuilder.build(composite); + compositePromotionBuilder.build(composite, definitions, monitor); // Compute the policies across the model hierarchy - compositePolicyBuilder.build(composite); + compositePolicyBuilder.build(composite, definitions, monitor); // Configure composite services - compositeServiceConfigurationBuilder.build(composite); + compositeServiceConfigurationBuilder.build(composite, definitions, monitor); // Configure composite references - compositeReferenceConfigurationBuilder.build(composite); + compositeReferenceConfigurationBuilder.build(composite, definitions, monitor); // Configure binding URIs - compositeBindingURIBuilder.build(composite); - - // Create promoted component services -// componentServicePromotionBuilder.build(composite); - - // Create promoted composite services -// compositeServicePromotionBuilder.build(composite); + compositeBindingURIBuilder.build(composite, definitions, monitor); // Build component service binding-related information - componentServiceBindingBuilder.build(composite); + componentServiceBindingBuilder.build(composite, definitions, monitor); - // Wire the components -// componentReferenceWireBuilder.build(composite); - - // Wire the promoted component references -// componentReferencePromotionWireBuilder.build(composite); - - // Wire the composite references -// compositeReferenceWireBuilder.build(composite); - // Build component reference binding-related information - componentReferenceBindingBuilder.build(composite); + componentReferenceBindingBuilder.build(composite, definitions, monitor); // Fuse nested composites //FIXME do this later diff --git a/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CustomCompositeBuilder.java b/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CustomCompositeBuilder.java index 82a8ca6689..b2e7dbb8c0 100644 --- a/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CustomCompositeBuilder.java +++ b/branches/sca-equinox/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/CustomCompositeBuilder.java @@ -39,7 +39,6 @@ import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.contribution.Artifact; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -49,6 +48,7 @@ import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; @@ -59,18 +59,18 @@ import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; public class CustomCompositeBuilder { private URLArtifactProcessor contributionProcessor; private ModelResolverExtensionPoint modelResolvers; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private WorkspaceFactory workspaceFactory; private AssemblyFactory assemblyFactory; private XMLOutputFactory outputFactory; private StAXArtifactProcessor xmlProcessor; - private ContributionDependencyBuilder contributionDependencyBuilder; + private ContributionBuilder contributionDependencyBuilder; private CompositeBuilder domainCompositeBuilder; private static Workspace workspace; private List policyDefinitions; @@ -99,7 +99,7 @@ public class CustomCompositeBuilder { } // Get XML input/output factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); @@ -119,16 +119,16 @@ public class CustomCompositeBuilder { modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + contributionDependencyBuilder = new ContributionDependencyBuilderImpl(null); // Create a composite builder SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); if (nonWiring) { - domainCompositeBuilder = new CompositeBuilderNonWiringImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + domainCompositeBuilder = new CompositeBuilderNonWiringImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper); } else { - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper); } } @@ -147,20 +147,17 @@ public class CustomCompositeBuilder { workspace.getContributions().add(testContribution); // Build the contribution dependencies - Map> contributionDependencies = new HashMap>(); Set resolved = new HashSet(); for (Contribution contribution: workspace.getContributions()) { - List dependencies = contributionDependencyBuilder.buildContributionDependencies(contribution, workspace); + contributionDependencyBuilder.build(contribution, workspace, monitor); // Resolve contributions - for (Contribution dependency: dependencies) { + for (Contribution dependency: contribution.getDependencies()) { if (!resolved.contains(dependency)) { resolved.add(dependency); contributionProcessor.resolve(dependency, workspace.getModelResolver()); } } - - contributionDependencies.put(contribution, dependencies); } // Create a composite model for the domain @@ -172,7 +169,7 @@ public class CustomCompositeBuilder { domainComposite.getIncludes().addAll(workspace.getDeployables()); // Build the domain composite and wire the components included in it - domainCompositeBuilder.build(domainComposite); + domainCompositeBuilder.build(domainComposite, null, monitor); } /** diff --git a/branches/sca-equinox/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java b/branches/sca-equinox/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java index ff47988bce..0e13a017f0 100644 --- a/branches/sca-equinox/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java +++ b/branches/sca-equinox/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java @@ -23,12 +23,12 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.Policy; import org.apache.tuscany.sca.policy.PolicyFactory; @@ -40,7 +40,7 @@ import org.apache.tuscany.sca.policy.PolicyFactory; */ public class TestPolicyProcessor implements StAXArtifactProcessor { - public TestPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public TestPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { } diff --git a/branches/sca-equinox/itest/validation/src/test/java/domain/CustomCompositeBuilder.java b/branches/sca-equinox/itest/validation/src/test/java/domain/CustomCompositeBuilder.java index 8665bfd535..e7305e671d 100644 --- a/branches/sca-equinox/itest/validation/src/test/java/domain/CustomCompositeBuilder.java +++ b/branches/sca-equinox/itest/validation/src/test/java/domain/CustomCompositeBuilder.java @@ -35,9 +35,9 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; +import org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingConfigurationBuilderImpl; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -47,6 +47,7 @@ import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; @@ -59,18 +60,18 @@ import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; public class CustomCompositeBuilder { private URLArtifactProcessor contributionProcessor; private ModelResolverExtensionPoint modelResolvers; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private WorkspaceFactory workspaceFactory; private AssemblyFactory assemblyFactory; private XMLOutputFactory outputFactory; private StAXArtifactProcessor xmlProcessor; - private ContributionDependencyBuilder contributionDependencyBuilder; + private ContributionBuilder contributionDependencyBuilder; private CompositeBuilder domainCompositeBuilder; private CompositeBuilder nodeCompositeBuilder; private NodeImplementationFactory nodeFactory; @@ -109,7 +110,7 @@ public class CustomCompositeBuilder { } // Get XML input/output factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); @@ -131,16 +132,17 @@ public class CustomCompositeBuilder { modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + contributionDependencyBuilder = new ContributionDependencyBuilderImpl(null); // Create a composite builder SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper); // Create a node composite builder - nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper, null, monitor); + CompositeBuilder bindingConfigurationBuilder = new CompositeBindingConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper); + nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper, bindingConfigurationBuilder); } public void loadContribution(String compositeURL, String sourceURI, String sourceURL) throws Exception { @@ -159,20 +161,17 @@ public class CustomCompositeBuilder { workspace.getContributions().add(storeContribution); // Build the contribution dependencies - Map> contributionDependencies = new HashMap>(); Set resolved = new HashSet(); for (Contribution contribution: workspace.getContributions()) { - List dependencies = contributionDependencyBuilder.buildContributionDependencies(contribution, workspace); + contributionDependencyBuilder.build(contribution, workspace, monitor); // Resolve contributions - for (Contribution dependency: dependencies) { + for (Contribution dependency: contribution.getDependencies()) { if (!resolved.contains(dependency)) { resolved.add(dependency); contributionProcessor.resolve(dependency, workspace.getModelResolver()); } } - - contributionDependencies.put(contribution, dependencies); } // Create a composite model for the domain @@ -201,7 +200,7 @@ public class CustomCompositeBuilder { domainComposite.getIncludes().addAll(workspace.getDeployables()); // Build the domain composite and wire the components included in it - domainCompositeBuilder.build(domainComposite); + domainCompositeBuilder.build(domainComposite, null, monitor); } public void readContribution(String compositeURL, String sourceURI, String sourceURL) throws Exception { diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java index b07c91d1b3..55ce667256 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java @@ -31,13 +31,13 @@ import javax.xml.stream.XMLStreamReader; import org.apache.tuscany.sca.assembly.ComponentType; import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * A componentType processor. @@ -65,7 +65,7 @@ public class ComponentTypeDocumentProcessor extends BaseAssemblyProcessor implem * @param modelFactories * @param staxProcessor */ - public ComponentTypeDocumentProcessor(ModelFactoryExtensionPoint modelFactories, + public ComponentTypeDocumentProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor staxProcessor, Monitor monitor) { super(null, null, staxProcessor, monitor); diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java index d0d11cd02b..166bba8757 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeModelResolver.java @@ -25,9 +25,9 @@ import java.util.Map; import org.apache.tuscany.sca.assembly.ComponentType; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.java.JavaImport; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * A Model Resolver for ComponentType models. @@ -38,7 +38,7 @@ public class ComponentTypeModelResolver implements ModelResolver { private Contribution contribution; private Map map = new HashMap(); - public ComponentTypeModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public ComponentTypeModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; } diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java index 9727b89aab..7fc43c6fe5 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java @@ -36,13 +36,13 @@ import org.apache.tuscany.sca.assembly.Extensible; import org.apache.tuscany.sca.assembly.Property; import org.apache.tuscany.sca.assembly.Reference; import org.apache.tuscany.sca.assembly.Service; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; @@ -76,7 +76,7 @@ public class ComponentTypeProcessor extends BaseAssemblyProcessor implements StA * @param modelFactories * @param extensionProcessor */ - public ComponentTypeProcessor(ModelFactoryExtensionPoint modelFactories, + public ComponentTypeProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, StAXAttributeProcessor extensionAttributeProcessor, Monitor monitor) { diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java index bc74773d85..2469281131 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java @@ -37,13 +37,13 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.PolicySet; @@ -97,7 +97,7 @@ public class CompositeDocumentProcessor extends BaseAssemblyProcessor implements * @param modelFactories * @param staxProcessor */ - public CompositeDocumentProcessor(ModelFactoryExtensionPoint modelFactories, + public CompositeDocumentProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor staxProcessor, Monitor monitor) { super(null, null, staxProcessor, monitor); this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java index 72744259f6..62ed95cb01 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java @@ -27,9 +27,9 @@ import javax.xml.namespace.QName; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.namespace.NamespaceImport; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * A Model Resolver for Composite models. @@ -41,7 +41,7 @@ public class CompositeModelResolver implements ModelResolver { private Contribution contribution; private Map map = new HashMap(); - public CompositeModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public CompositeModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; } diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java index 09ec7664ce..0a98b8235a 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java @@ -57,7 +57,6 @@ import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.Wire; import org.apache.tuscany.sca.contribution.Artifact; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; @@ -66,6 +65,7 @@ import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.monitor.Monitor; @@ -117,7 +117,7 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt * @param extensionProcessor * @param monitor */ - private CompositeProcessor(ModelFactoryExtensionPoint modelFactories, + private CompositeProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, StAXAttributeProcessor extensionAttributeProcessor, Monitor monitor) { @@ -1195,8 +1195,8 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt * @param extensionPoints * @return */ - private static ModelFactoryExtensionPoint modelFactories(ExtensionPointRegistry extensionPoints) { - return extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + private static FactoryExtensionPoint modelFactories(ExtensionPointRegistry extensionPoints) { + return extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); } /** diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java index aa4980fcb6..aa1135ef13 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConfiguredOperationProcessor.java @@ -28,12 +28,12 @@ import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.ConfiguredOperation; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.monitor.Monitor; @@ -49,7 +49,7 @@ public class ConfiguredOperationProcessor implements StAXArtifactProcessor map = new HashMap(); - public ConstrainingTypeModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public ConstrainingTypeModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; } diff --git a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java index 334b6c6b97..a1414aaa2a 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java +++ b/branches/sca-equinox/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java @@ -33,12 +33,12 @@ import org.apache.tuscany.sca.assembly.AbstractReference; import org.apache.tuscany.sca.assembly.AbstractService; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.ConstrainingType; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; @@ -70,7 +70,7 @@ public class ConstrainingTypeProcessor extends BaseAssemblyProcessor implements * @param modelFactories * @param extensionProcessor */ - public ConstrainingTypeProcessor(ModelFactoryExtensionPoint modelFactories, + public ConstrainingTypeProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { super(modelFactories.getFactory(AssemblyFactory.class), diff --git a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java index cb99113fe0..6e9fc28cef 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java +++ b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java @@ -35,7 +35,6 @@ import org.apache.tuscany.sca.assembly.OperationsConfigurator; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -44,6 +43,7 @@ import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensi import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; @@ -70,7 +70,7 @@ public class BuildPolicyTestCase extends TestCase { @Override public void setUp() throws Exception { DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = new TestSCABindingFactoryImpl(); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); @@ -83,7 +83,7 @@ public class BuildPolicyTestCase extends TestCase { UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, monitor); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); URLArtifactProcessorExtensionPoint documentProcessors = new DefaultURLArtifactProcessorExtensionPoint(extensionPoints); documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors, null); policyDefinitionsProcessor = documentProcessors.getProcessor(SCADefinitions.class); @@ -111,7 +111,7 @@ public class BuildPolicyTestCase extends TestCase { documentProcessor.resolve(definitions, resolver); documentProcessor.resolve(composite, resolver); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, monitor); } public void testPolicyIntentInheritance() throws Exception { diff --git a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java index e316babb2d..76c5ce7839 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java +++ b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java @@ -34,7 +34,6 @@ import org.apache.tuscany.sca.assembly.ConstrainingType; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -43,6 +42,7 @@ import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensi import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; @@ -76,14 +76,14 @@ public class WireTestCase extends TestCase { MonitorFactory monitorFactory = new DefaultMonitorFactory(); monitor = monitorFactory.createMonitor(); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = new TestSCABindingFactoryImpl(); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, monitor); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); policyDefinitionsProcessor = documentProcessors.getProcessor(SCADefinitions.class); @@ -111,7 +111,7 @@ public class WireTestCase extends TestCase { policyDefinitionsProcessor.resolve(scaDefns, resolver); staxProcessor.resolve(composite, resolver); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, monitor); assertEquals(composite.getConstrainingType(), constrainingType); assertEquals(composite.getComponents().get(0).getConstrainingType(), constrainingType); @@ -138,7 +138,7 @@ public class WireTestCase extends TestCase { policyDefinitionsProcessor.resolve(scaDefns, resolver); staxProcessor.resolve(composite, resolver); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, monitor); assertEquals(composite.getComponents().get(2).getImplementation(), nestedComposite); } diff --git a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java index eb49d7dcd1..ce08121afa 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java +++ b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java @@ -38,7 +38,6 @@ import org.apache.tuscany.sca.assembly.ConstrainingType; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; @@ -46,6 +45,7 @@ import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensi import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; @@ -77,7 +77,7 @@ public class WriteAllTestCase extends TestCase { staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, null); resolver = new DefaultModelResolver(); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = new TestSCABindingFactoryImpl(); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); @@ -88,7 +88,7 @@ public class WriteAllTestCase extends TestCase { MonitorFactory monitorFactory = new DefaultMonitorFactory(); monitor = monitorFactory.createMonitor(); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, monitor); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); policyDefinitionsProcessor = documentProcessors.getProcessor(SCADefinitions.class); @@ -126,7 +126,7 @@ public class WriteAllTestCase extends TestCase { policyDefinitionsProcessor.resolve(scaDefns, resolver); staxProcessor.resolve(composite, resolver); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, monitor); ByteArrayOutputStream bos = new ByteArrayOutputStream(); staxProcessor.write(composite, bos); } diff --git a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java index 5188b1c91a..bfa8c96f6a 100644 --- a/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java +++ b/branches/sca-equinox/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteNamespacesTestCase.java @@ -33,11 +33,11 @@ import junit.framework.TestCase; import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * Test writing SCA XML assemblies. @@ -52,7 +52,7 @@ public class WriteNamespacesTestCase extends TestCase { @Override public void setUp() throws Exception { ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); //outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE); inputFactory = modelFactories.getFactory(XMLInputFactory.class); diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java index cf38894702..0d4f091b1e 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java @@ -20,6 +20,8 @@ package org.apache.tuscany.sca.assembly.builder; import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.monitor.Monitor; /** * A builder that handles the configuration of the components inside a @@ -28,13 +30,22 @@ import org.apache.tuscany.sca.assembly.Composite; * @version $Rev$ $Date$ */ public interface CompositeBuilder { + + /** + * Returns the ID of the builder. + * + * @return + */ + String getID(); /** * Build a composite. * * @param composite + * @param definitions + * @param monitor * @throws CompositeBuilderException */ - void build(Composite composite) throws CompositeBuilderException; + void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException; } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderExtensionPoint.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderExtensionPoint.java new file mode 100644 index 0000000000..a2d6b34db5 --- /dev/null +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderExtensionPoint.java @@ -0,0 +1,51 @@ +/* + * 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.sca.assembly.builder; + +/** + * An extension point for Composite builders. + * + * @version $Rev: $ $Date: $ + */ +public interface CompositeBuilderExtensionPoint { + + /** + * Adds a composite builder. + * + * @param compositeBuilder + */ + void addCompositeBuilder(CompositeBuilder compositeBuilder); + + /** + * Removes a composite builder. + * + * @param compositeBuilder + */ + void removeCompositeBuilder(CompositeBuilder compositeBuilder); + + /** + * Returns the composite builder with the given id. + * + * @param id + * @return + */ + CompositeBuilder getCompositeBuilder(String id); + +} diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java new file mode 100644 index 0000000000..46b6769e6e --- /dev/null +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java @@ -0,0 +1,145 @@ +/* + * 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.sca.assembly.builder; + +import java.lang.reflect.Constructor; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; +import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; +import org.apache.tuscany.sca.monitor.Monitor; + +/** + * Default implementation of a provider factory extension point. + * + * @version $Rev$ $Date$ + */ +public class DefaultCompositeBuilderExtensionPoint implements CompositeBuilderExtensionPoint { + + private ExtensionPointRegistry registry; + private final Map builders = new HashMap(); + private boolean loaded; + + public DefaultCompositeBuilderExtensionPoint(ExtensionPointRegistry registry) { + this.registry = registry; + } + + public void addCompositeBuilder(CompositeBuilder builder) { + builders.put(builder.getID(), builder); + } + + public void removeCompositeBuilder(CompositeBuilder builder) { + builders.remove(builder.getID()); + } + + public CompositeBuilder getCompositeBuilder(String id) { + loadBuilders(); + return builders.get(id); + } + + /** + * Load builders declared under META-INF/services. + */ + private void loadBuilders() { + if (loaded) + return; + + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); + + UtilityExtensionPoint utils = registry.getExtensionPoint(UtilityExtensionPoint.class); + InterfaceContractMapper mapper = utils.getUtility(InterfaceContractMapper.class); + + // Get the provider factory service declarations + Set builderDeclarations; + ServiceDiscovery serviceDiscovery = ServiceDiscovery.getInstance(); + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(CompositeBuilder.class.getName()); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + Map attributes = builderDeclaration.getAttributes(); + String id = attributes.get("id"); + + CompositeBuilder builder = new LazyCompositeBuilder(id, builderDeclaration, this, factories, mapper); + builders.put(id, builder); + } + } + + /** + * A wrapper around a composite builder allowing lazy + * loading and initialization of implementation providers. + */ + private static class LazyCompositeBuilder implements CompositeBuilder { + + private FactoryExtensionPoint factories; + private InterfaceContractMapper mapper; + private String id; + private ServiceDeclaration builderDeclaration; + private CompositeBuilder builder; + private CompositeBuilderExtensionPoint builders; + + private LazyCompositeBuilder(String id, ServiceDeclaration factoryDeclaration, + CompositeBuilderExtensionPoint builders, FactoryExtensionPoint factories, InterfaceContractMapper mapper) { + this.id = id; + this.builderDeclaration = factoryDeclaration; + this.builders = builders; + this.factories = factories; + this.mapper = mapper; + } + + public String getID() { + return id; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + getBuilder().build(composite, definitions, monitor); + } + + private CompositeBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = (Class)builderDeclaration.loadClass(); + try { + Constructor constructor = builderClass.getConstructor(FactoryExtensionPoint.class, InterfaceContractMapper.class); + builder = constructor.newInstance(factories, mapper); + } catch (NoSuchMethodException e) { + Constructor constructor = builderClass.getConstructor(CompositeBuilderExtensionPoint.class, FactoryExtensionPoint.class, InterfaceContractMapper.class); + builder = constructor.newInstance(builders, factories, mapper); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + + } + +} diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultEndpointBuilder.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultEndpointBuilder.java index 9743117174..5d4055fc8e 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultEndpointBuilder.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultEndpointBuilder.java @@ -28,7 +28,7 @@ import org.apache.tuscany.sca.monitor.Monitor; * @version $Rev$ $Date$ */ public class DefaultEndpointBuilder extends EndpointBuilderImpl { - public DefaultEndpointBuilder (Monitor monitor){ - super(monitor); + public DefaultEndpointBuilder (){ + super(); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointBuilder.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointBuilder.java index eb2977d87a..e98be49551 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointBuilder.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointBuilder.java @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.assembly.builder; import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.monitor.Monitor; /** * A builder that handles the configuration of reference endpoints @@ -34,7 +35,8 @@ public interface EndpointBuilder { * Build an endpoint. * * @param endpoint + * @param monitor */ - void build(Endpoint endpoint); + void build(Endpoint endpoint, Monitor monitor); } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java index cba46e7f5e..77d621c931 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java @@ -68,9 +68,7 @@ public abstract class BaseConfigurationBuilderImpl { private AssemblyFactory assemblyFactory; private SCABindingFactory scaBindingFactory; - private Monitor monitor; private InterfaceContractMapper interfaceContractMapper; - private SCADefinitions policyDefinitions; private DocumentBuilderFactory documentBuilderFactory; private TransformerFactory transformerFactory; @@ -78,28 +76,23 @@ public abstract class BaseConfigurationBuilderImpl { SCABindingFactory scaBindingFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { this.assemblyFactory = assemblyFactory; this.scaBindingFactory = scaBindingFactory; this.documentBuilderFactory = documentBuilderFactory; this.transformerFactory = transformerFactory; this.interfaceContractMapper = interfaceContractMapper; - this.policyDefinitions = policyDefinitions; - this.monitor = monitor; } /** * Configure components in the composite. * * @param composite - * @param problems + * @param monitor */ - protected void configureComponents(Composite composite) throws CompositeBuilderException { - configureComponents(composite, null); + protected void configureComponents(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + configureComponents(composite, null, monitor); configureSourcedProperties(composite, null); - //configureBindingURIs(composite, null, null); } /** @@ -109,7 +102,7 @@ public abstract class BaseConfigurationBuilderImpl { * @param uri * @param problems */ - private void configureComponents(Composite composite, String uri) { + private void configureComponents(Composite composite, String uri, SCADefinitions definitions, Monitor monitor) { String parentURI = uri; // Process nested composites recursively @@ -128,7 +121,7 @@ public abstract class BaseConfigurationBuilderImpl { if (implementation instanceof Composite) { // Process nested composite - configureComponents((Composite)implementation, componentURI); + configureComponents((Composite)implementation, componentURI, definitions, monitor); } } @@ -139,52 +132,18 @@ public abstract class BaseConfigurationBuilderImpl { // Create default SCA binding if (service.getBindings().isEmpty()) { - SCABinding scaBinding = createSCABinding(); + SCABinding scaBinding = createSCABinding(definitions); service.getBindings().add(scaBinding); } -/* - // Initialize binding names and URIs - for (Binding binding : service.getBindings()) { - - // Binding name defaults to the service name - if (binding.getName() == null) { - binding.setName(service.getName()); - } - } - - if (service.getCallback() != null) { - for (Binding binding : service.getCallback().getBindings()) { - if (binding.getName() == null) { - binding.setName(service.getName()); - } - } - } -*/ } // Initialize reference bindings for (Reference reference : composite.getReferences()) { // Create default SCA binding if (reference.getBindings().isEmpty()) { - SCABinding scaBinding = createSCABinding(); + SCABinding scaBinding = createSCABinding(definitions); reference.getBindings().add(scaBinding); } -/* - // Set binding names - for (Binding binding : reference.getBindings()) { - if (binding.getName() == null) { - binding.setName(reference.getName()); - } - } - - if (reference.getCallback() != null) { - for (Binding binding : reference.getCallback().getBindings()) { - if (binding.getName() == null) { - binding.setName(reference.getName()); - } - } - } -*/ } // Initialize all component services and references @@ -193,7 +152,7 @@ public abstract class BaseConfigurationBuilderImpl { // Index all components and check for duplicates if (components.containsKey(component.getName())) { - error("DuplicateComponentName", component, composite.getName().toString(), component.getName()); + error(monitor, "DuplicateComponentName", component, composite.getName().toString(), component.getName()); } else { components.put(component.getName(), component); } @@ -214,28 +173,27 @@ public abstract class BaseConfigurationBuilderImpl { indexImplementationPropertiesServicesAndReferences(component, services, references, - properties); + properties, + monitor); // Index component services, references and properties // Also check for duplicates - Map componentServices = - new HashMap(); - Map componentReferences = - new HashMap(); - Map componentProperties = - new HashMap(); + Map componentServices = new HashMap(); + Map componentReferences = new HashMap(); + Map componentProperties = new HashMap(); indexComponentPropertiesServicesAndReferences(component, componentServices, componentReferences, - componentProperties); + componentProperties, + monitor); // Reconcile component services/references/properties and // implementation services/references and create component // services/references/properties for the services/references // declared by the implementation - reconcileServices(component, services, componentServices); - reconcileReferences(component, references, componentReferences); - reconcileProperties(component, properties, componentProperties); + reconcileServices(component, services, componentServices, monitor); + reconcileReferences(component, references, componentReferences, monitor); + reconcileProperties(component, properties, componentProperties, monitor); // Configure or create callback services for component's references // with callbacks @@ -245,36 +203,14 @@ public abstract class BaseConfigurationBuilderImpl { // with callbacks configureCallbackReferences(component, componentReferences); - // Create self references to the component's services -// if (!(component.getImplementation() instanceof Composite)) { -// createSelfReferences(component); -// } - // Initialize service bindings for (ComponentService componentService : component.getServices()) { // Create default SCA binding if (componentService.getBindings().isEmpty()) { - SCABinding scaBinding = createSCABinding(); + SCABinding scaBinding = createSCABinding(definitions); componentService.getBindings().add(scaBinding); } -/* - // Set binding names - for (Binding binding : componentService.getBindings()) { - - // Binding name defaults to the service name - if (binding.getName() == null) { - binding.setName(componentService.getName()); - } - } - if (componentService.getCallback() != null) { - for (Binding binding : componentService.getCallback().getBindings()) { - if (binding.getName() == null) { - binding.setName(componentService.getName()); - } - } - } -*/ } // Initialize reference bindings @@ -282,24 +218,9 @@ public abstract class BaseConfigurationBuilderImpl { // Create default SCA binding if (componentReference.getBindings().isEmpty()) { - SCABinding scaBinding = createSCABinding(); + SCABinding scaBinding = createSCABinding(definitions); componentReference.getBindings().add(scaBinding); } -/* - // Set binding names - for (Binding binding : componentReference.getBindings()) { - if (binding.getName() == null) { - binding.setName(componentReference.getName()); - } - } - if (componentReference.getCallback() != null) { - for (Binding binding : componentReference.getCallback().getBindings()) { - if (binding.getName() == null) { - binding.setName(componentReference.getName()); - } - } - } -*/ } } } @@ -307,11 +228,12 @@ public abstract class BaseConfigurationBuilderImpl { /** * Report a warning. * + * @param monitor * @param problems * @param message * @param model */ - private void warning(String message, Object model, String... messageParameters) { + private void warning(Monitor monitor, String message, Object model, String... messageParameters) { if (monitor != null) { Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); monitor.problem(problem); @@ -321,11 +243,12 @@ public abstract class BaseConfigurationBuilderImpl { /** * Report a error. * + * @param monitor * @param problems * @param message * @param model */ - private void error(String message, Object model, String... messageParameters) { + private void error(Monitor monitor, String message, Object model, String... messageParameters) { if (monitor != null) { Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters); monitor.problem(problem); @@ -343,7 +266,8 @@ public abstract class BaseConfigurationBuilderImpl { */ private void reconcileProperties(Component component, Map properties, - Map componentProperties) { + Map componentProperties, + Monitor monitor) { // Connect component properties to their properties for (ComponentProperty componentProperty : component.getProperties()) { @@ -351,7 +275,7 @@ public abstract class BaseConfigurationBuilderImpl { if (property != null) { componentProperty.setProperty(property); } else { - warning("PropertyNotFound", component, component.getName(), componentProperty.getName()); + warning(monitor, "PropertyNotFound", component, component.getName(), componentProperty.getName()); } } @@ -378,7 +302,7 @@ public abstract class BaseConfigurationBuilderImpl { // Check that a component property does not override the // mustSupply attribute if (!property.isMustSupply() && componentProperty.isMustSupply()) { - warning("PropertyMustSupplyIncompatible", component, component.getName(), componentProperty.getName()); + warning(monitor, "PropertyMustSupplyIncompatible", component, component.getName(), componentProperty.getName()); } // Default to the mustSupply attribute specified on the property @@ -397,14 +321,14 @@ public abstract class BaseConfigurationBuilderImpl { // Check that a value is supplied if (componentProperty.getValue() == null && property.isMustSupply()) { - warning("PropertyMustSupplyNull", component, component.getName(), componentProperty.getName()); + warning(monitor, "PropertyMustSupplyNull", component, component.getName(), componentProperty.getName()); } // Check that a a component property does not override the // many attribute if (!property.isMany() && componentProperty.isMany()) { - warning("PropertyOverrideManyAttribute", component, component.getName(), componentProperty.getName()); + warning(monitor, "PropertyOverrideManyAttribute", component, component.getName(), componentProperty.getName()); } // Default to the many attribute defined on the property @@ -420,7 +344,7 @@ public abstract class BaseConfigurationBuilderImpl { // Check that a type or element are specified if (componentProperty.getXSDElement() == null && componentProperty.getXSDType() == null) { - warning("NoTypeForComponentProperty", component, component.getName(), componentProperty.getName()); + warning(monitor, "NoTypeForComponentProperty", component, component.getName(), componentProperty.getName()); } } } @@ -433,11 +357,12 @@ public abstract class BaseConfigurationBuilderImpl { * @param component * @param references * @param componentReferences - * @param problems + * @param monitor */ private void reconcileReferences(Component component, Map references, - Map componentReferences) { + Map componentReferences, + Monitor monitor) { // Connect each component reference to the corresponding reference for (ComponentReference componentReference : component.getReferences()) { @@ -449,7 +374,7 @@ public abstract class BaseConfigurationBuilderImpl { componentReference.setReference(reference); } else { if (!componentReference.getName().startsWith("$self$.")) { - error("ReferenceNotFound", component, component.getName(), componentReference.getName()); + error(monitor, "ReferenceNotFound", component, component.getName(), componentReference.getName()); } } } @@ -477,7 +402,7 @@ public abstract class BaseConfigurationBuilderImpl { if (!ReferenceConfigurationUtil.isValidMultiplicityOverride(reference.getMultiplicity(), componentReference .getMultiplicity())) { - warning("ReferenceIncompatibleMultiplicity", component, component.getName(), componentReference.getName()); + warning(monitor, "ReferenceIncompatibleMultiplicity", component, component.getName(), componentReference.getName()); } } else { componentReference.setMultiplicity(reference.getMultiplicity()); @@ -490,7 +415,7 @@ public abstract class BaseConfigurationBuilderImpl { .getInterfaceContract())) { if (!interfaceContractMapper.isCompatible(componentReference.getInterfaceContract(), interfaceContract)) { - warning("ReferenceIncompatibleComponentInterface", component, component.getName(), componentReference.getName()); + warning(monitor, "ReferenceIncompatibleComponentInterface", component, component.getName(), componentReference.getName()); } } } else { @@ -535,11 +460,12 @@ public abstract class BaseConfigurationBuilderImpl { * @param component * @param services * @param componentServices - * @param problems + * @param monitor */ private void reconcileServices(Component component, Map services, - Map componentServices) { + Map componentServices, + Monitor monitor) { // Connect each component service to the corresponding service for (ComponentService componentService : component.getServices()) { @@ -550,7 +476,7 @@ public abstract class BaseConfigurationBuilderImpl { if (service != null) { componentService.setService(service); } else { - warning("ServiceNotFoundForComponentService", component, component.getName(), componentService.getName()); + warning(monitor, "ServiceNotFoundForComponentService", component, component.getName(), componentService.getName()); } } @@ -579,7 +505,7 @@ public abstract class BaseConfigurationBuilderImpl { if (interfaceContract != null && !componentService.getInterfaceContract().equals(interfaceContract)) { if (!interfaceContractMapper.isCompatible(componentService.getInterfaceContract(), interfaceContract)) { - warning("ServiceIncompatibleComponentInterface", component, component.getName(), componentService.getName()); + warning(monitor, "ServiceIncompatibleComponentInterface", component, component.getName(), componentService.getName()); } } } else { @@ -610,24 +536,25 @@ public abstract class BaseConfigurationBuilderImpl { private void indexComponentPropertiesServicesAndReferences(Component component, Map componentServices, Map componentReferences, - Map componentProperties) { + Map componentProperties, + Monitor monitor) { for (ComponentService componentService : component.getServices()) { if (componentServices.containsKey(componentService.getName())) { - warning("DuplicateComponentServiceName", component, component.getName(), componentService.getName()); + warning(monitor, "DuplicateComponentServiceName", component, component.getName(), componentService.getName()); } else { componentServices.put(componentService.getName(), componentService); } } for (ComponentReference componentReference : component.getReferences()) { if (componentReferences.containsKey(componentReference.getName())) { - warning("DuplicateComponentReferenceName", component, component.getName(), componentReference.getName()); + warning(monitor, "DuplicateComponentReferenceName", component, component.getName(), componentReference.getName()); } else { componentReferences.put(componentReference.getName(), componentReference); } } for (ComponentProperty componentProperty : component.getProperties()) { if (componentProperties.containsKey(componentProperty.getName())) { - warning("DuplicateComponentPropertyName", component, component.getName(), componentProperty.getName()); + warning(monitor, "DuplicateComponentPropertyName", component, component.getName(), componentProperty.getName()); } else { componentProperties.put(componentProperty.getName(), componentProperty); } @@ -638,17 +565,18 @@ public abstract class BaseConfigurationBuilderImpl { private void indexImplementationPropertiesServicesAndReferences(Component component, Map services, Map references, - Map properties) { + Map properties, + Monitor monitor) { // First check that the component has a resolved implementation Implementation implementation = component.getImplementation(); if (implementation == null) { // A component must have an implementation - warning("NoComponentImplementation", component, component.getName()); + warning(monitor, "NoComponentImplementation", component, component.getName()); } else if (implementation.isUnresolved()) { // The implementation must be fully resolved - warning("UnresolvedComponentImplementation", component, component.getName(), implementation.getURI()); + warning(monitor, "UnresolvedComponentImplementation", component, component.getName(), implementation.getURI()); } else { @@ -656,21 +584,21 @@ public abstract class BaseConfigurationBuilderImpl { // duplicates for (Property property : implementation.getProperties()) { if (properties.containsKey(property.getName())) { - warning("DuplicateImplementationPropertyName", component, component.getName(), property.getName()); + warning(monitor, "DuplicateImplementationPropertyName", component, component.getName(), property.getName()); } else { properties.put(property.getName(), property); } } for (Service service : implementation.getServices()) { if (services.containsKey(service.getName())) { - warning("DuplicateImplementationServiceName", component, component.getName(), service.getName()); + warning(monitor, "DuplicateImplementationServiceName", component, component.getName(), service.getName()); } else { services.put(service.getName(), service); } } for (Reference reference : implementation.getReferences()) { if (references.containsKey(reference.getName())) { - warning("DuplicateImplementationReferenceName", component, component.getName(), reference.getName()); + warning(monitor, "DuplicateImplementationReferenceName", component, component.getName(), reference.getName()); } else { references.put(reference.getName(), reference); } @@ -850,7 +778,7 @@ public abstract class BaseConfigurationBuilderImpl { return null; } - private SCABinding createSCABinding() { + private SCABinding createSCABinding(SCADefinitions definitions) { SCABinding scaBinding = scaBindingFactory.createSCABinding(); // mark the bindings that are added automatically so that they can @@ -859,8 +787,8 @@ public abstract class BaseConfigurationBuilderImpl { ((AutomaticBinding)scaBinding).setIsAutomatic(true); } - if ( policyDefinitions != null ) { - for ( IntentAttachPointType attachPointType : policyDefinitions.getBindingTypes() ) { + if ( definitions != null ) { + for ( IntentAttachPointType attachPointType : definitions.getBindingTypes() ) { if ( attachPointType.getName().equals(BINDING_SCA_QNAME)) { ((IntentAttachPoint)scaBinding).setType(attachPointType); } @@ -875,9 +803,9 @@ public abstract class BaseConfigurationBuilderImpl { * * @param composite the composite to be configured */ - protected void configureBindingURIsAndNames(Composite composite) throws CompositeBuilderException { - configureBindingURIs(composite, null, null); - configureBindingNames(composite); + protected void configureBindingURIsAndNames(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + configureBindingURIs(composite, null, definitions, null, monitor); + configureBindingNames(composite, monitor); } /** @@ -888,8 +816,10 @@ public abstract class BaseConfigurationBuilderImpl { * @param composite the composite to be configured * @param defaultBindings list of default binding configurations */ - protected void configureBindingURIs(Composite composite, List defaultBindings) throws CompositeBuilderException { - configureBindingURIs(composite, null, defaultBindings); + protected void configureBindingURIs(Composite composite, + SCADefinitions definitions, List defaultBindings, + Monitor monitor) throws CompositeBuilderException { + configureBindingURIs(composite, null, definitions, defaultBindings, monitor); } /** @@ -912,7 +842,9 @@ public abstract class BaseConfigurationBuilderImpl { * @param uri the path to the composite provided through any nested composite component implementations * @param defaultBindings list of default binding configurations */ - private void configureBindingURIs(Composite composite, String uri, List defaultBindings) throws CompositeBuilderException { + private void configureBindingURIs(Composite composite, String uri, + SCADefinitions definitions, List defaultBindings, + Monitor monitor) throws CompositeBuilderException { String parentComponentURI = uri; @@ -932,7 +864,7 @@ public abstract class BaseConfigurationBuilderImpl { if (implementation instanceof Composite) { // Process nested composite - configureBindingURIs((Composite)implementation, componentURI, defaultBindings); + configureBindingURIs((Composite)implementation, componentURI, definitions, defaultBindings, monitor); } } @@ -943,14 +875,14 @@ public abstract class BaseConfigurationBuilderImpl { // Create default SCA binding if (service.getBindings().isEmpty()) { - SCABinding scaBinding = createSCABinding(); + SCABinding scaBinding = createSCABinding(definitions); service.getBindings().add(scaBinding); } // Initialize binding names and URIs for (Binding binding : service.getBindings()) { - constructBindingName(service, binding); - constructBindingURI(parentComponentURI, composite, service, binding, defaultBindings); + constructBindingName(service, binding, monitor); + constructBindingURI(parentComponentURI, composite, service, binding, defaultBindings, monitor); } } @@ -964,7 +896,8 @@ public abstract class BaseConfigurationBuilderImpl { indexImplementationPropertiesServicesAndReferences(component, services, references, - properties); + properties, + monitor); // Index component services, references and properties // Also check for duplicates @@ -977,29 +910,30 @@ public abstract class BaseConfigurationBuilderImpl { indexComponentPropertiesServicesAndReferences(component, componentServices, componentReferences, - componentProperties); + componentProperties, + monitor); // Reconcile component services/references/properties and // implementation services/references and create component // services/references/properties for the services/references // declared by the implementation - reconcileServices(component, services, componentServices); - reconcileReferences(component, references, componentReferences); - reconcileProperties(component, properties, componentProperties); + reconcileServices(component, services, componentServices, monitor); + reconcileReferences(component, references, componentReferences, monitor); + reconcileProperties(component, properties, componentProperties, monitor); for (ComponentService service : component.getServices()) { // Create default SCA binding if (service.getBindings().isEmpty()) { - SCABinding scaBinding = createSCABinding(); + SCABinding scaBinding = createSCABinding(definitions); service.getBindings().add(scaBinding); } // Initialize binding names and URIs for (Binding binding : service.getBindings()) { - constructBindingName(service, binding); - constructBindingURI(component, service, binding, defaultBindings); + constructBindingName(service, binding, monitor); + constructBindingURI(component, service, binding, defaultBindings, monitor); } } } @@ -1010,7 +944,7 @@ public abstract class BaseConfigurationBuilderImpl { * separate from configureBindingURIs() because configureBindingURIs() is called * by NodeConfigurationServiceImpl as well as by CompositeBuilderImpl. */ - private void configureBindingNames(Composite composite) { + private void configureBindingNames(Composite composite, Monitor monitor) { // Process nested composites recursively for (Component component : composite.getComponents()) { @@ -1019,7 +953,7 @@ public abstract class BaseConfigurationBuilderImpl { if (implementation instanceof Composite) { // Process nested composite - configureBindingNames((Composite)implementation); + configureBindingNames((Composite)implementation, monitor); } } @@ -1028,7 +962,7 @@ public abstract class BaseConfigurationBuilderImpl { if (service.getCallback() != null) { for (Binding binding : service.getCallback().getBindings()) { - constructBindingName(service, binding); + constructBindingName(service, binding, monitor); } } } @@ -1037,12 +971,12 @@ public abstract class BaseConfigurationBuilderImpl { for (Reference reference : composite.getReferences()) { for (Binding binding : reference.getBindings()) { - constructBindingName(reference, binding); + constructBindingName(reference, binding, monitor); } if (reference.getCallback() != null) { for (Binding binding : reference.getCallback().getBindings()) { - constructBindingName(reference, binding); + constructBindingName(reference, binding, monitor); } } } @@ -1055,7 +989,7 @@ public abstract class BaseConfigurationBuilderImpl { if (service.getCallback() != null) { for (Binding binding : service.getCallback().getBindings()) { - constructBindingName(service, binding); + constructBindingName(service, binding, monitor); } } } @@ -1065,12 +999,12 @@ public abstract class BaseConfigurationBuilderImpl { // Initialize binding names for (Binding binding : reference.getBindings()) { - constructBindingName(reference, binding); + constructBindingName(reference, binding, monitor); } if (reference.getCallback() != null) { for (Binding binding : reference.getCallback().getBindings()) { - constructBindingName(reference, binding); + constructBindingName(reference, binding, monitor); } } } @@ -1084,7 +1018,7 @@ public abstract class BaseConfigurationBuilderImpl { * @param contract the service or reference * @param binding */ - private void constructBindingName(Contract contract, Binding binding) { + private void constructBindingName(Contract contract, Binding binding, Monitor monitor) { // set the default binding name if one is required // if there is no name on the binding then set it to the service or reference name @@ -1103,7 +1037,7 @@ public abstract class BaseConfigurationBuilderImpl { continue; } if (binding.getName().equals(otherBinding.getName())) { - warning(contract instanceof Service ? "MultipleBindingsForService" : "MultipleBindingsForReference", + warning(monitor, contract instanceof Service ? "MultipleBindingsForService" : "MultipleBindingsForReference", binding, contract.getName(), binding.getName()); } } @@ -1121,12 +1055,13 @@ public abstract class BaseConfigurationBuilderImpl { * @param binding * @param defaultBindings */ - private void constructBindingURI(String parentComponentURI, Composite composite, Service service, Binding binding, List defaultBindings) + private void constructBindingURI(String parentComponentURI, Composite composite, Service service, + Binding binding, List defaultBindings, Monitor monitor) throws CompositeBuilderException{ // This is a composite service so there is no component to provide a component URI // The path to this composite (through nested composites) is used. boolean includeBindingName = composite.getServices().size() != 1; - constructBindingURI(parentComponentURI, service, binding, includeBindingName, defaultBindings); + constructBindingURI(parentComponentURI, service, binding, includeBindingName, defaultBindings, monitor); } /** @@ -1139,10 +1074,11 @@ public abstract class BaseConfigurationBuilderImpl { * @param binding the binding for which the URI is being constructed * @param defaultBindings the list of default binding configurations */ - private void constructBindingURI(Component component, Service service, Binding binding, List defaultBindings) + private void constructBindingURI(Component component, Service service, + Binding binding, List defaultBindings, Monitor monitor) throws CompositeBuilderException{ boolean includeBindingName = component.getServices().size() != 1; - constructBindingURI(component.getURI(), service, binding, includeBindingName, defaultBindings); + constructBindingURI(component.getURI(), service, binding, includeBindingName, defaultBindings, monitor); } /** @@ -1155,7 +1091,8 @@ public abstract class BaseConfigurationBuilderImpl { * @param defaultBindings the list of default binding configurations * @throws CompositeBuilderException */ - private void constructBindingURI(String componentURIString, Service service, Binding binding, boolean includeBindingName, List defaultBindings) + private void constructBindingURI(String componentURIString, Service service, Binding binding, + boolean includeBindingName, List defaultBindings, Monitor monitor) throws CompositeBuilderException{ try { @@ -1196,28 +1133,6 @@ public abstract class BaseConfigurationBuilderImpl { } // calculate the base URI - - // get the protocol for this binding/URI -/* some code that allows binding specific code to run. Being discussed on ML - BindingURICalculator uriCalculator = bindingURICalcualtorExtensionPoint.getBindingURICalculator(binding); - - if (uriCalculator != null){ - String protocol = uriCalculator.getProtocol(binding); - - // find the default binding with the right protocol - Binding defaultBinding = nodeInfo.getBindingDefault(binding, protocol); - - if (defaultBinding != null){ - baseURI = new URI(defaultBinding.getURI()); - } else { - baseURI = null; - } - - } else { - baseURI = null; - } -*/ - // as a simpler alternative to the above commented out code. URI baseURI = null; if (defaultBindings != null) { for (Binding defaultBinding : defaultBindings){ @@ -1230,7 +1145,7 @@ public abstract class BaseConfigurationBuilderImpl { binding.setURI(constructBindingURI(baseURI, componentURI, bindingURI, includeBindingName, bindingName)); } catch (URISyntaxException ex) { - error("URLSyntaxException", binding, componentURIString, service.getName(), binding.getName()); + error(monitor, "URLSyntaxException", binding, componentURIString, service.getName(), binding.getName()); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java index b05ec7e24e..b026eb0811 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java @@ -58,19 +58,15 @@ import org.apache.tuscany.sca.policy.util.PolicyComputationUtils; */ class BaseWireBuilderImpl { - private Monitor monitor; - private AssemblyFactory assemblyFactory; private EndpointFactory endpointFactory; private InterfaceContractMapper interfaceContractMapper; private EndpointBuilder endpointBuilder; - protected BaseWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - this.assemblyFactory = assemblyFactory; + protected BaseWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper) { this.endpointFactory = endpointFactory; this.interfaceContractMapper = interfaceContractMapper; - this.monitor = monitor; - this.endpointBuilder = new DefaultEndpointBuilder(monitor); + this.endpointBuilder = new DefaultEndpointBuilder(); } @@ -80,13 +76,13 @@ class BaseWireBuilderImpl { * * @param composite */ - protected void wireComponentReferences(Composite composite) { + protected void wireComponentReferences(Composite composite, Monitor monitor) { // Wire nested composites recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - wireComponentReferences((Composite)implementation); + wireComponentReferences((Composite)implementation, monitor); } } @@ -105,10 +101,10 @@ class BaseWireBuilderImpl { //computePolicies(composite); // Connect component references as described in wires - connectWires(composite, componentServices, componentReferences); + connectWires(composite, componentServices, componentReferences, monitor); // Connect component references to their targets - connectComponentReferences(composite, components, componentServices, componentReferences); + connectComponentReferences(composite, components, componentServices, componentReferences, monitor); // Validate that references are wired or promoted, according // to their multiplicity @@ -127,10 +123,10 @@ class BaseWireBuilderImpl { } } if (!promoted && !componentReference.isCallback()) { - warning("ReferenceWithoutTargets", composite, composite.getName().toString(), componentReference.getName()); + warning(monitor, "ReferenceWithoutTargets", composite, composite.getName().toString(), componentReference.getName()); } } else { - warning("TooManyReferenceTargets", composite, componentReference.getName()); + warning(monitor, "TooManyReferenceTargets", composite, componentReference.getName()); } } } @@ -206,7 +202,7 @@ class BaseWireBuilderImpl { * @param message * @param model */ - private void warning(String message, Object model, String... messageParameters) { + private void warning(Monitor monitor, String message, Object model, String... messageParameters) { if (monitor != null) { Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); monitor.problem(problem); @@ -220,7 +216,7 @@ class BaseWireBuilderImpl { * @param message * @param model */ - private void error(String message, Object model, Exception ex) { + private void error(Monitor monitor, String message, Object model, Exception ex) { if (monitor != null) { Problem problem = null; problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.ERROR, model, message, ex); @@ -235,12 +231,12 @@ class BaseWireBuilderImpl { * @param componentServices * @param problems */ - protected void connectCompositeReferencesAndServices(Composite composite){ + protected void connectCompositeReferencesAndServices(Composite composite, Monitor monitor){ // Wire nested composites recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - connectCompositeReferencesAndServices((Composite)implementation); + connectCompositeReferencesAndServices((Composite)implementation, monitor); } } @@ -252,8 +248,8 @@ class BaseWireBuilderImpl { // Connect composite services and references to the component // services and references that they promote - connectCompositeServices(composite, components, componentServices); - connectCompositeReferences(composite, componentReferences); + connectCompositeServices(composite, components, componentServices, monitor); + connectCompositeReferences(composite, componentReferences, monitor); } /** @@ -265,7 +261,8 @@ class BaseWireBuilderImpl { */ private void connectCompositeServices(Composite composite, Map components, - Map componentServices) { + Map componentServices, + Monitor monitor) { // Propagate interfaces from inner composite components' services to // their component services @@ -316,12 +313,12 @@ class BaseWireBuilderImpl { // Check the compositeServiceInterfaceContract and promotedServiceInterfaceContract boolean isCompatible = interfaceContractMapper.isCompatible(compositeServiceInterfaceContract, promotedServiceInterfaceContract); if(!isCompatible){ - warning("ServiceInterfaceNotSubSet", compositeService, promotedServiceName); + warning(monitor, "ServiceInterfaceNotSubSet", compositeService, promotedServiceName); } } } else { - warning("PromotedServiceNotFound", composite, composite.getName().toString(), promotedServiceName); + warning(monitor, "PromotedServiceNotFound", composite, composite.getName().toString(), promotedServiceName); } } } @@ -335,7 +332,8 @@ class BaseWireBuilderImpl { * @param componentReferences * @param problems */ - private void connectCompositeReferences(Composite composite, Map componentReferences) { + private void connectCompositeReferences(Composite composite, + Map componentReferences, Monitor monitor) { // Propagate interfaces from inner composite components' references to // their component references @@ -379,11 +377,11 @@ class BaseWireBuilderImpl { // Check the compositeInterfaceContract and componentInterfaceContract boolean isCompatible = interfaceContractMapper.isCompatible(compositeReferenceInterfaceContract, componentReferenceInterfaceContract); if (!isCompatible) { - warning("ReferenceInterfaceNotSubSet", compositeReference, componentReferenceName); + warning(monitor, "ReferenceInterfaceNotSubSet", compositeReference, componentReferenceName); } } } else { - warning("PromotedReferenceNotFound", composite, composite.getName().toString(), componentReferenceName); + warning(monitor, "PromotedReferenceNotFound", composite, composite.getName().toString(), componentReferenceName); } } } @@ -393,7 +391,8 @@ class BaseWireBuilderImpl { private List createComponentReferenceTargets(Composite composite, Map components, Map componentServices, - ComponentReference componentReference) { + ComponentReference componentReference, + Monitor monitor) { List endpoints = new ArrayList(); @@ -436,7 +435,7 @@ class BaseWireBuilderImpl { if (multiplicity == Multiplicity.ONE_N || multiplicity == Multiplicity.ONE_ONE) { if (endpoints.size() == 0) { - warning("NoComponentReferenceTarget", componentReference, componentReference.getName()); + warning(monitor, "NoComponentReferenceTarget", componentReference, componentReference.getName()); } } @@ -446,7 +445,7 @@ class BaseWireBuilderImpl { // binding elements with target endpoints specified via the target attribute for (Binding binding : componentReference.getBindings()) { if (binding.getURI() != null) { - warning("ReferenceEndPointMixWithTarget", composite, componentReference.getName()); + warning(monitor, "ReferenceEndPointMixWithTarget", composite, componentReference.getName()); } } @@ -485,7 +484,7 @@ class BaseWireBuilderImpl { // see if an sca binding is associated with a resolved target or not componentService.setUnresolved(false); } else { - warning("ReferenceIncompatibleInterface", composite, composite.getName().toString(), + warning(monitor, "ReferenceIncompatibleInterface", composite, composite.getName().toString(), componentReference.getName(), componentService.getName()); } } else { @@ -503,7 +502,7 @@ class BaseWireBuilderImpl { // The bindings will be cloned back into the reference when the // target is finally resolved. - warning("ComponentReferenceTargetNotFound", composite, + warning(monitor, "ComponentReferenceTargetNotFound", composite, composite.getName().toString(), componentService.getName()); } } @@ -546,7 +545,7 @@ class BaseWireBuilderImpl { // see if an sca binding is associated with a resolved target or not componentService.setUnresolved(false); } else { - warning("ComponentIncompatibleInterface", composite, + warning(monitor, "ComponentIncompatibleInterface", composite, componentReference.getName(), componentService.getName()); } } else { @@ -565,7 +564,7 @@ class BaseWireBuilderImpl { endpoint.getCandidateBindings().addAll(componentReference.getBindings()); endpoints.add(endpoint); - warning("ComponentReferenceTargetNotFound", composite, + warning(monitor, "ComponentReferenceTargetNotFound", composite, composite.getName().toString(), componentService.getName()); } } @@ -633,7 +632,7 @@ class BaseWireBuilderImpl { endpoint.getCandidateBindings().add(binding); endpoints.add(endpoint); } else { - warning("ReferenceIncompatibleInterface", + warning(monitor, "ReferenceIncompatibleInterface", composite, composite.getName().toString(), componentReference.getName(), @@ -668,14 +667,16 @@ class BaseWireBuilderImpl { private void connectComponentReferences(Composite composite, Map components, Map componentServices, - Map componentReferences){ + Map componentReferences, + Monitor monitor){ for (ComponentReference componentReference : componentReferences.values()) { List endpoints = createComponentReferenceTargets(composite, components, componentServices, - componentReference); + componentReference, + monitor); componentReference.getEndpoints().addAll(endpoints); @@ -691,7 +692,7 @@ class BaseWireBuilderImpl { if (endpointsRequireAutomaticResolution) { for(Endpoint endpoint : endpoints){ - endpointBuilder.build(endpoint); + endpointBuilder.build(endpoint, monitor); } // TODO - The following step ensures that the reference binding list remains @@ -890,7 +891,8 @@ class BaseWireBuilderImpl { */ private void connectWires(Composite composite, Map componentServices, - Map componentReferences) { + Map componentReferences, + Monitor monitor) { // For each wire, resolve the source reference, the target service, and // add it to the list of targets of the reference @@ -908,7 +910,7 @@ class BaseWireBuilderImpl { if (resolvedReference != null) { wire.setSource(resolvedReference); } else { - warning("WireSourceNotFound", composite, source.getName()); + warning(monitor, "WireSourceNotFound", composite, source.getName()); } } else { resolvedReference = wire.getSource(); @@ -921,7 +923,7 @@ class BaseWireBuilderImpl { if (resolvedService != null) { wire.setTarget(target); } else { - warning("WireTargetNotFound", composite, source.getName()); + warning(monitor, "WireTargetNotFound", composite, source.getName()); } } else { resolvedService = wire.getTarget(); @@ -939,7 +941,7 @@ class BaseWireBuilderImpl { //resolvedReference.getTargets().add(resolvedService); resolvedReference.getTargets().add(wire.getTarget()); } else { - warning("WireIncompatibleInterface", composite, source.getName(), target.getName()); + warning(monitor, "WireIncompatibleInterface", composite, source.getName(), target.getName()); } } } @@ -969,13 +971,13 @@ class BaseWireBuilderImpl { } - protected void computePolicies(Composite composite) { + protected void computePolicies(Composite composite, Monitor monitor) { // compute policies recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - computePolicies((Composite)implementation); + computePolicies((Composite)implementation, monitor); } } @@ -992,7 +994,7 @@ class BaseWireBuilderImpl { try { PolicyConfigurationUtil.computeImplementationIntentsAndPolicySets(implemenation, component); } catch ( Exception e ) { - error("PolicyRelatedException", implemenation, e); + error(monitor, "PolicyRelatedException", implemenation, e); //throw new RuntimeException(e); } @@ -1032,7 +1034,7 @@ class BaseWireBuilderImpl { PolicyConfigurationUtil.determineApplicableBindingPolicySets(componentService, null); } catch ( Exception e ) { - error("PolicyRelatedException", componentService, e); + error(monitor, "PolicyRelatedException", componentService, e); //throw new RuntimeException(e); } } @@ -1063,7 +1065,7 @@ class BaseWireBuilderImpl { false); } } catch ( Exception e ) { - error("PolicyRelatedException", componentReference, e); + error(monitor, "PolicyRelatedException", componentReference, e); //throw new RuntimeException(e); } } @@ -1083,7 +1085,7 @@ class BaseWireBuilderImpl { PolicyConfigurationUtil.computeBindingIntentsAndPolicySets(service); PolicyConfigurationUtil.determineApplicableBindingPolicySets(service, null); } catch ( Exception e ) { - error("PolicyRelatedException", service, e); + error(monitor, "PolicyRelatedException", service, e); //throw new RuntimeException(e); } @@ -1108,7 +1110,7 @@ class BaseWireBuilderImpl { PolicyConfigurationUtil.computeBindingIntentsAndPolicySets(reference); PolicyConfigurationUtil.determineApplicableBindingPolicySets(reference, null); } catch ( Exception e ) { - error("PolicyRelatedException", reference, e); + error(monitor, "PolicyRelatedException", reference, e); //throw new RuntimeException(e); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java index 0643421a45..cbd53187c4 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java @@ -41,28 +41,28 @@ public class ComponentConfigurationBuilderImpl extends BaseConfigurationBuilderI @Deprecated public ComponentConfigurationBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { super(assemblyFactory, scaBindingFactory, null, null, - interfaceContractMapper, policyDefinitions, monitor); + interfaceContractMapper); } public ComponentConfigurationBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { super(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, - interfaceContractMapper, policyDefinitions, monitor); + interfaceContractMapper); + } + + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentConfigurationBuilder"; } - public void build(Composite composite) throws CompositeBuilderException { - configureComponents(composite); + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + configureComponents(composite, definitions, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceBindingBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceBindingBuilderImpl.java index 4913705e91..d289bd3749 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceBindingBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceBindingBuilderImpl.java @@ -27,6 +27,7 @@ import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.builder.BindingBuilderExtension; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -36,17 +37,19 @@ import org.apache.tuscany.sca.monitor.Monitor; * @version $Rev$ $Date$ */ public class ComponentReferenceBindingBuilderImpl implements CompositeBuilder { - private Monitor monitor; - public ComponentReferenceBindingBuilderImpl(Monitor monitor) { - this.monitor = monitor; + public ComponentReferenceBindingBuilderImpl() { } - public void build(Composite composite) throws CompositeBuilderException { - buildReferenceBindings(composite); + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + buildReferenceBindings(composite, monitor); } - private void buildReferenceBindings(Composite composite) { + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentReferenceBindingBuilder"; + } + + private void buildReferenceBindings(Composite composite, Monitor monitor) { // find all the component reference bindings (starting at top level) for (Component component : composite.getComponents()) { @@ -63,7 +66,7 @@ public class ComponentReferenceBindingBuilderImpl implements CompositeBuilder { for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - buildReferenceBindings((Composite)implementation); + buildReferenceBindings((Composite)implementation, monitor); } } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferencePromotionWireBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferencePromotionWireBuilderImpl.java index c0702c87b3..61921a4df9 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferencePromotionWireBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferencePromotionWireBuilderImpl.java @@ -35,6 +35,7 @@ import org.apache.tuscany.sca.assembly.Reference; import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -45,16 +46,18 @@ import org.apache.tuscany.sca.monitor.Monitor; public class ComponentReferencePromotionWireBuilderImpl implements CompositeBuilder { private AssemblyFactory assemblyFactory; private EndpointFactory endpointFactory; - private Monitor monitor; - public ComponentReferencePromotionWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, Monitor monitor) { + public ComponentReferencePromotionWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory) { this.assemblyFactory = assemblyFactory; this.endpointFactory = endpointFactory; - this.monitor = monitor; } - public void build(Composite composite) throws CompositeBuilderException { - wireCompositeReferences(composite); + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + wireCompositeReferences(composite, monitor); + } + + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentReferencePromotionWireBuilder"; } /** @@ -63,13 +66,13 @@ public class ComponentReferencePromotionWireBuilderImpl implements CompositeBuil * @param composite * @param problems */ - private void wireCompositeReferences(Composite composite) { + private void wireCompositeReferences(Composite composite, Monitor monitor) { // Process nested composites recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - wireCompositeReferences((Composite)implementation); + wireCompositeReferences((Composite)implementation, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java index 927330b139..9fe08f9730 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceWireBuilderImpl.java @@ -24,6 +24,7 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.EndpointFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; @@ -34,11 +35,15 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class ComponentReferenceWireBuilderImpl extends BaseWireBuilderImpl implements CompositeBuilder { - public ComponentReferenceWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - super(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); + public ComponentReferenceWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper) { + super(assemblyFactory, endpointFactory, interfaceContractMapper); } - public void build(Composite composite) throws CompositeBuilderException { - wireComponentReferences(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentReferenceWireBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + wireComponentReferences(composite, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceBindingBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceBindingBuilderImpl.java index 12ea86eac3..a98522b2bf 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceBindingBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceBindingBuilderImpl.java @@ -24,11 +24,11 @@ import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.ComponentService; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.builder.BindingBuilder; import org.apache.tuscany.sca.assembly.builder.BindingBuilderExtension; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -38,23 +38,25 @@ import org.apache.tuscany.sca.monitor.Monitor; * @version $Rev$ $Date$ */ public class ComponentServiceBindingBuilderImpl implements CompositeBuilder { - private Monitor monitor; - public ComponentServiceBindingBuilderImpl(Monitor monitor) { - this.monitor = monitor; + public ComponentServiceBindingBuilderImpl() { } - public void build(Composite composite) throws CompositeBuilderException { - buildServiceBindings(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentServiceBindingBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + buildServiceBindings(composite, monitor); } - private void buildServiceBindings(Composite composite) { + private void buildServiceBindings(Composite composite, Monitor monitor) { // build bindings recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - buildServiceBindings((Composite)implementation); + buildServiceBindings((Composite)implementation, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServicePromotionBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServicePromotionBuilderImpl.java index d73286f7ab..282de1fbde 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServicePromotionBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServicePromotionBuilderImpl.java @@ -28,6 +28,8 @@ import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.monitor.Monitor; /** * A composite builder that handles the creation of promoted services. @@ -41,7 +43,11 @@ public class ComponentServicePromotionBuilderImpl implements CompositeBuilder { this.assemblyFactory = assemblyFactory; } - public void build(Composite composite) throws CompositeBuilderException { + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentServicePromotionBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Process nested composites recursively configureNestedCompositeServices(composite); diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingConfigurationBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingConfigurationBuilderImpl.java new file mode 100644 index 0000000000..9f618ecb51 --- /dev/null +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingConfigurationBuilderImpl.java @@ -0,0 +1,73 @@ +/* + * 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.sca.assembly.builder.impl; + +import java.util.List; + +import org.apache.tuscany.sca.assembly.AssemblyFactory; +import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Composite; +import org.apache.tuscany.sca.assembly.SCABindingFactory; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; +import org.apache.tuscany.sca.monitor.Monitor; + +/** + * A composite builder that performs any additional building steps that + * composite service bindings may need. Used for WSDL generation. + * + * @version $Rev$ $Date$ + */ +public class CompositeBindingConfigurationBuilderImpl extends BaseConfigurationBuilderImpl implements CompositeBuilder { + + public CompositeBindingConfigurationBuilderImpl(FactoryExtensionPoint factories, InterfaceContractMapper mapper) { + super(factories.getFactory(AssemblyFactory.class), + factories.getFactory(SCABindingFactory.class), + null, null, + mapper); + } + + public CompositeBindingConfigurationBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + InterfaceContractMapper interfaceContractMapper) { + super(assemblyFactory, + scaBindingFactory, + null, null, + interfaceContractMapper); + } + + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeServiceBindingBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + List defaultBindings = null; + for (Object x: composite.getExtensions()) { + if (x instanceof List) { + defaultBindings = (List)x; + } + } + configureBindingURIs(composite, definitions, defaultBindings, monitor); + } + +} diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java index 85af173c0d..030eb76eae 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java @@ -41,28 +41,27 @@ public class CompositeBindingURIBuilderImpl extends BaseConfigurationBuilderImpl @Deprecated public CompositeBindingURIBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { super(assemblyFactory, scaBindingFactory, null, null, - interfaceContractMapper, policyDefinitions, monitor); + interfaceContractMapper); } public CompositeBindingURIBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { super(assemblyFactory, scaBindingFactory, - documentBuilderFactory, transformerFactory, - interfaceContractMapper, policyDefinitions, monitor); + documentBuilderFactory, transformerFactory, interfaceContractMapper); } - public void build(Composite composite) throws CompositeBuilderException { - configureBindingURIsAndNames(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeBindingURIBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + configureBindingURIsAndNames(composite, definitions, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java index 282fe032ba..2225e81e4b 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java @@ -30,7 +30,7 @@ import org.apache.tuscany.sca.assembly.EndpointFactory; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; @@ -60,6 +60,16 @@ public class CompositeBuilderImpl implements CompositeBuilder { private CompositeBuilder componentServiceBindingBuilder; private CompositeBuilder componentReferenceBindingBuilder; + public CompositeBuilderImpl(FactoryExtensionPoint factories, InterfaceContractMapper mapper) { + this(factories.getFactory(AssemblyFactory.class), + factories.getFactory(EndpointFactory.class), + factories.getFactory(SCABindingFactory.class), + factories.getFactory(IntentAttachPointTypeFactory.class), + factories.getFactory(DocumentBuilderFactory.class), + factories.getFactory(TransformerFactory.class), + mapper); + } + /** * Constructs a new composite builder. * @@ -76,11 +86,9 @@ public class CompositeBuilderImpl implements CompositeBuilder { EndpointFactory endpointFactory, SCABindingFactory scaBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { this(assemblyFactory, endpointFactory, scaBindingFactory, intentAttachPointTypeFactory, - null, null, interfaceContractMapper, policyDefinitions, monitor); + null, null, interfaceContractMapper); } /** @@ -98,10 +106,9 @@ public class CompositeBuilderImpl implements CompositeBuilder { public CompositeBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, - InterfaceContractMapper interfaceContractMapper, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, - null, null, interfaceContractMapper, null, monitor); + null, null, interfaceContractMapper); } /** @@ -120,10 +127,9 @@ public class CompositeBuilderImpl implements CompositeBuilder { IntentAttachPointTypeFactory intentAttachPointTypeFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, - documentBuilderFactory, transformerFactory, interfaceContractMapper, null, monitor); + documentBuilderFactory, transformerFactory, interfaceContractMapper); } /** @@ -143,77 +149,79 @@ public class CompositeBuilderImpl implements CompositeBuilder { IntentAttachPointTypeFactory intentAttachPointTypeFactory, DocumentBuilderFactory documentBuilderFactory, TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { + InterfaceContractMapper interfaceContractMapper) { if (endpointFactory == null){ endpointFactory = new DefaultEndpointFactory(); } - compositeIncludeBuilder = new CompositeIncludeBuilderImpl(monitor); - componentReferenceWireBuilder = new ComponentReferenceWireBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); - componentReferencePromotionWireBuilder = new ComponentReferencePromotionWireBuilderImpl(assemblyFactory, endpointFactory, monitor); - compositeReferenceWireBuilder = new CompositeReferenceWireBuilderImpl(assemblyFactory, endpointFactory, monitor); - compositeCloneBuilder = new CompositeCloneBuilderImpl(monitor); - componentConfigurationBuilder = new ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); + compositeIncludeBuilder = new CompositeIncludeBuilderImpl(); + componentReferenceWireBuilder = new ComponentReferenceWireBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper); + componentReferencePromotionWireBuilder = new ComponentReferencePromotionWireBuilderImpl(assemblyFactory, endpointFactory); + compositeReferenceWireBuilder = new CompositeReferenceWireBuilderImpl(assemblyFactory, endpointFactory); + compositeCloneBuilder = new CompositeCloneBuilderImpl(); + componentConfigurationBuilder = new ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper); compositeServiceConfigurationBuilder = new CompositeServiceConfigurationBuilderImpl(assemblyFactory); compositeReferenceConfigurationBuilder = new CompositeReferenceConfigurationBuilderImpl(assemblyFactory); - compositeBindingURIBuilder = new CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); + compositeBindingURIBuilder = new CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper); componentServicePromotionBuilder = new ComponentServicePromotionBuilderImpl(assemblyFactory); compositeServicePromotionBuilder = new CompositeServicePromotionBuilderImpl(assemblyFactory); - compositePromotionBuilder = new CompositePromotionBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); - compositePolicyBuilder = new CompositePolicyBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); - componentServiceBindingBuilder = new ComponentServiceBindingBuilderImpl(monitor); - componentReferenceBindingBuilder = new ComponentReferenceBindingBuilderImpl(monitor); + compositePromotionBuilder = new CompositePromotionBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper); + compositePolicyBuilder = new CompositePolicyBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper); + componentServiceBindingBuilder = new ComponentServiceBindingBuilderImpl(); + componentReferenceBindingBuilder = new ComponentReferenceBindingBuilderImpl(); + } + + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeBuilder"; } - public void build(Composite composite) throws CompositeBuilderException { + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Collect and fuse includes - compositeIncludeBuilder.build(composite); + compositeIncludeBuilder.build(composite, definitions, monitor); // Expand nested composites - compositeCloneBuilder.build(composite); + compositeCloneBuilder.build(composite, definitions, monitor); // Configure all components - componentConfigurationBuilder.build(composite); + componentConfigurationBuilder.build(composite, definitions, monitor); // Connect composite services/references to promoted services/references - compositePromotionBuilder.build(composite); + compositePromotionBuilder.build(composite, definitions, monitor); // Compute the policies across the model hierarchy - compositePolicyBuilder.build(composite); + compositePolicyBuilder.build(composite, definitions, monitor); // Configure composite services - compositeServiceConfigurationBuilder.build(composite); + compositeServiceConfigurationBuilder.build(composite, definitions, monitor); // Configure composite references - compositeReferenceConfigurationBuilder.build(composite); + compositeReferenceConfigurationBuilder.build(composite, definitions, monitor); // Configure binding URIs - compositeBindingURIBuilder.build(composite); + compositeBindingURIBuilder.build(composite, definitions, monitor); // Create promoted component services - componentServicePromotionBuilder.build(composite); + componentServicePromotionBuilder.build(composite, definitions, monitor); // Create promoted composite services - compositeServicePromotionBuilder.build(composite); + compositeServicePromotionBuilder.build(composite, definitions, monitor); // Build component service binding-related information - componentServiceBindingBuilder.build(composite); + componentServiceBindingBuilder.build(composite, definitions, monitor); // Wire the components - componentReferenceWireBuilder.build(composite); + componentReferenceWireBuilder.build(composite, definitions, monitor); // Wire the promoted component references - componentReferencePromotionWireBuilder.build(composite); + componentReferencePromotionWireBuilder.build(composite, definitions, monitor); // Wire the composite references - compositeReferenceWireBuilder.build(composite); + compositeReferenceWireBuilder.build(composite, definitions, monitor); // Build component reference binding-related information - componentReferenceBindingBuilder.build(composite); + componentReferenceBindingBuilder.build(composite, definitions, monitor); // Fuse nested composites //FIXME do this later diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java index 5779ddbc78..d5c6b63454 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeCloneBuilderImpl.java @@ -28,6 +28,7 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -37,13 +38,17 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class CompositeCloneBuilderImpl implements CompositeBuilder { - public CompositeCloneBuilderImpl(Monitor monitor) { + public CompositeCloneBuilderImpl() { } - public void build(Composite composite) throws CompositeBuilderException { + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { expandCompositeImplementations(composite); } + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeCloneBuilder"; + } + /** * Expand composite component implementations. * diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java index 5f507ece1f..7980664493 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeIncludeBuilderImpl.java @@ -27,6 +27,9 @@ import java.util.Set; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -37,18 +40,22 @@ import org.apache.tuscany.sca.monitor.Problem.Severity; * @version $Rev$ $Date$ */ public class CompositeIncludeBuilderImpl implements CompositeBuilder { - - private Monitor monitor; - public CompositeIncludeBuilderImpl(Monitor monitor) { - this.monitor = monitor; + public CompositeIncludeBuilderImpl(FactoryExtensionPoint factories, InterfaceContractMapper mapper) { + } + + public CompositeIncludeBuilderImpl() { } - public void build(Composite composite) throws CompositeBuilderException { - fuseIncludes(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeIncludeBuilder"; } - private void warning(String message, Object model, String... messageParameters) { + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + fuseIncludes(composite, monitor); + } + + private void warning(Monitor monitor, String message, Object model, String... messageParameters) { if (monitor != null){ Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); monitor.problem(problem); @@ -61,16 +68,17 @@ public class CompositeIncludeBuilderImpl implements CompositeBuilder { * @param composite * @param includes */ - private void collectIncludes(Composite composite, List includes, Set visited) { + private void collectIncludes(Composite composite, List includes, + Set visited, Monitor monitor) { for (Composite include : composite.getIncludes()) { if (visited.contains(include)) { - warning("CompositeAlreadyIncluded", composite, include.getName().toString()); + warning(monitor, "CompositeAlreadyIncluded", composite, include.getName().toString()); continue; } includes.add(include); visited.add(include); - collectIncludes(include, includes, visited); + collectIncludes(include, includes, visited, monitor); } } @@ -79,13 +87,14 @@ public class CompositeIncludeBuilderImpl implements CompositeBuilder { * * @param composite */ - private void fuseIncludes(Composite composite) { + private void fuseIncludes(Composite composite, Monitor monitor) { // First collect all includes List includes = new ArrayList(); Set visited = new HashSet(); visited.add(composite); - collectIncludes(composite, includes, visited); + collectIncludes(composite, includes, visited, monitor); + // Then clone them for (Composite include : includes) { Composite clone; diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java index 76ed861167..ce3c028933 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java @@ -25,6 +25,7 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.EndpointFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; @@ -37,11 +38,15 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class CompositePolicyBuilderImpl extends BaseWireBuilderImpl implements CompositeBuilder { - public CompositePolicyBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - super(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); + public CompositePolicyBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper) { + super(assemblyFactory, endpointFactory, interfaceContractMapper); } - public void build(Composite composite) throws CompositeBuilderException { - computePolicies(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositePolicyBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + computePolicies(composite, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java index 5a6437b3a3..3f786377a9 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePromotionBuilderImpl.java @@ -25,6 +25,7 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.EndpointFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; @@ -36,11 +37,15 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class CompositePromotionBuilderImpl extends BaseWireBuilderImpl implements CompositeBuilder { - public CompositePromotionBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - super(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); + public CompositePromotionBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, InterfaceContractMapper interfaceContractMapper) { + super(assemblyFactory, endpointFactory, interfaceContractMapper); } - public void build(Composite composite) throws CompositeBuilderException { - connectCompositeReferencesAndServices(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositePromotionBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + connectCompositeReferencesAndServices(composite, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java index 41462b151d..09c57b617f 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceConfigurationBuilderImpl.java @@ -31,6 +31,8 @@ import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.builder.AutomaticBinding; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.monitor.Monitor; /** * A composite builder that handles the configuration of composite references. @@ -44,7 +46,11 @@ public class CompositeReferenceConfigurationBuilderImpl implements CompositeBuil this.assemblyFactory = assemblyFactory; } - public void build(Composite composite) throws CompositeBuilderException { + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeReferenceConfigurationBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Process nested composites recursively configureNestedCompositeReferences(composite); diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceWireBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceWireBuilderImpl.java index 8aa1897311..7d59964efa 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceWireBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeReferenceWireBuilderImpl.java @@ -22,16 +22,15 @@ package org.apache.tuscany.sca.assembly.builder.impl; import java.util.List; import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.ComponentReference; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.CompositeReference; import org.apache.tuscany.sca.assembly.EndpointFactory; -import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.Reference; import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -42,12 +41,14 @@ import org.apache.tuscany.sca.monitor.Monitor; public class CompositeReferenceWireBuilderImpl implements CompositeBuilder { private AssemblyFactory assemblyFactory; private EndpointFactory endpointFactory; - private Monitor monitor; - public CompositeReferenceWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory, Monitor monitor) { + public CompositeReferenceWireBuilderImpl(AssemblyFactory assemblyFactory, EndpointFactory endpointFactory) { this.assemblyFactory = assemblyFactory; this.endpointFactory = endpointFactory; - this.monitor = monitor; + } + + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.ComponentReferenceWireBuilder"; } /** @@ -55,7 +56,7 @@ public class CompositeReferenceWireBuilderImpl implements CompositeBuilder { * * @param composite */ - public void build(Composite composite) throws CompositeBuilderException { + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Process composite references declared in this composite for (Reference reference : composite.getReferences()) { diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceBindingBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceBindingBuilderImpl.java index 3aa9f3bf85..e0d3a91809 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceBindingBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceBindingBuilderImpl.java @@ -28,6 +28,7 @@ import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.builder.BindingBuilderExtension; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -37,23 +38,25 @@ import org.apache.tuscany.sca.monitor.Monitor; * @version $Rev$ $Date$ */ public class CompositeServiceBindingBuilderImpl implements CompositeBuilder { - private Monitor monitor; - public CompositeServiceBindingBuilderImpl(Monitor monitor) { - this.monitor = monitor; + public CompositeServiceBindingBuilderImpl() { } - public void build(Composite composite) throws CompositeBuilderException { - buildServiceBindings(composite); + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeServiceBindingBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { + buildServiceBindings(composite, monitor); } - private void buildServiceBindings(Composite composite) { + private void buildServiceBindings(Composite composite, Monitor monitor) { // build bindings recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { - buildServiceBindings((Composite)implementation); + buildServiceBindings((Composite)implementation, monitor); } } diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java index a3f31ea2fa..c5f109c473 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServiceConfigurationBuilderImpl.java @@ -31,6 +31,8 @@ import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.builder.AutomaticBinding; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.monitor.Monitor; /** * A composite builder that handles the configuration of composite services. @@ -44,7 +46,11 @@ public class CompositeServiceConfigurationBuilderImpl implements CompositeBuilde this.assemblyFactory = assemblyFactory; } - public void build(Composite composite) throws CompositeBuilderException { + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeServiceConfigurationBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Process nested composites recursively configureNestedCompositeServices(composite); diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServicePromotionBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServicePromotionBuilderImpl.java index ea0e88ac24..07efb399c3 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServicePromotionBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeServicePromotionBuilderImpl.java @@ -27,6 +27,8 @@ import org.apache.tuscany.sca.assembly.CompositeService; import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.definitions.SCADefinitions; +import org.apache.tuscany.sca.monitor.Monitor; /** * A composite builder that handles the creation of promoted composite services. @@ -40,7 +42,11 @@ public class CompositeServicePromotionBuilderImpl implements CompositeBuilder { this.assemblyFactory = assemblyFactory; } - public void build(Composite composite) throws CompositeBuilderException { + public String getID() { + return "org.apache.tuscany.sca.assembly.builder.CompositeServicePromotionBuilder"; + } + + public void build(Composite composite, SCADefinitions definitions, Monitor monitor) throws CompositeBuilderException { // Process top level composite services for (Service service : composite.getServices()) { diff --git a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java index ce9a64c8d8..52e64c5067 100644 --- a/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java +++ b/branches/sca-equinox/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java @@ -35,20 +35,17 @@ import org.apache.tuscany.sca.monitor.Problem.Severity; */ public abstract class EndpointBuilderImpl implements EndpointBuilder { - private Monitor monitor; - - public EndpointBuilderImpl (Monitor monitor){ - this.monitor = monitor; + public EndpointBuilderImpl (){ } - private void warning(String message, Object model, String... messageParameters) { + private void warning(Monitor monitor, String message, Object model, String... messageParameters) { if (monitor != null){ Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); monitor.problem(problem); } } - private void error(String message, Object model, Exception ex) { + private void error(Monitor monitor, String message, Object model, Exception ex) { if (monitor != null){ Problem problem = null; problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.ERROR, model, message, ex); @@ -60,7 +57,7 @@ public abstract class EndpointBuilderImpl implements EndpointBuilder { * Resolve an endpoint against the provided target information and the * set of candidate bindings. */ - public void build(Endpoint endpoint) { + public void build(Endpoint endpoint, Monitor monitor) { // If this endpoint is not fully configured then don't try and resolve it if (endpoint.getTargetComponentService() == null){ @@ -90,7 +87,7 @@ public abstract class EndpointBuilderImpl implements EndpointBuilder { PolicyConfigurationUtil.determineApplicableBindingPolicySets(endpoint.getSourceComponentReference(), endpoint.getTargetComponentService()); } catch ( Exception e ) { - error("PolicyRelatedException", endpoint, e); + error(monitor, "PolicyRelatedException", endpoint, e); } @@ -100,7 +97,7 @@ public abstract class EndpointBuilderImpl implements EndpointBuilder { endpoint.getCandidateBindings(), endpoint.getTargetComponentService().getBindings()); if (resolvedBinding == null) { - warning("NoMatchingBinding", + warning(monitor, "NoMatchingBinding", endpoint.getSourceComponentReference(), endpoint.getSourceComponentReference().getName(), endpoint.getTargetComponentService().getName()); @@ -114,7 +111,7 @@ public abstract class EndpointBuilderImpl implements EndpointBuilder { endpoint.getSourceComponentReference().getCallback().getBindings(), endpoint.getTargetComponentService().getCallback().getBindings()); if (resolvedBinding == null) { - warning("NoMatchingCallbackBinding", + warning(monitor, "NoMatchingCallbackBinding", endpoint.getSourceComponentReference(), endpoint.getSourceComponentReference().getName(), endpoint.getTargetComponentService().getName()); diff --git a/branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder b/branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder new file mode 100644 index 0000000000..9fbabd0c3f --- /dev/null +++ b/branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder @@ -0,0 +1,35 @@ +# 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. + +org.apache.tuscany.sca.assembly.builder.impl.ComponentConfigurationBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.ComponentConfigurationBuilder +org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.ComponentReferenceBindingBuilder +org.apache.tuscany.sca.assembly.builder.impl.ComponentReferencePromotionWireBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.ComponentReferencePromotionWireBuilder +org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceWireBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.ComponentReferenceWireBuilder +org.apache.tuscany.sca.assembly.builder.impl.ComponentServiceBindingBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.ComponentServiceBindingBuilder +org.apache.tuscany.sca.assembly.builder.impl.ComponentServicePromotionBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.ComponentServicePromotionBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeBindingURIBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeCloneBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeCloneBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeIncludeBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeIncludeBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositePolicyBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositePolicyBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositePromotionBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositePromotionBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeReferenceConfigurationBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeReferenceConfigurationBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeReferenceWireBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeReferenceWireBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeServiceBindingBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeServiceBindingBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeServiceConfigurationBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeServiceConfigurationBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeServicePromotionBuilderImpl;id=org.apache.tuscany.sca.assembly.builder.CompositeServicePromotionBuilder +org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingConfigurationBuilderImpl;id=org.apache.tuscany.assembly.builder.CompositeBindingConfigurationBuilder diff --git a/branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint b/branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint new file mode 100644 index 0000000000..693834e23d --- /dev/null +++ b/branches/sca-equinox/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint @@ -0,0 +1,18 @@ +# 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. + +org.apache.tuscany.sca.assembly.builder.DefaultCompositeBuilderExtensionPoint \ No newline at end of file diff --git a/branches/sca-equinox/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderTestCase.java b/branches/sca-equinox/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderTestCase.java index fabafc998b..5d7fff41af 100644 --- a/branches/sca-equinox/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderTestCase.java +++ b/branches/sca-equinox/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderTestCase.java @@ -68,7 +68,7 @@ public class CompositeBuilderTestCase extends TestCase { c.setName(new QName("http://foo", "C")); c.getIncludes().add(c1); - new CompositeIncludeBuilderImpl(null).build(c); + new CompositeIncludeBuilderImpl().build(c, null, null); assertTrue(c.getComponents().get(0).getName().equals("a")); assertTrue(c.getComponents().get(1).getName().equals("b")); @@ -110,7 +110,7 @@ public class CompositeBuilderTestCase extends TestCase { z.setImplementation(c1); c.getComponents().add(z); - new CompositeCloneBuilderImpl(null).build(c); + new CompositeCloneBuilderImpl().build(c, null, null); assertTrue(c.getComponents().get(0).getImplementation() != c1); assertTrue(c.getComponents().get(1).getImplementation() != c2); diff --git a/branches/sca-equinox/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java b/branches/sca-equinox/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java index b6b805e383..2651324ccf 100644 --- a/branches/sca-equinox/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java +++ b/branches/sca-equinox/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingProviderFactory.java @@ -20,8 +20,8 @@ package org.apache.tuscany.sca.binding.atom.provider; import org.apache.tuscany.sca.binding.atom.AtomBinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.databinding.Mediator; import org.apache.tuscany.sca.databinding.TransformerExtensionPoint; @@ -50,7 +50,7 @@ public class AtomBindingProviderFactory implements BindingProviderFactory { @@ -35,7 +35,7 @@ public class GDataImplementationProcessor implements StAXArtifactProcessor { private PolicyAttachPointProcessor policyProcessor; private Monitor monitor; - public JMSBindingProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public JMSBindingProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.policyFactory = modelFactories.getFactory(PolicyFactory.class); this.policyProcessor = new PolicyAttachPointProcessor(policyFactory); this.monitor = monitor; diff --git a/branches/sca-equinox/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingProviderFactory.java b/branches/sca-equinox/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingProviderFactory.java index b9cababcab..216d8f3abe 100644 --- a/branches/sca-equinox/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingProviderFactory.java +++ b/branches/sca-equinox/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingProviderFactory.java @@ -20,8 +20,8 @@ package org.apache.tuscany.sca.binding.rss.provider; import org.apache.tuscany.sca.binding.rss.RSSBinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.databinding.Mediator; import org.apache.tuscany.sca.databinding.TransformerExtensionPoint; @@ -50,7 +50,7 @@ public class RSSBindingProviderFactory implements BindingProviderFactory, C protected static final String BINDING_SCA = "binding.sca"; protected static final QName BINDING_SCA_QNAME = new QName(Constants.SCA10_NS, BINDING_SCA); - public SCABindingProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public SCABindingProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.policyFactory = modelFactories.getFactory(PolicyFactory.class); this.scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); policyProcessor = new PolicyAttachPointProcessor(policyFactory); diff --git a/branches/sca-equinox/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java b/branches/sca-equinox/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java index a7c7c15eaa..95cff2ac28 100644 --- a/branches/sca-equinox/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java +++ b/branches/sca-equinox/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java @@ -34,12 +34,12 @@ import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl; @@ -64,14 +64,14 @@ public class ReadTestCase extends TestCase { StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); } @@ -96,7 +96,7 @@ public class ReadTestCase extends TestCase { Composite composite = (Composite)staxProcessor.read(reader); assertNotNull(composite); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, null); SCABinding referenceSCABinding = (SCABinding) composite.getComponents().get(0).getReferences().get(0).getBindings().get(0); SCABinding serviceSCABinding = (SCABinding) composite.getComponents().get(1).getServices().get(0).getBindings().get(0); diff --git a/branches/sca-equinox/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java b/branches/sca-equinox/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java index 5dda74f72e..e0f214f395 100644 --- a/branches/sca-equinox/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java +++ b/branches/sca-equinox/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java @@ -20,8 +20,8 @@ package org.apache.tuscany.sca.binding.sca.impl; import org.apache.tuscany.sca.assembly.SCABinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; import org.apache.tuscany.sca.provider.ServiceBindingProvider; diff --git a/branches/sca-equinox/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java b/branches/sca-equinox/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java index ff396566d6..ecb98ab7d6 100644 --- a/branches/sca-equinox/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java +++ b/branches/sca-equinox/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java @@ -33,11 +33,11 @@ import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; import org.apache.tuscany.sca.assembly.xml.CompositeModelResolver; import org.apache.tuscany.sca.binding.sca.impl.SCABindingFactoryImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl; @@ -67,14 +67,14 @@ public class SCABindingTestCase { resolver = new CompositeModelResolver(null, null); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); } @@ -98,7 +98,7 @@ public class SCABindingTestCase { staxProcessor.resolve(composite, resolver); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, null); SCABinding referenceSCABinding = (SCABinding) composite.getComponents().get(0).getReferences().get(0).getBindings().get(0); SCABinding serviceSCABinding = (SCABinding) composite.getComponents().get(1).getServices().get(0).getBindings().get(0); diff --git a/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/Axis2BasicAuthenticationPolicyProcessor.java b/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/Axis2BasicAuthenticationPolicyProcessor.java index 019d59b80b..52d49dacf3 100644 --- a/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/Axis2BasicAuthenticationPolicyProcessor.java +++ b/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/basic/Axis2BasicAuthenticationPolicyProcessor.java @@ -27,12 +27,12 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -45,7 +45,7 @@ public class Axis2BasicAuthenticationPolicyProcessor implements StAXArtifactProc return Axis2BasicAuthenticationPolicy.AXIS2_BASIC_AUTHENTICATION_POLICY_QNAME; } - public Axis2BasicAuthenticationPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public Axis2BasicAuthenticationPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { } diff --git a/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProcessor.java b/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProcessor.java index 6478fbedad..912a7cbc55 100644 --- a/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProcessor.java +++ b/branches/sca-equinox/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProcessor.java @@ -31,12 +31,12 @@ import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -50,7 +50,7 @@ public class Axis2ConfigParamPolicyProcessor implements StAXArtifactProcessor { - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private ServletHost servletHost; private List policyHandlerClassnames = null; private DataBindingExtensionPoint dataBindings; @@ -55,7 +55,7 @@ public class Axis2BindingProviderFactory implements BindingProviderFactory policyHandlerClassnames, DataBindingExtensionPoint dataBindings) { diff --git a/branches/sca-equinox/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java b/branches/sca-equinox/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java index 5b26290732..1729a9210a 100644 --- a/branches/sca-equinox/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java +++ b/branches/sca-equinox/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.axiom.om.OMElement; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.host.http.ServletHost; import org.apache.tuscany.sca.interfacedef.InterfaceContract; @@ -42,7 +42,7 @@ public class Axis2ServiceBindingProvider implements ServiceBindingProvider { RuntimeComponentService service, WebServiceBinding wsBinding, ServletHost servletHost, - ModelFactoryExtensionPoint modelFactories, + FactoryExtensionPoint modelFactories, List policyHandlerClassnames, DataBindingExtensionPoint dataBindings) { diff --git a/branches/sca-equinox/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGenerator.java b/branches/sca-equinox/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGenerator.java index b9bb5ac6d3..9a89f20826 100644 --- a/branches/sca-equinox/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGenerator.java +++ b/branches/sca-equinox/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGenerator.java @@ -33,10 +33,10 @@ import org.apache.tuscany.sca.assembly.AbstractContract; import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.Contract; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.resolver.ResolverExtension; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; @@ -185,7 +185,7 @@ public class BindingWSDLGenerator { WebServiceBinding wsBinding, ExtensionPointRegistry extensionPoints, Monitor monitor) { - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); DataBindingExtensionPoint dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class); WSDLFactory wsdlFactory = modelFactories.getFactory(WSDLFactory.class); XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class); diff --git a/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java b/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java index e474c7a318..f7ed5058c5 100644 --- a/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java +++ b/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java @@ -27,7 +27,7 @@ import javax.wsdl.PortType; import junit.framework.TestCase; -import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint; import org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor; import org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; @@ -50,7 +50,7 @@ import org.osoa.sca.annotations.Remotable; public class BindingWSDLGeneratorTestCase extends TestCase { public void testCreateWSDLInterfaceContract() throws InvalidInterfaceException { - DefaultModelFactoryExtensionPoint modelFactories = new DefaultModelFactoryExtensionPoint(); + DefaultFactoryExtensionPoint modelFactories = new DefaultFactoryExtensionPoint(); WSDLFactory wsdlFactory = modelFactories.getFactory(WSDLFactory.class); XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class); DefaultJavaInterfaceFactory factory = new DefaultJavaInterfaceFactory(); diff --git a/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java b/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java index f1e12f8ce0..c51ab8af99 100644 --- a/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java +++ b/branches/sca-equinox/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java @@ -24,7 +24,7 @@ import java.io.StringWriter; import javax.wsdl.Definition; import javax.wsdl.xml.WSDLWriter; -import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint; import org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor; import org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint; import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory; @@ -50,7 +50,7 @@ public class Interface2WSDLGeneratorTestCase { JAXWSFaultExceptionMapper faultExceptionMapper = new JAXWSFaultExceptionMapper(dataBindings, null); new JAXWSJavaInterfaceProcessor(dataBindings, faultExceptionMapper, null).visitInterface(iface); new DataBindingJavaInterfaceProcessor(dataBindings).visitInterface(iface); - DefaultModelFactoryExtensionPoint modelFactories = new DefaultModelFactoryExtensionPoint(); + DefaultFactoryExtensionPoint modelFactories = new DefaultFactoryExtensionPoint(); WSDLDefinition wsdlDefinition = new DefaultWSDLFactory(modelFactories).createWSDLDefinition(); DefaultXSDFactory factory = new DefaultXSDFactory(); Interface2WSDLGenerator generator = new Interface2WSDLGenerator(false, new XSDModelResolver(null, null), dataBindings, factory, null); diff --git a/branches/sca-equinox/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java b/branches/sca-equinox/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java index f16eb5333e..cf20f37bf6 100644 --- a/branches/sca-equinox/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java +++ b/branches/sca-equinox/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java @@ -41,13 +41,13 @@ import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor; import org.apache.tuscany.sca.binding.ws.DefaultWebServiceBindingFactory; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition; @@ -80,7 +80,7 @@ public class WebServiceBindingProcessor implements StAXArtifactProcessor map = new HashMap(); - public TestModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public TestModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { } public T resolveModel(Class modelClass, T unresolved) { diff --git a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java index 61c73bf2f8..fecb8406ca 100644 --- a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java +++ b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java @@ -34,11 +34,11 @@ import java.util.Map; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.java.JavaImport; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.DefaultDelegatingModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; /** @@ -55,7 +55,7 @@ public class ClassLoaderModelResolver extends URLClassLoader implements ModelRes return parentClassLoader; } - public ClassLoaderModelResolver(final Contribution contribution, ModelFactoryExtensionPoint modelFactories) throws MalformedURLException { + public ClassLoaderModelResolver(final Contribution contribution, FactoryExtensionPoint modelFactories) throws MalformedURLException { super(new URL[] {new URL(contribution.getLocation())}, parentClassLoader()); this.contribution = contribution; diff --git a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java index 962512a745..d11753f3aa 100644 --- a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java +++ b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java @@ -27,9 +27,9 @@ import java.util.HashMap; import java.util.Map; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; /** @@ -44,7 +44,7 @@ public class ClassReferenceModelResolver implements ModelResolver { private ModelResolver osgiResolver; - public ClassReferenceModelResolver(final Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public ClassReferenceModelResolver(final Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; if (this.contribution != null) { // Allow privileged access to get ClassLoader. Requires RuntimePermission in security policy. @@ -84,7 +84,7 @@ public class ClassReferenceModelResolver implements ModelResolver { Class.forName("org.apache.tuscany.sca.contribution.osgi.impl.OSGiClassReferenceModelResolver"); if (osgiResolverClass != null) { Constructor constructor = - osgiResolverClass.getConstructor(Contribution.class, ModelFactoryExtensionPoint.class); + osgiResolverClass.getConstructor(Contribution.class, FactoryExtensionPoint.class); this.osgiResolver = (ModelResolver)constructor.newInstance(contribution, modelFactories); } } catch (Throwable e) { diff --git a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java index a388ded84c..b21ad6642c 100644 --- a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java +++ b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportProcessor.java @@ -27,7 +27,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.java.JavaExport; import org.apache.tuscany.sca.contribution.java.JavaImportExportFactory; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; @@ -35,6 +34,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -54,7 +54,7 @@ public class JavaExportProcessor implements StAXArtifactProcessor { private final JavaImportExportFactory factory; private final Monitor monitor; - public JavaExportProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public JavaExportProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { super(); this.factory = modelFactories.getFactory(JavaImportExportFactory.class); this.monitor = monitor; diff --git a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportExportListener.java b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportExportListener.java index 47cdc9767b..4a21ad3291 100644 --- a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportExportListener.java +++ b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportExportListener.java @@ -29,13 +29,13 @@ import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.ContributionFactory; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.java.JavaExport; import org.apache.tuscany.sca.contribution.java.JavaImport; import org.apache.tuscany.sca.contribution.resolver.DefaultImportAllModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionListener; import org.apache.tuscany.sca.contribution.service.ContributionRepository; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * Java Import/Export contribution listener @@ -51,7 +51,7 @@ public class JavaImportExportListener implements ContributionListener { /** * Constructs a new JavaImportExportListener */ - public JavaImportExportListener(ModelFactoryExtensionPoint modelFactories) { + public JavaImportExportListener(FactoryExtensionPoint modelFactories) { contributionFactory = modelFactories.getFactory(ContributionFactory.class); } diff --git a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java index f5f2bc3bad..7a692c1687 100644 --- a/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java +++ b/branches/sca-equinox/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportProcessor.java @@ -27,7 +27,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.java.JavaImport; import org.apache.tuscany.sca.contribution.java.JavaImportExportFactory; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; @@ -35,6 +34,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -55,7 +55,7 @@ public class JavaImportProcessor implements StAXArtifactProcessor { private final JavaImportExportFactory factory; private final Monitor monitor; - public JavaImportProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public JavaImportProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { super(); this.factory = modelFactories.getFactory(JavaImportExportFactory.class); this.monitor = monitor; diff --git a/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceArtifactResolverTestCase.java b/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceArtifactResolverTestCase.java index 1405ad4bd5..d4f6fec2b0 100644 --- a/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceArtifactResolverTestCase.java +++ b/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceArtifactResolverTestCase.java @@ -21,12 +21,12 @@ package org.apache.tuscany.sca.contribution.java.impl; import junit.framework.TestCase; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * Test ClassReferenceArtifactResolver. @@ -42,7 +42,7 @@ public class ClassReferenceArtifactResolverTestCase extends TestCase { ModelResolverExtensionPoint resolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); resolvers.addResolver(ClassReference.class, ClassReferenceModelResolver.class); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); resolver = new ExtensibleModelResolver(null, resolvers, modelFactories); } diff --git a/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java b/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java index 3ae161642d..ef2b646ad9 100644 --- a/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java +++ b/branches/sca-equinox/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java @@ -28,12 +28,12 @@ import java.util.ArrayList; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.java.JavaExport; import org.apache.tuscany.sca.contribution.java.JavaImport; import org.apache.tuscany.sca.contribution.java.JavaImportExportFactory; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -51,7 +51,7 @@ public class ContributionClassLoaderTestCase { @Before public void setUp() throws Exception { ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); contributionFactory = modelFactories.getFactory(ContributionFactory.class); javaImportExportFactory = modelFactories.getFactory(JavaImportExportFactory.class); } diff --git a/branches/sca-equinox/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java b/branches/sca-equinox/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java index d3a2f41f85..0546cd4d4b 100644 --- a/branches/sca-equinox/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java +++ b/branches/sca-equinox/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceExportProcessor.java @@ -27,7 +27,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.namespace.NamespaceExport; import org.apache.tuscany.sca.contribution.namespace.NamespaceImportExportFactory; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; @@ -35,6 +34,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -54,7 +54,7 @@ public class NamespaceExportProcessor implements StAXArtifactProcessor map = new HashMap(); - public ArtifactModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public ArtifactModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; } diff --git a/branches/sca-equinox/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java b/branches/sca-equinox/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java index e72b66afce..f9a86406be 100644 --- a/branches/sca-equinox/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java +++ b/branches/sca-equinox/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java @@ -27,7 +27,6 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.resource.ResourceExport; @@ -35,6 +34,7 @@ import org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -54,7 +54,7 @@ public class ResourceExportProcessor implements StAXArtifactProcessor { private static final QName ANY_ATTRIBUTE = new QName("http://www.w3.org/2001/XMLSchema", "anyAttribute"); - public AnyAttributeProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public AnyAttributeProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { } diff --git a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java index 4ca98228ec..c69f685def 100644 --- a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java +++ b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyElementProcessor.java @@ -32,11 +32,11 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -58,7 +58,7 @@ public class AnyElementProcessor implements StAXArtifactProcessor { private Document document; private Monitor monitor; - public AnyElementProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public AnyElementProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); this.monitor = monitor; } diff --git a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionGeneratedMetadataDocumentProcessor.java b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionGeneratedMetadataDocumentProcessor.java index a4cf1b3566..ff7bf7068a 100644 --- a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionGeneratedMetadataDocumentProcessor.java +++ b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionGeneratedMetadataDocumentProcessor.java @@ -20,8 +20,8 @@ package org.apache.tuscany.sca.contribution.xml; import javax.xml.stream.XMLInputFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -37,7 +37,7 @@ public class ContributionGeneratedMetadataDocumentProcessor extends Contribution super(inputFactory, staxProcessor, monitor); } - public ContributionGeneratedMetadataDocumentProcessor(ModelFactoryExtensionPoint modelFactories, + public ContributionGeneratedMetadataDocumentProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor staxProcessor, Monitor monitor) { super(modelFactories, staxProcessor, monitor); diff --git a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java index 3ab00233ab..7811d31654 100644 --- a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java +++ b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java @@ -29,12 +29,12 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import org.apache.tuscany.sca.contribution.ContributionMetadata; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -58,7 +58,7 @@ public class ContributionMetadataDocumentProcessor implements URLArtifactProcess this.monitor = monitor; } - public ContributionMetadataDocumentProcessor(ModelFactoryExtensionPoint modelFactories, + public ContributionMetadataDocumentProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor staxProcessor, Monitor monitor) { this.inputFactory = modelFactories.getFactory(XMLInputFactory.class); diff --git a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java index 1c49eabaf5..1a0ee97ed9 100644 --- a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java +++ b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java @@ -34,13 +34,13 @@ import org.apache.tuscany.sca.contribution.ContributionFactory; import org.apache.tuscany.sca.contribution.ContributionMetadata; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -88,7 +88,7 @@ public class ContributionMetadataProcessor extends BaseStAXArtifactProcessor imp } } - public ContributionMetadataProcessor(ModelFactoryExtensionPoint modelFactories, + public ContributionMetadataProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); diff --git a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionModelResolver.java b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionModelResolver.java index f226dbbee3..ddc768b61c 100644 --- a/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionModelResolver.java +++ b/branches/sca-equinox/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionModelResolver.java @@ -23,8 +23,8 @@ import java.util.HashMap; import java.util.Map; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * A Model Resolver for Contribution models. @@ -35,7 +35,7 @@ public class ContributionModelResolver implements ModelResolver { private Map map = new HashMap(); - public ContributionModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public ContributionModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { } public void addModel(Object resolved) { diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java index 743c2356d7..80dece4496 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java @@ -91,6 +91,13 @@ public interface Contribution extends Artifact { */ void setModelResolver(ModelResolver modelResolver); + /** + * Returns the list of contributions that this contribution depends on. + * + * @return + */ + List getDependencies(); + /** * Returns the ClassLoader used to load classes and resources from * this contribution diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java deleted file mode 100644 index bf8d75dba9..0000000000 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java +++ /dev/null @@ -1,132 +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.sca.contribution; - -import java.lang.reflect.Constructor; -import java.util.HashMap; - -import org.apache.tuscany.sca.extensibility.ServiceDeclaration; -import org.apache.tuscany.sca.extensibility.ServiceDiscovery; - - -/** - * Default implementation of a model factory extension point. - * - * @version $Rev$ $Date$ - */ -public class DefaultModelFactoryExtensionPoint implements ModelFactoryExtensionPoint { - - private HashMap, Object> factories = new HashMap, Object>(); - - /** - * Constructs a new DefaultModelFactoryExtensionPoint. - */ - public DefaultModelFactoryExtensionPoint() { - } - - /** - * Add a model factory extension. - * - * @param factory The factory to add - */ - public void addFactory(Object factory) { - Class[] interfaces = factory.getClass().getInterfaces(); - if (interfaces.length == 0) { - Class sc = factory.getClass().getSuperclass(); - if (sc != Object.class) { - factories.put(sc, factory); - } - } else { - for (int i = 0; i[] interfaces = factory.getClass().getInterfaces(); - if (interfaces.length == 0) { - Class sc = factory.getClass().getSuperclass(); - if (sc != Object.class) { - factories.remove(sc); - } - } else { - for (int i = 0; i T getFactory(Class factoryInterface) { - Object factory = factories.get(factoryInterface); - if (factory == null) { - - if (factoryInterface.isInterface()) { - - // Dynamically load a factory class declared under META-INF/services - try { - ServiceDeclaration factoryDeclaration = ServiceDiscovery.getInstance().getFirstServiceDeclaration(factoryInterface.getName()); - if (factoryDeclaration != null) { - Class factoryClass = factoryDeclaration.loadClass(); - - try { - // Default empty constructor - Constructor constructor = factoryClass.getConstructor(); - factory = constructor.newInstance(); - } catch (NoSuchMethodException e) { - - // Constructor taking the model factory extension point - Constructor constructor = factoryClass.getConstructor(ModelFactoryExtensionPoint.class); - factory = constructor.newInstance(this); - } - - // Cache the loaded factory - addFactory(factory); - } - } catch (Exception e) { - throw new IllegalArgumentException(e); - } - } else { - - // Call the newInstance static method on the factory abstract class - try { - factory = ServiceDiscovery.getInstance().newFactoryClassInstance(factoryInterface.getName()); - } catch (Exception e) { - throw new IllegalArgumentException(e); - } - - // Cache the factory - addFactory(factory); - } - } - return factoryInterface.cast(factory); - } - -} diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ModelFactoryExtensionPoint.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ModelFactoryExtensionPoint.java deleted file mode 100644 index 0ada4ebec3..0000000000 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ModelFactoryExtensionPoint.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.sca.contribution; - -/** - * An extension point for model factories. Model factories are provided to - * abstract the classes that represent artifacts in the assembly model away - * from their creation mechanism. When the runtime needs to extend the model - * as it reads in contributed artifacts it looks up the factory for the - * artifact required in this registry - * - * @version $Rev$ $Date$ - */ -public interface ModelFactoryExtensionPoint { - - /** - * Add a model factory extension. - * - * @param factory The factory to add - */ - void addFactory(Object factory); - - /** - * Remove a model factory extension. - * - * @param factory The factory to remove - */ - void removeFactory(Object factory); - - /** - * Get a factory implementing the given interface. - * @param factoryInterface the lookup key (factory interface) - * @return The factory - */ - T getFactory(Class factoryInterface); - -} diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java index fc9ae607e7..0b41016caa 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java @@ -44,6 +44,7 @@ class ContributionImpl implements Contribution { private List imports = new ArrayList(); private List deployables = new ArrayList(); private List artifacts = new ArrayList(); + private List dependencies = new ArrayList(); private ModelResolver modelResolver; // FIXME remove this dependency on Java ClassLoaders @@ -111,6 +112,10 @@ class ContributionImpl implements Contribution { this.modelResolver = modelResolver; } + public List getDependencies() { + return dependencies; + } + public List getExports() { return exports; } diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java index 1fb2ecd017..e2995b3868 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java @@ -31,12 +31,12 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDeclaration; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; @@ -56,7 +56,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends DefaultArtifactProcessorExtensionPoint implements StAXArtifactProcessorExtensionPoint { private ExtensionPointRegistry extensionPoints; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private MonitorFactory monitorFactory; private boolean loaded; private StAXArtifactProcessor extensibleStAXProcessor; @@ -68,7 +68,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends */ public DefaultStAXArtifactProcessorExtensionPoint(ExtensionPointRegistry extensionPoints) { this.extensionPoints = extensionPoints; - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class); UtilityExtensionPoint utilities = this.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); @@ -215,7 +215,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends String factoryName, ServiceDeclaration processorDeclaration, ExtensionPointRegistry extensionPoints, - ModelFactoryExtensionPoint modelFactories, + FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, StAXAttributeProcessor extensionAttributeProcessor, Monitor monitor) { @@ -249,7 +249,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends .equals("org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor")) { // Specific initialization for the DefaultBeanModelProcessor - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); PolicyFactory policyFactory = modelFactories.getFactory(PolicyFactory.class); try { @@ -282,7 +282,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends throw ie; } } else { - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); // Load and instantiate the processor class try { @@ -290,7 +290,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends (Class)processorDeclaration.loadClass(); try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, Monitor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, Monitor.class); processor = constructor.newInstance(modelFactories, monitor); } catch (NoSuchMethodException e) { try { @@ -300,12 +300,12 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends } catch (NoSuchMethodException e1) { try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class); processor = constructor.newInstance(modelFactories, extensionProcessor, monitor); } catch (NoSuchMethodException e2) { try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, StAXAttributeProcessor.class, Monitor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, StAXArtifactProcessor.class, StAXAttributeProcessor.class, Monitor.class); processor = constructor.newInstance(modelFactories, extensionProcessor, extensionAttributeProcessor, monitor); } catch (NoSuchMethodException e2a) { try { @@ -321,7 +321,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class); + processorClass.getConstructor(FactoryExtensionPoint.class); processor = constructor.newInstance(modelFactories); } catch (NoSuchMethodException e4) { try { @@ -331,7 +331,7 @@ public class DefaultStAXArtifactProcessorExtensionPoint extends } catch (NoSuchMethodException e4a) { try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, StAXArtifactProcessor.class); processor = constructor.newInstance(modelFactories, extensionProcessor); } catch (NoSuchMethodException e5) { Constructor constructor = diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java index 293b455810..5fbe2b3a52 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java @@ -30,12 +30,12 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDeclaration; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; @@ -54,7 +54,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends DefaultArtifactProcessorExtensionPoint implements StAXAttributeProcessorExtensionPoint { private ExtensionPointRegistry extensionPoints; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private StAXAttributeProcessor extensibleStAXAttributeProcessor; private boolean loaded; private Monitor monitor = null; @@ -64,7 +64,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends */ public DefaultStAXAttributeProcessorExtensionPoint(ExtensionPointRegistry extensionPoints) { this.extensionPoints = extensionPoints; - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class); UtilityExtensionPoint utilities = this.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); @@ -208,7 +208,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends String factoryName, ServiceDeclaration processorDeclaration, ExtensionPointRegistry extensionPoints, - ModelFactoryExtensionPoint modelFactories, + FactoryExtensionPoint modelFactories, StAXAttributeProcessor extensionProcessor, Monitor monitor) { @@ -235,7 +235,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends @SuppressWarnings("unchecked") private StAXAttributeProcessor getProcessor() { if (processor == null) { - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); // Load and instantiate the processor class try { @@ -243,7 +243,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends (Class)processorDeclaration.loadClass(); try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, Monitor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, Monitor.class); processor = constructor.newInstance(modelFactories, monitor); } catch (NoSuchMethodException e) { try { @@ -253,7 +253,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends } catch (NoSuchMethodException e1) { try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class); processor = constructor.newInstance(modelFactories, extensionProcessor, monitor); } catch (NoSuchMethodException e2) { try { @@ -263,7 +263,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends } catch (NoSuchMethodException e3) { try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class); + processorClass.getConstructor(FactoryExtensionPoint.class); processor = constructor.newInstance(modelFactories); } catch (NoSuchMethodException e4) { try { @@ -273,7 +273,7 @@ public class DefaultStAXAttributeProcessorExtensionPoint extends } catch (NoSuchMethodException e4a) { try { Constructor constructor = - processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class); + processorClass.getConstructor(FactoryExtensionPoint.class, StAXArtifactProcessor.class); processor = constructor.newInstance(modelFactories, extensionProcessor); } catch (NoSuchMethodException e5) { Constructor constructor = diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java index 1c7dbef5ec..e4c6152bc4 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java @@ -28,11 +28,11 @@ import java.util.Set; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDeclaration; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; @@ -62,7 +62,7 @@ public class DefaultURLArtifactProcessorExtensionPoint */ public DefaultURLArtifactProcessorExtensionPoint(ExtensionPointRegistry extensionPoints) { this.extensionPoints = extensionPoints; - ModelFactoryExtensionPoint modelFactories = this.extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = this.extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class); UtilityExtensionPoint utilities = this.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); @@ -193,14 +193,14 @@ public class DefaultURLArtifactProcessorExtensionPoint private URLArtifactProcessor getProcessor() { if (processor == null) { try { - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); Class processorClass = (Class)processorDeclaration.loadClass(); try { - Constructor constructor = processorClass.getConstructor(ModelFactoryExtensionPoint.class, Monitor.class); + Constructor constructor = processorClass.getConstructor(FactoryExtensionPoint.class, Monitor.class); processor = constructor.newInstance(modelFactories, monitor); } catch (NoSuchMethodException e) { try { - Constructor constructor = processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class); + Constructor constructor = processorClass.getConstructor(FactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class); processor = constructor.newInstance(modelFactories, staxProcessor, monitor); } catch (NoSuchMethodException e2) { Constructor constructor = processorClass.getConstructor(ExtensionPointRegistry.class, StAXArtifactProcessor.class, Monitor.class); diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java index de54d54f94..d20737103b 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java @@ -25,7 +25,7 @@ import java.util.Map; import org.apache.tuscany.sca.assembly.Base; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; /** * An implementation of an extensible model resolver which delegates to the @@ -35,7 +35,7 @@ import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; */ public class ExtensibleModelResolver implements ModelResolver { private final ModelResolverExtensionPoint resolverExtensions; - private final ModelFactoryExtensionPoint modelFactories; + private final FactoryExtensionPoint modelFactories; private final Contribution contribution; private ModelResolver defaultResolver; private final Map, ModelResolver> resolversByModelType = new HashMap, ModelResolver>(); @@ -54,7 +54,7 @@ public class ExtensibleModelResolver implements ModelResolver { @Deprecated public ExtensibleModelResolver(Contribution contribution, ModelResolverExtensionPoint resolverExtensions, - ModelFactoryExtensionPoint modelFactories, + FactoryExtensionPoint modelFactories, ModelResolver defaultResolver) { this.contribution = contribution; this.resolverExtensions = resolverExtensions; @@ -74,7 +74,7 @@ public class ExtensibleModelResolver implements ModelResolver { */ public ExtensibleModelResolver(Contribution contribution, ModelResolverExtensionPoint resolverExtensions, - ModelFactoryExtensionPoint modelFactories) { + FactoryExtensionPoint modelFactories) { this.contribution = contribution; this.resolverExtensions = resolverExtensions; this.modelFactories = modelFactories; @@ -118,7 +118,7 @@ public class ExtensibleModelResolver implements ModelResolver { try { Constructor constructor = resolverClass - .getConstructor(new Class[] {Contribution.class, ModelFactoryExtensionPoint.class}); + .getConstructor(new Class[] {Contribution.class, FactoryExtensionPoint.class}); if (constructor != null) { resolverInstance = constructor.newInstance(contribution, modelFactories); diff --git a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java index f36595d64f..202fea0e34 100644 --- a/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java +++ b/branches/sca-equinox/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java @@ -26,8 +26,8 @@ import java.util.List; import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDeclaration; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; @@ -40,13 +40,13 @@ public class DefaultContributionListenerExtensionPoint implements ContributionLi private List listeners = new CopyOnWriteArrayList(); private boolean loadedListeners; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; /** * Constructs a new DefaultContributionListenerExtensionPoint. * */ - public DefaultContributionListenerExtensionPoint(ModelFactoryExtensionPoint modelFactories) { + public DefaultContributionListenerExtensionPoint(FactoryExtensionPoint modelFactories) { this.modelFactories = modelFactories; } @@ -55,7 +55,7 @@ public class DefaultContributionListenerExtensionPoint implements ContributionLi * */ public DefaultContributionListenerExtensionPoint(ExtensionPointRegistry extensionPoints) { - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); } public void addContributionListener(ContributionListener listener) { @@ -93,7 +93,7 @@ public class DefaultContributionListenerExtensionPoint implements ContributionLi try { Class listenerClass = (Class)listenerDeclaration.loadClass(); try { - Constructor constructor = listenerClass.getConstructor(ModelFactoryExtensionPoint.class); + Constructor constructor = listenerClass.getConstructor(FactoryExtensionPoint.class); try { listener = constructor.newInstance(modelFactories); } catch (InvocationTargetException e) { diff --git a/branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint b/branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint deleted file mode 100644 index 6b4d2ebdeb..0000000000 --- a/branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint +++ /dev/null @@ -1,18 +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. - -org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint diff --git a/branches/sca-equinox/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java b/branches/sca-equinox/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java index 2056789089..c9ee4e485f 100644 --- a/branches/sca-equinox/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java +++ b/branches/sca-equinox/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java @@ -19,8 +19,8 @@ package org.apache.tuscany.sca.core.databinding.module; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor; import org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer; @@ -81,7 +81,7 @@ public class DataBindingModuleActivator implements ModuleActivator { transformers.addTransformer(new CallableReference2XMLStreamReader(), true); transformers.addTransformer(new XMLStreamReader2CallableReference(), false); - ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); JavaInterfaceFactory javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class); // [rfeng] The JAX-WS processor should come before the Databinding processor to make sure @WebService diff --git a/branches/sca-equinox/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/ReferenceParameterProcessor.java b/branches/sca-equinox/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/ReferenceParameterProcessor.java index c82543c4ca..b735db2c18 100644 --- a/branches/sca-equinox/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/ReferenceParameterProcessor.java +++ b/branches/sca-equinox/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/ReferenceParameterProcessor.java @@ -24,12 +24,12 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.runtime.ReferenceParameters; @@ -47,7 +47,7 @@ public class ReferenceParameterProcessor implements StAXArtifactProcessor { private ContributionFactory contributionFactory; private Monitor monitor; - public ImportSDOProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public ImportSDOProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.contributionFactory = modelFactories.getFactory(ContributionFactory.class); this.monitor = monitor; } diff --git a/branches/sca-equinox/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java b/branches/sca-equinox/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java index fa765f9bf4..3b109f3137 100644 --- a/branches/sca-equinox/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java +++ b/branches/sca-equinox/modules/databinding-sdo/src/test/java/org/apache/tuscany/sca/databinding/sdo/ImportSDOProcessorTestCase.java @@ -26,9 +26,9 @@ import javax.xml.stream.XMLStreamReader; import junit.framework.TestCase; -import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint; import com.example.ipo.sdo.SdoFactory; @@ -69,7 +69,7 @@ public class ImportSDOProcessorTestCase extends TestCase { @Override protected void setUp() throws Exception { - loader = new ImportSDOProcessor(new DefaultModelFactoryExtensionPoint(), null); + loader = new ImportSDOProcessor(new DefaultFactoryExtensionPoint(), null); xmlFactory = XMLInputFactory.newInstance(); } diff --git a/branches/sca-equinox/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java b/branches/sca-equinox/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java index 386e9ac7a0..44f9f17894 100644 --- a/branches/sca-equinox/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java +++ b/branches/sca-equinox/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java @@ -34,12 +34,12 @@ import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.definitions.SCADefinitions; import org.apache.tuscany.sca.definitions.impl.SCADefinitionsImpl; import org.apache.tuscany.sca.definitions.util.SCADefinitionsUtil; @@ -81,7 +81,7 @@ public class SCADefinitionsDocumentProcessor implements URLArtifactProcessor staxProcessor, Monitor monitor) { this.extensionProcessor = (StAXArtifactProcessor)staxProcessor; diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java index 09bb05cf87..32f4882e11 100644 --- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java +++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java @@ -40,25 +40,20 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamWriter; -import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; -import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.assembly.builder.impl.CompositeIncludeBuilderImpl; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint; import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.contribution.Artifact; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; @@ -70,21 +65,20 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.data.collection.Entry; import org.apache.tuscany.sca.data.collection.Item; import org.apache.tuscany.sca.data.collection.LocalItemCollection; import org.apache.tuscany.sca.data.collection.NotFoundException; import org.apache.tuscany.sca.implementation.node.NodeImplementation; -import org.apache.tuscany.sca.implementation.node.builder.impl.NodeCompositeBuilderImpl; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; -import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; -import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderException; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor; import org.osoa.sca.annotations.Init; import org.osoa.sca.annotations.Reference; @@ -115,7 +109,7 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se @Reference public LocalItemCollection cloudCollection; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private ModelResolverExtensionPoint modelResolvers; private AssemblyFactory assemblyFactory; private WorkspaceFactory workspaceFactory; @@ -123,7 +117,7 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se private StAXArtifactProcessorExtensionPoint staxProcessors; private StAXArtifactProcessor compositeProcessor; private XMLOutputFactory outputFactory; - private ContributionDependencyBuilder contributionDependencyBuilder; + private ContributionBuilder contributionDependencyBuilder; private CompositeBuilder compositeBuilder; private CompositeBuilder compositeIncludeBuilder; private CompositeBuilder nodeConfigurationBuilder; @@ -143,7 +137,7 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se monitor = monitorFactory.createMonitor(); // Get model factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); @@ -162,16 +156,16 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); contributionProcessor = new ContributionContentProcessor(modelFactories, modelResolvers, urlProcessor, staxProcessor, monitor); - // Create contribution and composite builders - DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); - TransformerFactory transformerFactory = modelFactories.getFactory(TransformerFactory.class); - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); - SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); - IntentAttachPointTypeFactory intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory, contractMapper, monitor); - compositeIncludeBuilder = new CompositeIncludeBuilderImpl(monitor); - nodeConfigurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, contractMapper, null, monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); + + // Get composite builders + CompositeBuilderExtensionPoint compositeBuilders = extensionPoints.getExtensionPoint(CompositeBuilderExtensionPoint.class); + compositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); + nodeConfigurationBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.implementation.node.builder.NodeCompositeBuilder"); + compositeIncludeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeIncludeBuilder"); + nodeConfigurationBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.implementation.node.builder.NodeCompositeBuilder"); } @Override @@ -281,7 +275,7 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se // Fuse includes into the deployable composite try { - compositeIncludeBuilder.build(deployable); + compositeIncludeBuilder.build(deployable, null, monitor); } catch (CompositeBuilderException e) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); } @@ -338,7 +332,7 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se Composite nodeComposite = assemblyFactory.createComposite(); nodeComposite.setName(nodeCompositeName); nodeComposite.getComponents().add(nodeComponent); - nodeConfigurationBuilder.build(nodeComposite); + nodeConfigurationBuilder.build(nodeComposite, null, monitor); } catch (CompositeBuilderException e) { throw new ServletException(e); } @@ -347,7 +341,7 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se // Build the domain composite try { - compositeBuilder.build(domainComposite); + compositeBuilder.build(domainComposite, null, monitor); } catch (CompositeBuilderException e) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); return; @@ -501,7 +495,10 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se Contribution contribution = (Contribution)contributionProcessor.read(null, uri, location); // Resolve the contribution dependencies - contributionDependencyBuilder.buildContributionDependencies(contribution, workspace); + try { + contributionDependencyBuilder.build(contribution, workspace, monitor); + } catch (ContributionBuilderException e) { + } contributionProcessor.resolve(contribution, workspace.getModelResolver()); return contribution; diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeGeneratorServiceImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeGeneratorServiceImpl.java index 9e024d2d6b..d1d590d4ac 100644 --- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeGeneratorServiceImpl.java +++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeGeneratorServiceImpl.java @@ -47,7 +47,6 @@ import javax.xml.stream.XMLStreamException; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; @@ -60,6 +59,7 @@ import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.data.collection.Item; import org.apache.tuscany.sca.data.collection.LocalItemCollection; @@ -91,7 +91,7 @@ public class CompositeGeneratorServiceImpl extends HttpServlet implements Servle @Reference public DomainManagerConfiguration domainManagerConfiguration; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private ModelResolverExtensionPoint modelResolvers; private URLArtifactProcessor contributionProcessor; private StAXArtifactProcessor compositeProcessor; @@ -124,7 +124,7 @@ public class CompositeGeneratorServiceImpl extends HttpServlet implements Servle Monitor monitor = monitorFactory.createMonitor(); // Get model factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java index d642244f2c..9e10a25885 100644 --- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java +++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java @@ -59,7 +59,6 @@ import org.apache.tuscany.sca.contribution.DefaultExport; import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -67,6 +66,7 @@ import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.data.collection.Entry; import org.apache.tuscany.sca.data.collection.Item; @@ -80,7 +80,9 @@ import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderException; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; @@ -120,6 +122,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl private XMLInputFactory inputFactory; private XMLOutputFactory outputFactory; private DocumentBuilder documentBuilder; + private ContributionBuilder contributionDependencyBuilder; /** * Cache workspace and contribution models. @@ -151,7 +154,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl monitor = monitorFactory.createMonitor(); // Create model factories - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); contributionFactory = modelFactories.getFactory(ContributionFactory.class); @@ -169,6 +172,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl // Create a document builder (used to pretty print XML) documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + + // Get contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); + } public Entry[] getAll() { @@ -182,7 +190,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl if (contribution.getURI().equals(DEPLOYMENT_CONTRIBUTION_URI)) { continue; } - entries.add(entry(workspace, contribution, monitor)); + entries.add(entry(workspace, contribution, contributionDependencyBuilder, monitor)); } return entries.toArray(new Entry[entries.size()]); } @@ -194,7 +202,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl Workspace workspace = readContributions(readWorkspace()); for (Contribution contribution: workspace.getContributions()) { if (key.equals(contribution.getURI())) { - return item(workspace, contribution, monitor); + return item(workspace, contribution, contributionDependencyBuilder, monitor); } } throw new NotFoundException(key); @@ -282,8 +290,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl if (key.equals(contribution.getURI())) { // Compute the contribution dependencies - ContributionDependencyBuilder analyzer = new ContributionDependencyBuilderImpl(monitor); - List dependencies = analyzer.buildContributionDependencies(contribution, workspace); + try { + contributionDependencyBuilder.build(contribution, workspace, monitor); + } catch (ContributionBuilderException e) { + } + List dependencies = contribution.getDependencies(); // Returns entries for the dependencies // optionally skip the specified contribution @@ -293,7 +304,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl // Skip the specified contribution continue; } - entries.add(entry(workspace, dependency, monitor)); + entries.add(entry(workspace, dependency, contributionDependencyBuilder, monitor)); } break; } @@ -363,7 +374,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl Contribution contribution = contributionFactory.createContribution(); contribution.setURI(uri); contribution.setLocation(locationPath); - entries.add(entry(suggestionWorkspace, contribution, monitor)); + entries.add(entry(suggestionWorkspace, contribution, contributionDependencyBuilder, monitor)); } } @@ -379,10 +390,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl * @param contribution * @return */ - private static Entry entry(Workspace workspace, Contribution contribution, Monitor monitor) { + private static Entry entry(Workspace workspace, Contribution contribution, + ContributionBuilder contributionDependencyBuilder, Monitor monitor) { Entry entry = new Entry(); entry.setKey(contribution.getURI()); - entry.setData(item(workspace, contribution, monitor)); + entry.setData(item(workspace, contribution, contributionDependencyBuilder, monitor)); return entry; } @@ -394,7 +406,8 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl * @param monitor * @return */ - private static Item item(Workspace workspace, Contribution contribution, final Monitor monitor) { + private static Item item(Workspace workspace, Contribution contribution, + ContributionBuilder contributionDependencyBuilder, final Monitor monitor) { String contributionURI = contribution.getURI(); Item item = new Item(); item.setTitle(title(contributionURI)); @@ -427,8 +440,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl }; StringBuffer sb = new StringBuffer(); - ContributionDependencyBuilderImpl analyzer = new ContributionDependencyBuilderImpl(recordingMonitor); - List dependencies = analyzer.buildContributionDependencies(contribution, workspace); + try { + contributionDependencyBuilder.build(contribution, workspace, recordingMonitor); + } catch (ContributionBuilderException e) { + } + List dependencies = contribution.getDependencies(); if (dependencies.size() > 1) { sb.append("Dependencies: "); for (int i = 0, n = dependencies.size(); i < n ; i++) { diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployableCompositeCollectionImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployableCompositeCollectionImpl.java index e66a8b6684..fcbe00f48a 100644 --- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployableCompositeCollectionImpl.java +++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployableCompositeCollectionImpl.java @@ -47,7 +47,6 @@ import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.ComponentService; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; @@ -59,6 +58,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.data.collection.Entry; import org.apache.tuscany.sca.data.collection.Item; @@ -69,7 +69,8 @@ import org.apache.tuscany.sca.domain.manager.impl.DeployableCompositeCollectionI import org.apache.tuscany.sca.implementation.node.NodeImplementation; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor; import org.osoa.sca.annotations.Init; @@ -94,11 +95,11 @@ public class DeployableCompositeCollectionImpl implements ItemCollection, LocalI @Reference public DomainManagerConfiguration domainManagerConfiguration; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private ModelResolverExtensionPoint modelResolvers; private URLArtifactProcessor contributionProcessor; private XMLOutputFactory outputFactory; - private ContributionDependencyBuilder contributionDependencyBuilder; + private ContributionBuilder contributionDependencyBuilder; private Monitor monitor; /** @@ -128,7 +129,7 @@ public class DeployableCompositeCollectionImpl implements ItemCollection, LocalI monitor = monitorFactory.createMonitor(); // Get model factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); @@ -144,8 +145,9 @@ public class DeployableCompositeCollectionImpl implements ItemCollection, LocalI modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); contributionProcessor = new ContributionContentProcessor(modelFactories, modelResolvers, urlProcessor, staxProcessor, monitor); - // Create contribution and composite builders - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); } public Entry[] getAll() { diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java index e95a0cc585..d2d1e04a79 100644 --- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java +++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java @@ -50,10 +50,10 @@ import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.data.collection.Entry; import org.apache.tuscany.sca.data.collection.Item; import org.apache.tuscany.sca.data.collection.ItemCollection; @@ -94,7 +94,7 @@ public class DeployedCompositeCollectionImpl implements ItemCollection, LocalIte @Reference public DomainManagerConfiguration domainManagerConfiguration; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private AssemblyFactory assemblyFactory; private StAXArtifactProcessor compositeProcessor; private XMLOutputFactory outputFactory; @@ -118,7 +118,7 @@ public class DeployedCompositeCollectionImpl implements ItemCollection, LocalIte // Create factories ExtensionPointRegistry extensionPoints = domainManagerConfiguration.getExtensionPoints(); - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java index d68cfa3786..53616f3b46 100644 --- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java +++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java @@ -31,8 +31,8 @@ import javax.xml.namespace.QName; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.binding.atom.AtomBindingFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.assembly.CompositeActivator; import org.apache.tuscany.sca.data.collection.Entry; import org.apache.tuscany.sca.data.collection.Item; @@ -81,7 +81,7 @@ public class NodeProcessCollectionFacadeImpl implements ItemCollection, LocalIte // Get the model factories ExtensionPointRegistry extensionPoints = domainManagerConfiguration.getExtensionPoints(); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); atomBindingFactory = modelFactories.getFactory(AtomBindingFactory.class); } diff --git a/branches/sca-equinox/modules/endpoint/src/test/java/org/apace/tuscany/sca/binding/sca/EndpointTestCase.java b/branches/sca-equinox/modules/endpoint/src/test/java/org/apace/tuscany/sca/binding/sca/EndpointTestCase.java index 5a2d9babf4..b262f51d45 100644 --- a/branches/sca-equinox/modules/endpoint/src/test/java/org/apace/tuscany/sca/binding/sca/EndpointTestCase.java +++ b/branches/sca-equinox/modules/endpoint/src/test/java/org/apace/tuscany/sca/binding/sca/EndpointTestCase.java @@ -36,7 +36,6 @@ import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -47,6 +46,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; @@ -71,7 +71,7 @@ public class EndpointTestCase { private static URLArtifactProcessor contributionProcessor; private static ModelResolverExtensionPoint modelResolvers; - private static ModelFactoryExtensionPoint modelFactories; + private static FactoryExtensionPoint modelFactories; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; private static StAXArtifactProcessor xmlProcessor; @@ -79,6 +79,7 @@ public class EndpointTestCase { private static ModelResolver modelResolver; private static CompositeActivator compositeActivator; private static ExtensionPointRegistry extensionPoints; + private static Monitor monitor; @BeforeClass public static void init() { @@ -89,9 +90,9 @@ public class EndpointTestCase { // Create a monitor UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - Monitor monitor = monitorFactory.createMonitor(); + monitor = monitorFactory.createMonitor(); - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); // Initialize the Tuscany module activators ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class); @@ -124,7 +125,7 @@ public class EndpointTestCase { SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper); // Runtime Init =================== /* @@ -186,7 +187,7 @@ public class EndpointTestCase { Composite composite = contribution.getDeployables().get(0); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, monitor); ComponentReference ref = (composite.getComponents().get(0).getReferences().get(0)); diff --git a/branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java b/branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java new file mode 100644 index 0000000000..1d0da12f91 --- /dev/null +++ b/branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java @@ -0,0 +1,133 @@ +/* + * 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.sca.core; + +import java.lang.reflect.Constructor; +import java.util.HashMap; + +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; + + + +/** + * Default implementation of a model factory extension point. + * + * @version $Rev$ $Date$ + */ +public class DefaultFactoryExtensionPoint implements FactoryExtensionPoint { + + private HashMap, Object> factories = new HashMap, Object>(); + + /** + * Constructs a new DefaultModelFactoryExtensionPoint. + */ + public DefaultFactoryExtensionPoint() { + } + + /** + * Add a model factory extension. + * + * @param factory The factory to add + */ + public void addFactory(Object factory) { + Class[] interfaces = factory.getClass().getInterfaces(); + if (interfaces.length == 0) { + Class sc = factory.getClass().getSuperclass(); + if (sc != Object.class) { + factories.put(sc, factory); + } + } else { + for (int i = 0; i[] interfaces = factory.getClass().getInterfaces(); + if (interfaces.length == 0) { + Class sc = factory.getClass().getSuperclass(); + if (sc != Object.class) { + factories.remove(sc); + } + } else { + for (int i = 0; i T getFactory(Class factoryInterface) { + Object factory = factories.get(factoryInterface); + if (factory == null) { + + if (factoryInterface.isInterface()) { + + // Dynamically load a factory class declared under META-INF/services + try { + ServiceDeclaration factoryDeclaration = ServiceDiscovery.getInstance().getFirstServiceDeclaration(factoryInterface.getName()); + if (factoryDeclaration != null) { + Class factoryClass = factoryDeclaration.loadClass(); + + try { + // Default empty constructor + Constructor constructor = factoryClass.getConstructor(); + factory = constructor.newInstance(); + } catch (NoSuchMethodException e) { + + // Constructor taking the model factory extension point + Constructor constructor = factoryClass.getConstructor(FactoryExtensionPoint.class); + factory = constructor.newInstance(this); + } + + // Cache the loaded factory + addFactory(factory); + } + } catch (Exception e) { + throw new IllegalArgumentException(e); + } + } else { + + // Call the newInstance static method on the factory abstract class + try { + factory = ServiceDiscovery.getInstance().newFactoryClassInstance(factoryInterface.getName()); + } catch (Exception e) { + throw new IllegalArgumentException(e); + } + + // Cache the factory + addFactory(factory); + } + } + return factoryInterface.cast(factory); + } + +} diff --git a/branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/FactoryExtensionPoint.java b/branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/FactoryExtensionPoint.java new file mode 100644 index 0000000000..4d38cb8afe --- /dev/null +++ b/branches/sca-equinox/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/FactoryExtensionPoint.java @@ -0,0 +1,54 @@ +/* + * 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.sca.core; + +/** + * An extension point for model factories. Model factories are provided to + * abstract the classes that represent artifacts in the assembly model away + * from their creation mechanism. When the runtime needs to extend the model + * as it reads in contributed artifacts it looks up the factory for the + * artifact required in this registry + * + * @version $Rev$ $Date$ + */ +public interface FactoryExtensionPoint { + + /** + * Add a model factory extension. + * + * @param factory The factory to add + */ + void addFactory(Object factory); + + /** + * Remove a model factory extension. + * + * @param factory The factory to remove + */ + void removeFactory(Object factory); + + /** + * Get a factory implementing the given interface. + * @param factoryInterface the lookup key (factory interface) + * @return The factory + */ + T getFactory(Class factoryInterface); + +} diff --git a/branches/sca-equinox/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.FactoryExtensionPoint b/branches/sca-equinox/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.FactoryExtensionPoint new file mode 100644 index 0000000000..3c135aa267 --- /dev/null +++ b/branches/sca-equinox/modules/extensibility/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.FactoryExtensionPoint @@ -0,0 +1,18 @@ +# 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. + +org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint diff --git a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java index 1bca290c27..cb1011a5dc 100644 --- a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java +++ b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java @@ -46,6 +46,7 @@ import org.apache.tuscany.sca.node.SCAContribution; import org.apache.tuscany.sca.node.SCANode; import org.apache.tuscany.sca.node.SCANodeFactory; import org.apache.tuscany.sca.node.impl.NodeImpl; +import org.apache.tuscany.sca.node.impl.NodeUtil; import org.osoa.sca.CallableReference; import org.osoa.sca.ServiceReference; @@ -117,7 +118,7 @@ public class DefaultSCADomain extends SCADomain { if (url == null) { continue; } - String location = NodeImpl.getContributionURL(url, composites[i]).toString(); + String location = NodeUtil.getContributionURL(url, composites[i]).toString(); if (!contributionURLs.contains(location)) { contributionURLs.add(location); } diff --git a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java index 519e76d0ae..b1e4b13833 100644 --- a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java +++ b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java @@ -31,8 +31,8 @@ import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionService; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.assembly.ActivationException; import org.apache.tuscany.sca.core.assembly.CompositeActivator; import org.apache.tuscany.sca.core.context.ServiceReferenceImpl; @@ -154,8 +154,8 @@ public class EmbeddedSCADomain extends SCADomain { composite.getComponents().add(component); RuntimeComponentReference reference = (RuntimeComponentReference)assemblyFactory.createComponentReference(); reference.setName("default"); - ModelFactoryExtensionPoint factories = - runtime.getExtensionPointRegistry().getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint factories = + runtime.getExtensionPointRegistry().getExtensionPoint(FactoryExtensionPoint.class); JavaInterfaceFactory javaInterfaceFactory = factories.getFactory(JavaInterfaceFactory.class); InterfaceContract interfaceContract = javaInterfaceFactory.createJavaInterfaceContract(); interfaceContract.setInterface(javaInterfaceFactory.createJavaInterface(businessInterface)); diff --git a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java index ae04169933..51b22ffdb0 100644 --- a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java +++ b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java @@ -37,7 +37,6 @@ import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; @@ -45,6 +44,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionService; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.assembly.ActivationException; @@ -115,7 +115,7 @@ public class ReallySmallRuntime { InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); // Get factory extension point - ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); // Get Message factory MessageFactory messageFactory = factories.getFactory(MessageFactory.class); @@ -214,7 +214,7 @@ public class ReallySmallRuntime { public void buildComposite(Composite composite) throws CompositeBuilderException { //Get factory extension point - ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); SCABindingFactory scaBindingFactory = factories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory intentAttachPointTypeFactory = factories.getFactory(IntentAttachPointTypeFactory.class); EndpointFactory endpointFactory = factories.getFactory(EndpointFactory.class); diff --git a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java index 738e5e6248..9b1ab420c9 100644 --- a/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java +++ b/branches/sca-equinox/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java @@ -39,7 +39,6 @@ import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor; import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint; import org.apache.tuscany.sca.context.RequestContextFactory; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory; import org.apache.tuscany.sca.contribution.processor.DefaultValidationSchemaExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensiblePackageProcessor; @@ -61,6 +60,7 @@ import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryIm import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl; import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.assembly.ActivationException; import org.apache.tuscany.sca.core.assembly.CompositeActivator; @@ -123,7 +123,7 @@ public class ReallySmallRuntimeBuilder { registry.getExtensionPoint(EndpointResolverFactoryExtensionPoint.class); JavaInterfaceFactory javaInterfaceFactory = - registry.getExtensionPoint(ModelFactoryExtensionPoint.class).getFactory(JavaInterfaceFactory.class); + registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(JavaInterfaceFactory.class); RequestContextFactory requestContextFactory = registry.getExtensionPoint(ContextFactoryExtensionPoint.class).getFactory(RequestContextFactory.class); @@ -179,7 +179,7 @@ public class ReallySmallRuntimeBuilder { throws ActivationException { // Get the model factory extension point - ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); // Create a new XML input factory // Allow privileged access to factory. Requires RuntimePermission in security policy file. diff --git a/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/module/TestModuleActivator.java b/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/module/TestModuleActivator.java index f6f077e99b..e89df5a555 100644 --- a/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/module/TestModuleActivator.java +++ b/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/module/TestModuleActivator.java @@ -20,9 +20,9 @@ package org.apache.tuscany.sca.host.embedded.test.extension.module; import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.host.embedded.test.extension.DefaultTestImplementationFactory; import org.apache.tuscany.sca.host.embedded.test.extension.TestImplementationFactory; @@ -43,7 +43,7 @@ public class TestModuleActivator implements ModuleActivator { public void start(ExtensionPointRegistry registry) { // Create the test implementation factory - ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); JavaInterfaceFactory javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class); TestImplementationFactory testFactory = new DefaultTestImplementationFactory(assemblyFactory, javaFactory); diff --git a/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELFactoryImpl.java b/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELFactoryImpl.java index ab53964fb3..f9b95c7da8 100644 --- a/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELFactoryImpl.java +++ b/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/impl/BPELFactoryImpl.java @@ -19,7 +19,7 @@ package org.apache.tuscany.sca.implementation.bpel.impl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.implementation.bpel.BPELFactory; import org.apache.tuscany.sca.implementation.bpel.BPELImplementation; import org.apache.tuscany.sca.implementation.bpel.BPELProcessDefinition; @@ -31,7 +31,7 @@ import org.apache.tuscany.sca.implementation.bpel.BPELProcessDefinition; */ public class BPELFactoryImpl implements BPELFactory { - public BPELFactoryImpl(ModelFactoryExtensionPoint modelFactories) { + public BPELFactoryImpl(FactoryExtensionPoint modelFactories) { } public BPELImplementation createBPELImplementation() { diff --git a/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java b/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java index 15b12a1a47..462516c581 100644 --- a/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java +++ b/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELDocumentProcessor.java @@ -37,12 +37,12 @@ import javax.xml.namespace.QName; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.implementation.bpel.BPELFactory; import org.apache.tuscany.sca.implementation.bpel.BPELProcessDefinition; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; @@ -88,7 +88,7 @@ public class BPELDocumentProcessor extends BaseStAXArtifactProcessor implements private WSDLFactory WSDLfactory; private Monitor monitor; - public BPELDocumentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public BPELDocumentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.factory = modelFactories.getFactory(BPELFactory.class); this.WSDLfactory = modelFactories.getFactory(WSDLFactory.class); this.monitor = monitor; diff --git a/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java b/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java index 04752a3969..9cd6fcb912 100644 --- a/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java +++ b/branches/sca-equinox/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/xml/BPELImplementationProcessor.java @@ -38,13 +38,13 @@ import org.apache.tuscany.sca.assembly.Property; import org.apache.tuscany.sca.assembly.Reference; import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.databinding.xml.DOMDataBinding; import org.apache.tuscany.sca.implementation.bpel.BPELFactory; import org.apache.tuscany.sca.implementation.bpel.BPELImplementation; @@ -77,7 +77,7 @@ public class BPELImplementationProcessor extends BaseStAXArtifactProcessor imple private WSDLFactory wsdlFactory; private Monitor monitor; - public BPELImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public BPELImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class); this.bpelFactory = modelFactories.getFactory(BPELFactory.class); diff --git a/branches/sca-equinox/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java b/branches/sca-equinox/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java index 7390166055..d1a72f248c 100644 --- a/branches/sca-equinox/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java +++ b/branches/sca-equinox/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java @@ -28,13 +28,13 @@ import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.ComponentType; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.implementation.ejb.EJBImplementation; import org.apache.tuscany.sca.implementation.ejb.EJBImplementationFactory; import org.apache.tuscany.sca.monitor.Monitor; @@ -55,7 +55,7 @@ public class EJBImplementationProcessor extends BaseStAXArtifactProcessor implem private EJBImplementationFactory implementationFactory; private Monitor monitor; - public EJBImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public EJBImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); this.implementationFactory = modelFactories.getFactory(EJBImplementationFactory.class); this.monitor = monitor; diff --git a/branches/sca-equinox/modules/implementation-ejb/src/test/java/org/apache/tuscany/sca/implementation/ejb/xml/ReadTestCase.java b/branches/sca-equinox/modules/implementation-ejb/src/test/java/org/apache/tuscany/sca/implementation/ejb/xml/ReadTestCase.java index b692ab3f5a..4cc050d22b 100644 --- a/branches/sca-equinox/modules/implementation-ejb/src/test/java/org/apache/tuscany/sca/implementation/ejb/xml/ReadTestCase.java +++ b/branches/sca-equinox/modules/implementation-ejb/src/test/java/org/apache/tuscany/sca/implementation/ejb/xml/ReadTestCase.java @@ -31,12 +31,12 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.implementation.ejb.EJBImplementation; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; @@ -61,13 +61,13 @@ public class ReadTestCase extends TestCase { StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints); staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); } public void testReadComposite() throws Exception { @@ -76,7 +76,7 @@ public class ReadTestCase extends TestCase { Composite composite = (Composite) staxProcessor.read(reader); assertNotNull(composite); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, null); assertTrue(((EJBImplementation) composite.getComponents().get(0).getImplementation()).getEJBLink().equals("module.jar#TestEJB")); } diff --git a/branches/sca-equinox/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java b/branches/sca-equinox/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java index 111b008b96..3555eb19f1 100644 --- a/branches/sca-equinox/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java +++ b/branches/sca-equinox/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java @@ -24,8 +24,8 @@ import java.util.List; import org.apache.tuscany.sca.context.ComponentContextFactory; import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint; import org.apache.tuscany.sca.context.RequestContextFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.invocation.CglibProxyFactory; @@ -56,7 +56,7 @@ public class JavaRuntimeModuleActivator implements ModuleActivator { public void start(ExtensionPointRegistry registry) { - ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); MessageFactory messageFactory = factories.getFactory(MessageFactory.class); UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); diff --git a/branches/sca-equinox/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java b/branches/sca-equinox/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java index 6bc581094d..15fdf4d162 100644 --- a/branches/sca-equinox/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java +++ b/branches/sca-equinox/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java @@ -43,13 +43,13 @@ import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.xml.ConfiguredOperationProcessor; import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaElementImpl; import org.apache.tuscany.sca.implementation.java.JavaImplementation; @@ -79,7 +79,7 @@ public class JavaImplementationProcessor implements StAXArtifactProcessor defaultBindings = new ArrayList(); @Override @@ -60,7 +62,8 @@ public class CalculateBindingURITestCase extends TestCase { assemblyFactory = new DefaultAssemblyFactory(); scaBindingFactory = new TestBindingFactory(); nodeImplementationFactory = new NodeImplementationFactoryImpl(); - configurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, null, null, monitor); + bindingConfigurationBuilder = new CompositeBindingConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, null); + nodeConfigurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, null, bindingConfigurationBuilder); Binding defaultBinding = new TestBindingImpl(); defaultBinding.setURI("http://myhost:8080/root"); defaultBindings.add(defaultBinding); @@ -238,7 +241,7 @@ public class CalculateBindingURITestCase extends TestCase { Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1", b.getURI()); } catch(Exception ex){ @@ -252,7 +255,7 @@ public class CalculateBindingURITestCase extends TestCase { Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/s1", b.getURI()); } catch(Exception ex){ @@ -267,7 +270,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setName("n"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/n", b.getURI()); } catch(Exception ex){ @@ -283,7 +286,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/b", b.getURI()); } catch(Exception ex){ @@ -299,7 +302,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("http://myhost:8080/b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/b", b.getURI()); } catch(Exception ex){ @@ -315,7 +318,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("../../b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/b", b.getURI()); } catch(Exception ex){ @@ -332,7 +335,7 @@ public class CalculateBindingURITestCase extends TestCase { Binding b = composite.getServices().get(0).getBindings().get(0); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root", b.getURI()); } catch(Exception ex){ @@ -346,7 +349,7 @@ public class CalculateBindingURITestCase extends TestCase { Binding b = composite.getServices().get(0).getBindings().get(0); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/s1", b.getURI()); } catch(Exception ex){ @@ -361,7 +364,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setName("n"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/n", b.getURI()); } catch(Exception ex){ @@ -377,7 +380,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/b", b.getURI()); } catch(Exception ex){ @@ -393,7 +396,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("http://myhost:8080/b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/b", b.getURI()); } catch(Exception ex){ @@ -410,7 +413,7 @@ public class CalculateBindingURITestCase extends TestCase { Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/c2", b.getURI()); } catch(Exception ex){ @@ -424,7 +427,7 @@ public class CalculateBindingURITestCase extends TestCase { Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/c2/s1", b.getURI()); } catch(Exception ex){ @@ -439,7 +442,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setName("n"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/c2/n", b.getURI()); } catch(Exception ex){ @@ -455,7 +458,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/root/c1/c2/b", b.getURI()); } catch(Exception ex){ @@ -471,7 +474,7 @@ public class CalculateBindingURITestCase extends TestCase { b.setURI("http://myhost:8080/b"); try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); assertEquals("http://myhost:8080/b", b.getURI()); } catch(Exception ex){ @@ -493,7 +496,7 @@ public class CalculateBindingURITestCase extends TestCase { try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); fail(); } catch(Exception ex){ //System.out.println(ex.toString()); @@ -514,7 +517,7 @@ public class CalculateBindingURITestCase extends TestCase { try { - configurationBuilder.build(nodeComposite(composite)); + nodeConfigurationBuilder.build(nodeComposite(composite), null, null); fail(); } catch(Exception ex){ System.out.println(ex.toString()); diff --git a/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java b/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java index 6c08bbed0f..4033f9225c 100644 --- a/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java +++ b/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java @@ -31,12 +31,12 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; @@ -59,13 +59,13 @@ public class ReadTestCase extends TestCase { StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints); staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper); } public void testReadComposite() throws Exception { @@ -74,7 +74,7 @@ public class ReadTestCase extends TestCase { Composite composite = (Composite)staxProcessor.read(reader); assertNotNull(composite); - compositeBuilder.build(composite); + compositeBuilder.build(composite, null, null); } } diff --git a/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java b/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java index d4db8772e4..2eb7b681b6 100644 --- a/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java +++ b/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java @@ -20,7 +20,7 @@ package org.apache.tuscany.sca.implementation.resource.impl; import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.implementation.resource.ResourceImplementation; import org.apache.tuscany.sca.implementation.resource.ResourceImplementationFactory; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; @@ -35,7 +35,7 @@ public class ResourceImplementationFactoryImpl implements ResourceImplementation private AssemblyFactory assemblyFactory; private JavaInterfaceFactory javaFactory; - public ResourceImplementationFactoryImpl(ModelFactoryExtensionPoint modelFactories) { + public ResourceImplementationFactoryImpl(FactoryExtensionPoint modelFactories) { assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class); } diff --git a/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java b/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java index bf9b5e5090..116a5176a8 100644 --- a/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java +++ b/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java @@ -31,12 +31,12 @@ import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.contribution.Artifact; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.implementation.resource.ResourceImplementation; import org.apache.tuscany.sca.implementation.resource.ResourceImplementationFactory; import org.apache.tuscany.sca.monitor.Monitor; @@ -57,7 +57,7 @@ public class ResourceImplementationProcessor implements StAXArtifactProcessor contributions; // The composite loaded into this node private Composite composite; + private Monitor monitor; + private URLArtifactProcessor contributionProcessor; + private ModelResolverExtensionPoint modelResolvers; + private FactoryExtensionPoint modelFactories; + private WorkspaceFactory workspaceFactory; + private ContributionFactory contributionFactory; + private AssemblyFactory assemblyFactory; + private XMLInputFactory inputFactory; + private XMLOutputFactory outputFactory; + private DocumentBuilderFactory documentBuilderFactory; + private TransformerFactory transformerFactory; + private StAXArtifactProcessor xmlProcessor; + private ContributionBuilder contributionDependencyBuilder; + private CompositeBuilder domainCompositeBuilder; + private StAXArtifactProcessorExtensionPoint xmlProcessors; + private URLArtifactProcessorExtensionPoint documentProcessors; + private RuntimeBootStrapper runtime; + private CompositeActivator compositeActivator; + /** * Constructs a new SCA node. * @@ -114,11 +137,10 @@ public class NodeImpl implements SCANode, SCAClient { try { // Initialize the runtime - initRuntime(); + init(); // Read the node configuration feed - StAXArtifactProcessor configurationProcessor = - artifactProcessors.getProcessor(ConfiguredNodeImplementation.class); + StAXArtifactProcessor configurationProcessor = xmlProcessors.getProcessor(ConfiguredNodeImplementation.class); URL configurationURL = new URL(configurationURI); InputStream is = configurationURL.openStream(); XMLStreamReader reader = inputFactory.createXMLStreamReader(is); @@ -161,7 +183,7 @@ public class NodeImpl implements SCANode, SCAClient { } try { // Initialize the runtime - initRuntime(); + init(); ConfiguredNodeImplementation config = findNodeConfiguration(compositeURI, classLoader); configureNode(config); @@ -227,77 +249,11 @@ public class NodeImpl implements SCANode, SCAClient { private Contribution getContribution(URL contributionArtifactURL, String contributionArtifactPath) { URL contributionURL = getContributionURL(contributionArtifactURL, contributionArtifactPath); - - ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class); - SCAContribution contribution = new SCAContribution(contributionURL.toString(), contributionURL.toString()); Contribution c = createContribution(contributionFactory, contribution); return c; } - public static URL getContributionURL(URL contributionArtifactURL, String contributionArtifactPath) { - URL contributionURL = null; - // "jar:file://....../something.jar!/a/b/c/app.composite" - try { - String url = contributionArtifactURL.toExternalForm(); - String protocol = contributionArtifactURL.getProtocol(); - if ("file".equals(protocol)) { - // directory contribution - if (url.endsWith(contributionArtifactPath)) { - final String location = url.substring(0, url.lastIndexOf(contributionArtifactPath)); - // workaround from evil URL/URI form Maven - // contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); - // Allow privileged access to open URL stream. Add FilePermission to added to - // security policy file. - try { - contributionURL = AccessController.doPrivileged(new PrivilegedExceptionAction() { - public URL run() throws IOException { - return FileHelper.toFile(new URL(location)).toURI().toURL(); - } - }); - } catch (PrivilegedActionException e) { - throw (MalformedURLException)e.getException(); - } - } - - } else if ("jar".equals(protocol)) { - // jar contribution - String location = url.substring(4, url.lastIndexOf("!/")); - // workaround for evil URL/URI from Maven - contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); - - } else if ("wsjar".equals(protocol)) { - // See https://issues.apache.org/jira/browse/TUSCANY-2219 - // wsjar contribution - String location = url.substring(6, url.lastIndexOf("!/")); - // workaround for evil url/uri from maven - contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); - - } else if ("zip".equals(protocol)) { - // See https://issues.apache.org/jira/browse/TUSCANY-2598 - // zip contribution, remove the zip prefix and pad with file: - String location = "file:"+url.substring(4, url.lastIndexOf("!/")); - contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); - - } else if (protocol != null && (protocol.equals("bundle") || protocol.equals("bundleresource"))) { - contributionURL = - new URL(contributionArtifactURL.getProtocol(), contributionArtifactURL.getHost(), - contributionArtifactURL.getPort(), "/"); - } - } catch (MalformedURLException mfe) { - throw new IllegalArgumentException(mfe); - } - return contributionURL; - } - - private static URL getResource(final ClassLoader classLoader, final String compositeURI) { - return AccessController.doPrivileged(new PrivilegedAction() { - public URL run() { - return classLoader.getResource(compositeURI); - } - }); - } - /** * Constructs a new SCA node. * @@ -310,7 +266,7 @@ public class NodeImpl implements SCANode, SCAClient { try { // Initialize the runtime - initRuntime(); + init(); URI uri = compositeURI == null ? null : URI.create(compositeURI); ConfiguredNodeImplementation configuration = null; @@ -329,9 +285,7 @@ public class NodeImpl implements SCANode, SCAClient { Composite composite = compositeURI == null ? null : createComposite(compositeURI); configuration.setComposite(composite); - // Create contribution models - ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class); for (SCAContribution c : contributions) { Contribution contribution = createContribution(contributionFactory, c); configuration.getContributions().add(contribution); @@ -348,7 +302,6 @@ public class NodeImpl implements SCANode, SCAClient { private Composite createComposite(String compositeURI) { // Create composite model - AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); Composite composite = assemblyFactory.createComposite(); composite.setURI(compositeURI); composite.setUnresolved(true); @@ -368,7 +321,7 @@ public class NodeImpl implements SCANode, SCAClient { try { // Initialize the runtime - initRuntime(); + init(); ConfiguredNodeImplementation configuration = null; if (contributions == null || contributions.length == 0) { @@ -380,22 +333,18 @@ public class NodeImpl implements SCANode, SCAClient { configuration = nodeImplementationFactory.createConfiguredNodeImplementation(); // Read the composite model - StAXArtifactProcessor compositeProcessor = artifactProcessors.getProcessor(Composite.class); + StAXArtifactProcessor compositeProcessor = xmlProcessors.getProcessor(Composite.class); // URL compositeURL = new URL(compositeURI); logger.log(Level.INFO, "Loading composite: " + compositeURI); - CompositeDocumentProcessor compositeDocProcessor = - (CompositeDocumentProcessor)documentProcessors.getProcessor(Composite.class); - composite = - compositeDocProcessor.read(URI.create(compositeURI), new ByteArrayInputStream(compositeContent - .getBytes("UTF-8"))); + CompositeDocumentProcessor compositeDocProcessor = (CompositeDocumentProcessor)documentProcessors.getProcessor(Composite.class); + composite = compositeDocProcessor.read(URI.create(compositeURI), new ByteArrayInputStream(compositeContent.getBytes("UTF-8"))); analyzeProblems(); configuration.setComposite(composite); // Create contribution models - ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class); for (SCAContribution c : contributions) { Contribution contribution = createContribution(contributionFactory, c); configuration.getContributions().add(contribution); @@ -410,14 +359,53 @@ public class NodeImpl implements SCANode, SCAClient { } } - private static Contribution createContribution(ContributionFactory contributionFactory, SCAContribution c) { - Contribution contribution = contributionFactory.createContribution(); - contribution.setURI(c.getURI()); - contribution.setLocation(c.getLocation()); - contribution.setUnresolved(true); - return contribution; - } + private void init() { + + // Create extension point registry + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + + // Create a monitor + UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); + MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); + monitor = monitorFactory.createMonitor(); + + // Initialize the Tuscany module activators + ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class); + for (ModuleActivator activator: moduleActivators.getModuleActivators()) { + activator.start(extensionPoints); + } + // Get XML input/output factories + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); + inputFactory = modelFactories.getFactory(XMLInputFactory.class); + outputFactory = modelFactories.getFactory(XMLOutputFactory.class); + + // Get contribution workspace and assembly model factories + contributionFactory = modelFactories.getFactory(ContributionFactory.class); + workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); + assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); + + // Create XML artifact processors + xmlProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); + documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + xmlProcessor = new ExtensibleStAXArtifactProcessor(xmlProcessors, inputFactory, outputFactory, monitor); + + // Create contribution content processor + URLArtifactProcessorExtensionPoint docProcessorExtensions = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); + contributionProcessor = docProcessorExtensions.getProcessor(Contribution.class); + + // Get the model resolvers + modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); + + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); + + // Get composite builders + CompositeBuilderExtensionPoint compositeBuilders = extensionPoints.getExtensionPoint(CompositeBuilderExtensionPoint.class); + domainCompositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); + } + /** * Initialize the Tuscany runtime. * @@ -429,131 +417,67 @@ public class NodeImpl implements SCANode, SCAClient { runtime = new RuntimeBootStrapper(Thread.currentThread().getContextClassLoader()); runtime.start(); - // Get the various factories we need - ExtensionPointRegistry registry = runtime.getExtensionPointRegistry(); - modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); - inputFactory = modelFactories.getFactory(XMLInputFactory.class); - - // Create the required artifact processors - artifactProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); - - documentProcessors = registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); - // Save the composite activator compositeActivator = runtime.getCompositeActivator(); - // save the monitor - UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); - MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - monitor = monitorFactory.createMonitor(); - } - - /** - * Escape the space in URL string - * @param uri - * @return - */ - private static URI createURI(String uri) { - if (uri.indexOf(' ') != -1) { - uri = uri.replace(" ", "%20"); - } - return URI.create(uri); } private void configureNode(ConfiguredNodeImplementation configuration) throws Exception { - // Find if any contribution JARs already available locally on the classpath - Map localContributions = localContributions(); + // Create workspace model + Workspace workspace = workspaceFactory.createWorkspace(); + workspace.setModelResolver(new ExtensibleModelResolver(workspace, modelResolvers, modelFactories)); // Load the specified contributions - ContributionService contributionService = runtime.getContributionService(); - contributions = new ArrayList(); - for (Contribution contribution : configuration.getContributions()) { - URI uri = createURI(contribution.getLocation()); + for (Contribution c : configuration.getContributions()) { + URI contributionURI = URI.create(c.getURI()); + + URI uri = createURI(c.getLocation()); if (uri.getScheme() == null) { - uri = new File(contribution.getLocation()).toURI(); + uri = new File(c.getLocation()).toURI(); } URL contributionURL = uri.toURL(); - // Extract contribution file name - String file = contributionURL.getPath(); - int i = file.lastIndexOf('/'); - if (i != -1 && i < file.length() - 1) { - file = file.substring(i + 1); - - // If we find the local contribution file on the classpath, use it in - // place of the original contribution URL - URL localContributionURL = localContributions.get(file); - if (localContributionURL != null) { - contributionURL = localContributionURL; - } - } - // Load the contribution logger.log(Level.INFO, "Loading contribution: " + contributionURL); - contributions.add(contributionService.contribute(contribution.getURI(), contributionURL, false)); + Contribution contribution = contributionProcessor.read(null, contributionURI, contributionURL); + workspace.getContributions().add(contribution); analyzeProblems(); } - composite = configuration.getComposite(); - - // FIXME: This is a hack to get a list of deployable composites. By design, the deployment composite should - // has been configured - if (composite == null) { - List deployables = new ArrayList(); - for (Contribution c : contributions) { - deployables.addAll(c.getDeployables()); + // Build the contribution dependencies + Set resolved = new HashSet(); + for (Contribution contribution: workspace.getContributions()) { + contributionDependencyBuilder.build(contribution, workspace, monitor); + + // Resolve contributions + for (Contribution dependency: contribution.getDependencies()) { + if (!resolved.contains(dependency)) { + resolved.add(dependency); + contributionProcessor.resolve(dependency, workspace.getModelResolver()); + } } - aggregate(deployables); - configuration.setComposite(composite); } - - Contribution contribution = null; - if (composite.getName() == null) { - // Load the specified composite - URL compositeURL; - - URI uri = createURI(configuration.getComposite().getURI()); - if (uri.getScheme() == null) { - - // If the composite URI is a relative URI, try to resolve it within the contributions - contribution = contribution(contributions, uri.toString()); - if (contribution == null) { - throw new IllegalArgumentException("Composite is not found in contributions: " + uri); + + composite = configuration.getComposite(); + if (composite.isUnresolved()) { + + // Find the composite in the given contributions + for (Contribution contribution: workspace.getContributions()) { + composite = contribution.getModelResolver().resolveModel(Composite.class, composite); + if (!composite.isUnresolved()) { + break; } - compositeURL = new URL(location(contribution, uri.toString())); - - } else { - - // If the composite URI is an absolute URI, use it as is - compositeURL = uri.toURL(); } - - URLArtifactProcessor compositeDocProcessor = documentProcessors.getProcessor(Composite.class); - // Read the composite - logger.log(Level.INFO, "Loading composite: " + compositeURL); - // InputStream is = compositeURL.openStream(); - // XMLStreamReader reader = inputFactory.createXMLStreamReader(is); - composite = compositeDocProcessor.read(null, uri, compositeURL); - // reader.close(); - - analyzeProblems(); - - } - // And resolve the composite within the scope of the last contribution - if (contribution == null && contributions.size() != 0) { - contribution = contributions.get(contributions.size() - 1); } - // Resolve the given composite within the scope of the selected contribution - if (contribution != null) { - StAXArtifactProcessor compositeProcessor = artifactProcessors.getProcessor(Composite.class); - compositeProcessor.resolve(composite, contribution.getModelResolver()); - analyzeProblems(); - } + // Build the composite and wire the components included in it + domainCompositeBuilder.build(composite); + + analyzeProblems(); + // Create a top level composite to host our composite // This is temporary to make the activator happy - AssemblyFactory assemblyFactory = runtime.getAssemblyFactory(); Composite tempComposite = assemblyFactory.createComposite(); tempComposite.setName(new QName("http://tempuri.org", "temp")); tempComposite.setURI("http://tempuri.org"); @@ -566,92 +490,6 @@ public class NodeImpl implements SCANode, SCAClient { // available compositeActivator.setDomainComposite(tempComposite); - // Build the composite - runtime.buildComposite(composite); - - analyzeProblems(); - } - - /** - * Create a deployment composite that includes a list of deployable composites - * @param composites - */ - private void aggregate(List composites) { - if (composites.size() == 0) { - throw new IllegalArgumentException("No deployable composite is declared"); - } else if (composites.size() == 1) { - composite = composites.get(0); - } else { - // Include all composites - AssemblyFactory assemblyFactory = runtime.getAssemblyFactory(); - Composite aggregated = assemblyFactory.createComposite(); - aggregated.setName(new QName("http://tempuri.org", "aggregated")); - aggregated.setURI("http://tempuri.org/aggregated"); - aggregated.getIncludes().addAll(composites); - composite = aggregated; - } - } - - /** - * Returns the artifact representing the given composite. - * - * @param contribution - * @param compositeURI - * @return - */ - private String location(Contribution contribution, String uri) { - if (uri != null && uri.startsWith("/")) { - uri = uri.substring(1); - } - ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class); - Artifact compositeFile = contributionFactory.createArtifact(); - compositeFile.setUnresolved(true); - compositeFile.setURI(uri); - ModelResolver resolver = contribution.getModelResolver(); - Artifact resolved = resolver.resolveModel(Artifact.class, compositeFile); - if (resolved != null && !resolved.isUnresolved()) { - return resolved.getLocation(); - } else { - return null; - } - } - - /** - * Returns the contribution containing the given composite. - * - * @param contributions - * @param compositeURI - * @return - */ - private Contribution contribution(List contributions, String compositeURI) { - if (compositeURI != null && compositeURI.startsWith("/")) { - compositeURI = compositeURI.substring(1); - } - ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class); - Artifact compositeFile = contributionFactory.createArtifact(); - compositeFile.setUnresolved(true); - compositeFile.setURI(compositeURI); - for (Contribution c : contributions) { - ModelResolver resolver = c.getModelResolver(); - Artifact resolved = resolver.resolveModel(Artifact.class, compositeFile); - if (resolved != null && !resolved.isUnresolved()) { - return c; - } - } - return null; - } - - private void analyzeProblems() throws Exception { - - for (Problem problem : monitor.getProblems()) { - if ((problem.getSeverity() == Severity.ERROR) && (!problem.getMessageId().equals("SchemaError"))) { - if (problem.getCause() != null) { - throw problem.getCause(); - } else { - throw new ServiceRuntimeException(problem.toString()); - } - } - } } public void start() { @@ -760,65 +598,20 @@ public class NodeImpl implements SCANode, SCAClient { } /** - * Returns the extension point registry used by this node. + * Analyze problems reported by the artifact processors and builders. * - * @return - */ - public ExtensionPointRegistry getExtensionPointRegistry() { - return runtime.getExtensionPointRegistry(); - } - - /** - * Returns the composite being run by this node. - * - * @return - */ - public Composite getComposite() { - return composite; - } - - /** - * Returns contribution JARs available on the classpath. - * - * @return - */ - private static Map localContributions() { - Map localContributions = new HashMap(); - collectJARs(localContributions, Thread.currentThread().getContextClassLoader()); - return localContributions; - } - - /** - * Collect JARs on the classpath of a URLClassLoader - * @param urls - * @param cl + * @throws Exception */ - private static void collectJARs(Map urls, ClassLoader cl) { - if (cl == null) { - return; - } - - // Collect JARs from the URLClassLoader's classpath - if (cl instanceof URLClassLoader) { - URL[] jarURLs = ((URLClassLoader)cl).getURLs(); - if (jarURLs != null) { - for (URL jarURL : jarURLs) { - String file = jarURL.getPath(); - int i = file.lastIndexOf('/'); - if (i != -1 && i < file.length() - 1) { - file = file.substring(i + 1); - urls.put(file, jarURL); - } + private void analyzeProblems() throws Exception { + for (Problem problem : monitor.getProblems()) { + if ((problem.getSeverity() == Severity.ERROR) && (!problem.getMessageId().equals("SchemaError"))) { + if (problem.getCause() != null) { + throw problem.getCause(); + } else { + throw new ServiceRuntimeException(problem.toString()); } } } - - // Collect JARs from the parent ClassLoader - collectJARs(urls, cl.getParent()); - } - - public CompositeActivator getCompositeActivator() { - return compositeActivator; } } diff --git a/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java b/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java new file mode 100644 index 0000000000..f315be8431 --- /dev/null +++ b/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java @@ -0,0 +1,157 @@ +/* + * 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.sca.node.impl; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; +import java.net.URLClassLoader; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Map; + +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.contribution.ContributionFactory; +import org.apache.tuscany.sca.contribution.service.util.FileHelper; +import org.apache.tuscany.sca.node.SCAContribution; + +/** + * NodeUtil + * + * @version $Rev: $ $Date: $ + */ +public class NodeUtil { + + static URL getResource(final ClassLoader classLoader, final String compositeURI) { + return AccessController.doPrivileged(new PrivilegedAction() { + public URL run() { + return classLoader.getResource(compositeURI); + } + }); + } + + static Contribution createContribution(ContributionFactory contributionFactory, SCAContribution c) { + Contribution contribution = contributionFactory.createContribution(); + contribution.setURI(c.getURI()); + contribution.setLocation(c.getLocation()); + contribution.setUnresolved(true); + return contribution; + } + + /** + * Escape the space in URL string + * @param uri + * @return + */ + static URI createURI(String uri) { + if (uri.indexOf(' ') != -1) { + uri = uri.replace(" ", "%20"); + } + return URI.create(uri); + } + + /** + * Collect JARs on the classpath of a URLClassLoader + * @param urls + * @param cl + */ + static void collectJARs(Map urls, ClassLoader cl) { + if (cl == null) { + return; + } + + // Collect JARs from the URLClassLoader's classpath + if (cl instanceof URLClassLoader) { + URL[] jarURLs = ((URLClassLoader)cl).getURLs(); + if (jarURLs != null) { + for (URL jarURL : jarURLs) { + String file = jarURL.getPath(); + int i = file.lastIndexOf('/'); + if (i != -1 && i < file.length() - 1) { + file = file.substring(i + 1); + urls.put(file, jarURL); + } + } + } + } + + // Collect JARs from the parent ClassLoader + collectJARs(urls, cl.getParent()); + } + + static URL getContributionURL(URL contributionArtifactURL, String contributionArtifactPath) { + URL contributionURL = null; + // "jar:file://....../something.jar!/a/b/c/app.composite" + try { + String url = contributionArtifactURL.toExternalForm(); + String protocol = contributionArtifactURL.getProtocol(); + if ("file".equals(protocol)) { + // directory contribution + if (url.endsWith(contributionArtifactPath)) { + final String location = url.substring(0, url.lastIndexOf(contributionArtifactPath)); + // workaround from evil URL/URI form Maven + // contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); + // Allow privileged access to open URL stream. Add FilePermission to added to + // security policy file. + try { + contributionURL = AccessController.doPrivileged(new PrivilegedExceptionAction() { + public URL run() throws IOException { + return FileHelper.toFile(new URL(location)).toURI().toURL(); + } + }); + } catch (PrivilegedActionException e) { + throw (MalformedURLException)e.getException(); + } + } + + } else if ("jar".equals(protocol)) { + // jar contribution + String location = url.substring(4, url.lastIndexOf("!/")); + // workaround for evil URL/URI from Maven + contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); + + } else if ("wsjar".equals(protocol)) { + // See https://issues.apache.org/jira/browse/TUSCANY-2219 + // wsjar contribution + String location = url.substring(6, url.lastIndexOf("!/")); + // workaround for evil url/uri from maven + contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); + + } else if ("zip".equals(protocol)) { + // See https://issues.apache.org/jira/browse/TUSCANY-2598 + // zip contribution, remove the zip prefix and pad with file: + String location = "file:"+url.substring(4, url.lastIndexOf("!/")); + contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL(); + + } else if (protocol != null && (protocol.equals("bundle") || protocol.equals("bundleresource"))) { + contributionURL = + new URL(contributionArtifactURL.getProtocol(), contributionArtifactURL.getHost(), + contributionArtifactURL.getPort(), "/"); + } + } catch (MalformedURLException mfe) { + throw new IllegalArgumentException(mfe); + } + return contributionURL; + } + +} diff --git a/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java b/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java index 31b65272c4..a378e57d31 100644 --- a/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java +++ b/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java @@ -27,17 +27,13 @@ import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.TransformerFactory; - import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.EndpointFactory; import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver; @@ -45,6 +41,7 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionService; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.assembly.ActivationException; @@ -82,26 +79,20 @@ import org.apache.tuscany.sca.work.WorkScheduler; public class RuntimeBootStrapper { private static final Logger logger = Logger.getLogger(RuntimeBootStrapper.class.getName()); private List modules; - private ExtensionPointRegistry registry; private ClassLoader classLoader; - private AssemblyFactory assemblyFactory; - private ContributionService contributionService; private CompositeActivator compositeActivator; - private CompositeBuilder compositeBuilder; - // private DomainBuilder domainBuilder; private WorkScheduler workScheduler; private ScopeRegistry scopeRegistry; private ProxyFactory proxyFactory; private List policyDefinitions; private ModelResolver policyDefinitionsResolver; - private Monitor monitor; public RuntimeBootStrapper(ClassLoader classLoader) { this.classLoader = classLoader; } - public void start() throws ActivationException { + public void startRuntime() throws ActivationException { long start = System.currentTimeMillis(); // Create our extension point registry @@ -115,7 +106,7 @@ public class RuntimeBootStrapper { InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); // Get factory extension point - ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); // Get Message factory MessageFactory messageFactory = factories.getFactory(MessageFactory.class); @@ -190,7 +181,7 @@ public class RuntimeBootStrapper { } } - public void stop() throws ActivationException { + public void stopRuntime() throws ActivationException { long start = System.currentTimeMillis(); // Stop the runtime modules @@ -203,7 +194,6 @@ public class RuntimeBootStrapper { modules = null; registry = null; assemblyFactory = null; - contributionService = null; compositeActivator = null; workScheduler = null; scopeRegistry = null; @@ -215,50 +205,12 @@ public class RuntimeBootStrapper { } public void buildComposite(Composite composite) throws CompositeBuilderException { - //Get factory extension point - ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); - SCABindingFactory scaBindingFactory = factories.getFactory(SCABindingFactory.class); - IntentAttachPointTypeFactory intentAttachPointTypeFactory = - factories.getFactory(IntentAttachPointTypeFactory.class); - EndpointFactory endpointFactory = factories.getFactory(EndpointFactory.class); - DocumentBuilderFactory documentBuilderFactory = factories.getFactory(DocumentBuilderFactory.class); - TransformerFactory transformerFactory = factories.getFactory(TransformerFactory.class); - UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); - InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); - //Create a composite builder SCADefinitions aggregatedDefinitions = new SCADefinitionsImpl(); for (SCADefinitions definition : ((List)policyDefinitions)) { SCADefinitionsUtil.aggregateSCADefinitions(definition, aggregatedDefinitions); } - compositeBuilder = - RuntimeBuilder.createCompositeBuilder(monitor, - assemblyFactory, - scaBindingFactory, - endpointFactory, - intentAttachPointTypeFactory, - documentBuilderFactory, - transformerFactory, - mapper, - aggregatedDefinitions); - compositeBuilder.build(composite); - - } - - public ContributionService getContributionService() { - return contributionService; - } - - public CompositeActivator getCompositeActivator() { - return compositeActivator; - } - - public CompositeBuilder getCompositeBuilder() { - return compositeBuilder; - } - - public AssemblyFactory getAssemblyFactory() { - return assemblyFactory; + } private void loadSCADefinitions() throws ActivationException { @@ -383,11 +335,4 @@ public class RuntimeBootStrapper { return proxyFactory; } - /** - * @return the registry - */ - public ExtensionPointRegistry getExtensionPointRegistry() { - return registry; - } - } diff --git a/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java b/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java index 6c93fa7800..d7cda91b74 100644 --- a/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java +++ b/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java @@ -39,7 +39,6 @@ import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor; import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint; import org.apache.tuscany.sca.context.RequestContextFactory; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory; import org.apache.tuscany.sca.contribution.processor.DefaultValidationSchemaExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensiblePackageProcessor; @@ -61,6 +60,7 @@ import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryIm import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl; import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.assembly.ActivationException; import org.apache.tuscany.sca.core.assembly.CompositeActivator; @@ -123,7 +123,7 @@ public class RuntimeBuilder { registry.getExtensionPoint(EndpointResolverFactoryExtensionPoint.class); JavaInterfaceFactory javaInterfaceFactory = - registry.getExtensionPoint(ModelFactoryExtensionPoint.class).getFactory(JavaInterfaceFactory.class); + registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(JavaInterfaceFactory.class); RequestContextFactory requestContextFactory = registry.getExtensionPoint(ContextFactoryExtensionPoint.class).getFactory(RequestContextFactory.class); @@ -140,22 +140,6 @@ public class RuntimeBuilder { return compositeActivator; } - public static CompositeBuilder createCompositeBuilder(Monitor monitor, - AssemblyFactory assemblyFactory, - SCABindingFactory scaBindingFactory, - EndpointFactory endpointFactory, - IntentAttachPointTypeFactory intentAttachPointTypeFactory, - DocumentBuilderFactory documentBuilderFactory, - TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions) { - - return new CompositeBuilderImpl(assemblyFactory, endpointFactory, scaBindingFactory, - intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory, - interfaceContractMapper, policyDefinitions, - monitor); - } - /** * Create the contribution service used by this domain. * @@ -172,7 +156,7 @@ public class RuntimeBuilder { Monitor monitor) throws ActivationException { // Get the model factory extension point - ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); // Create a new XML input factory XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); diff --git a/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java b/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java index 83526e0f03..e4bda201fd 100644 --- a/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java +++ b/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java @@ -29,12 +29,12 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; /** @@ -52,7 +52,7 @@ public class JDKLoggingPolicyProcessor implements StAXArtifactProcessor>>Initializing WSPolicyProcessor"); } - public WSPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public WSPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { System.out.println(">>>Initializing WSPolicyProcessor"); } diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java index d47cbd7dbe..6b6e045c0c 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java @@ -21,10 +21,10 @@ package org.apache.tuscany.sca.policy.xml; import javax.xml.namespace.QName; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.IntentAttachPointType; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; @@ -44,7 +44,7 @@ public class BindingTypeProcessor extends IntentAttachPointTypeProcessor { super(policyFactory, intentAttachPointTypeFactory, extensionProcessor, monitor); } - public BindingTypeProcessor(ModelFactoryExtensionPoint modelFactories, + public BindingTypeProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { super(modelFactories.getFactory(PolicyFactory.class), diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java index 119afa3473..b4f5707214 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java @@ -21,10 +21,10 @@ package org.apache.tuscany.sca.policy.xml; import javax.xml.namespace.QName; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.IntentAttachPointType; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; @@ -44,7 +44,7 @@ public class ImplementationTypeProcessor extends IntentAttachPointTypeProcessor super(policyFactory, intentAttachPointTypeFactory, extensionProcessor, monitor); } - public ImplementationTypeProcessor(ModelFactoryExtensionPoint modelFactories, + public ImplementationTypeProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { super(modelFactories.getFactory(PolicyFactory.class), diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java index 868f37de23..efdf5d4b4f 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java @@ -31,13 +31,13 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -57,7 +57,7 @@ abstract class PolicyIntentProcessor extends BaseStAXArtifactP private PolicyFactory policyFactory; private Monitor monitor; - public PolicyIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public PolicyIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.policyFactory = modelFactories.getFactory(PolicyFactory.class); this.monitor = monitor; } diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java index a15d385b02..10d388982b 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java @@ -36,13 +36,13 @@ import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -64,7 +64,7 @@ public class PolicySetProcessor extends BaseStAXArtifactProcessor implements StA private XPathFactory xpathFactory = XPathFactory.newInstance(); private Monitor monitor; - public PolicySetProcessor(ModelFactoryExtensionPoint modelFactories, + public PolicySetProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { this.policyFactory = modelFactories.getFactory(PolicyFactory.class); diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java index 7c205292b0..656107b470 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java @@ -19,7 +19,7 @@ package org.apache.tuscany.sca.policy.xml; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.policy.ProfileIntent; @@ -35,7 +35,7 @@ public class ProfileIntentProcessor extends PolicyIntentProcessor super(policyFactory, monitor); } - public ProfileIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public ProfileIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { super(modelFactories, monitor); } diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java index abe80e2a54..7270dbe6db 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java @@ -19,7 +19,7 @@ package org.apache.tuscany.sca.policy.xml; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.policy.QualifiedIntent; @@ -31,7 +31,7 @@ import org.apache.tuscany.sca.policy.QualifiedIntent; */ public class QualifiedIntentProcessor extends PolicyIntentProcessor { - public QualifiedIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public QualifiedIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { super(modelFactories, monitor); } diff --git a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java index 73795349c1..e928ead4c6 100644 --- a/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java +++ b/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java @@ -19,7 +19,7 @@ package org.apache.tuscany.sca.policy.xml; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.policy.Intent; import org.apache.tuscany.sca.policy.PolicyFactory; @@ -35,7 +35,7 @@ public class SimpleIntentProcessor extends PolicyIntentProcessor { super(policyFactory, monitor); } - public SimpleIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public SimpleIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { super(modelFactories, monitor); } diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java index 408debdc8e..bdfd244293 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java +++ b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java @@ -31,47 +31,45 @@ import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; import org.apache.tuscany.sca.contribution.resolver.DefaultImportModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; -import org.apache.tuscany.sca.monitor.impl.ProblemImpl; import org.apache.tuscany.sca.workspace.Workspace; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderException; /** * A contribution dependency builder. * * @version $Rev$ $Date$ */ -public class ContributionDependencyBuilderImpl implements ContributionDependencyBuilder { +public class ContributionDependencyBuilderImpl implements ContributionBuilder { private static final Logger logger = Logger.getLogger(ContributionDependencyBuilderImpl.class.getName()); - private Monitor monitor; - /** * Constructs a new ContributionDependencyBuilder. */ - public ContributionDependencyBuilderImpl(Monitor monitor) { - - this.monitor = monitor; + public ContributionDependencyBuilderImpl(FactoryExtensionPoint factories) { } - /** - * Calculate the set of contributions that a contribution depends on. - * @param contribution - * @param workspace - * @return - */ - public List buildContributionDependencies(Contribution contribution, Workspace workspace) { + public String getID() { + return "org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"; + } + + public void build(Contribution contribution, Workspace workspace, Monitor monitor) throws ContributionBuilderException{ + contribution.getDependencies().clear(); + List dependencies = new ArrayList(); Set set = new HashSet(); dependencies.add(contribution); set.add(contribution); - addContributionDependencies(contribution, workspace, dependencies, set); + addContributionDependencies(contribution, workspace, dependencies, set, monitor); Collections.reverse(dependencies); - return dependencies; + + contribution.getDependencies().addAll(dependencies); } /** @@ -80,8 +78,9 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency * @param workspace * @param dependencies * @param set + * @param monitor */ - private void addContributionDependencies(Contribution contribution, Workspace workspace, List dependencies, Set set) { + private void addContributionDependencies(Contribution contribution, Workspace workspace, List dependencies, Set set, Monitor monitor) { // Go through the contribution imports for (Import import_: contribution.getImports()) { @@ -107,7 +106,7 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency dependencies.add(dependency); // Now add the dependencies of that contribution - addContributionDependencies(dependency, workspace, dependencies, set); + addContributionDependencies(dependency, workspace, dependencies, set, monitor); } } } @@ -122,7 +121,7 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency } else { // Record import resolution issue if (!(import_ instanceof DefaultImport)) { - warning("UnresolvedImport", import_, import_); + warning(monitor, "UnresolvedImport", import_, import_); } } } @@ -135,9 +134,9 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency * @param message * @param model */ - private void warning(String message, Object model, Object... messageParameters) { + private static void warning(Monitor monitor, String message, Object model, Object... messageParameters) { if (monitor != null) { - Problem problem = monitor.createProblem(getClass().getName(), "workspace-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); + Problem problem = monitor.createProblem(ContributionDependencyBuilderImpl.class.getName(), "workspace-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); monitor.problem(problem); } } diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java index 880e95480e..9aa57361fc 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java +++ b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java @@ -32,7 +32,6 @@ import org.apache.tuscany.sca.contribution.DefaultExport; import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; @@ -46,6 +45,7 @@ import org.apache.tuscany.sca.contribution.scanner.ContributionScanner; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.workspace.scanner.impl.DirectoryContributionScanner; @@ -60,14 +60,14 @@ import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; public class ContributionContentProcessor implements URLArtifactProcessor{ private ContributionFactory contributionFactory; private ModelResolverExtensionPoint modelResolvers; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private URLArtifactProcessor artifactProcessor; private StAXArtifactProcessor extensionProcessor; private UtilityExtensionPoint utilities; private Monitor monitor = null; public ContributionContentProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor extensionProcessor, Monitor monitor) { - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); this.modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); hackResolvers(modelResolvers); this.monitor = monitor; @@ -77,7 +77,7 @@ public class ContributionContentProcessor implements URLArtifactProcessor artifactProcessor, StAXArtifactProcessor extensionProcessor, Monitor monitor) { this.modelFactories = modelFactories; this.modelResolvers = modelResolvers; diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java index 6ef0fa753d..21a0382347 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java +++ b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java @@ -34,7 +34,6 @@ import org.apache.tuscany.sca.contribution.DefaultExport; import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; @@ -48,6 +47,7 @@ import org.apache.tuscany.sca.contribution.scanner.ContributionScanner; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.workspace.scanner.impl.DirectoryContributionScanner; import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; @@ -61,13 +61,13 @@ import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; public class ContributionInfoProcessor implements URLArtifactProcessor{ private ContributionFactory contributionFactory; private ModelResolverExtensionPoint modelResolvers; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private URLArtifactProcessorExtensionPoint artifactProcessors; private URLArtifactProcessor artifactProcessor; private StAXArtifactProcessor extensionProcessor; public ContributionInfoProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor extensionProcessor, Monitor monitor) { - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); this.modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); hackResolvers(modelResolvers); URLArtifactProcessorExtensionPoint artifactProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); @@ -77,7 +77,7 @@ public class ContributionInfoProcessor implements URLArtifactProcessor artifactProcessor) { + public ContributionInfoProcessor(FactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers, URLArtifactProcessor artifactProcessor) { this.modelFactories = modelFactories; this.modelResolvers = modelResolvers; hackResolvers(modelResolvers); diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder b/branches/sca-equinox/modules/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder new file mode 100644 index 0000000000..379d0a017e --- /dev/null +++ b/branches/sca-equinox/modules/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder @@ -0,0 +1,18 @@ +# 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. + +org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;id=org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder diff --git a/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java b/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java index f7b6b35679..63f6035433 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java +++ b/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java @@ -56,7 +56,7 @@ public class ContributionDependencyBuilderTestCase extends TestCase { public void tearDown() throws Exception { } - public void testAnalyze() { + public void testAnalyze() throws Exception { Workspace workspace = workspaceFactory.createWorkspace(); Contribution importer = contributionFactory.createContribution(); importer.setURI("importer"); @@ -89,8 +89,9 @@ public class ContributionDependencyBuilderTestCase extends TestCase { export.setNamespace("http://another"); another.getExports().add(export); - ContributionDependencyBuilderImpl analyzer = new ContributionDependencyBuilderImpl(null); - List dependencies = analyzer.buildContributionDependencies(importer, workspace); + ContributionDependencyBuilderImpl builder = new ContributionDependencyBuilderImpl(null); + builder.build(importer, workspace, null); + List dependencies = importer.getDependencies(); assertTrue(dependencies.size() == 3); assertTrue(dependencies.contains(importer)); assertTrue(dependencies.contains(imported)); diff --git a/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java b/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java index d0665a4ec8..50ea844804 100644 --- a/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java +++ b/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java @@ -31,13 +31,13 @@ import javax.xml.stream.XMLStreamWriter; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; @@ -75,7 +75,7 @@ public class WorkspaceProcessor extends BaseStAXArtifactProcessor implements StA * @param modelFactories * @param extensionProcessor */ - public WorkspaceProcessor(ModelFactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { + public WorkspaceProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor extensionProcessor, Monitor monitor) { this.workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); this.contributionFactory = modelFactories.getFactory(ContributionFactory.class); } diff --git a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java new file mode 100644 index 0000000000..b7c11f769b --- /dev/null +++ b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java @@ -0,0 +1,49 @@ +/* + * 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.sca.workspace.builder; + +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.workspace.Workspace; + +/** + * A contribution builder. + * + * @version $Rev$ $Date$ + */ +public interface ContributionBuilder { + + /** + * Returns the ID of the builder. + * + * @return + */ + String getID(); + + /** + * Build a contribution. + * + * @param contribution + * @param workspace + * @param monitor + */ + void build(Contribution contribution, Workspace workspace, Monitor monitor) throws ContributionBuilderException; + +} diff --git a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java new file mode 100644 index 0000000000..10c18def10 --- /dev/null +++ b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.workspace.builder; + +/** + * Reports a contribution builder exception. + * + * @version $Rev$ $Date$ + */ +public class ContributionBuilderException extends Exception { + private static final long serialVersionUID = -1198817287971778953L; + + public ContributionBuilderException() { + } + + public ContributionBuilderException(String message) { + super(message); + } + + public ContributionBuilderException(Throwable cause) { + super(cause); + } + + public ContributionBuilderException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java new file mode 100644 index 0000000000..8200321eec --- /dev/null +++ b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java @@ -0,0 +1,51 @@ +/* + * 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.sca.workspace.builder; + +/** + * An extension point for Contribution builders. + * + * @version $Rev: $ $Date: $ + */ +public interface ContributionBuilderExtensionPoint { + + /** + * Adds a contribution builder. + * + * @param contributionBuilder + */ + void addContributionBuilder(ContributionBuilder contributionBuilder); + + /** + * Removes a contribution builder. + * + * @param contributionBuilder + */ + void removeContributionBuilder(ContributionBuilder contributionBuilder); + + /** + * Returns the contribution builder with the given id. + * + * @param id + * @return + */ + ContributionBuilder getContributionBuilder(String id); + +} diff --git a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java deleted file mode 100644 index 6fab700243..0000000000 --- a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.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.sca.workspace.builder; - -import java.util.List; - -import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.workspace.Workspace; - -/** - * A contribution dependency builder. - * - * @version $Rev$ $Date$ - */ -public interface ContributionDependencyBuilder { - - /** - * Build the set of contributions that a contribution depends on. - * @param workspace - * @param contribution - * @return - */ - List buildContributionDependencies(Contribution contribution, Workspace workspace); - -} diff --git a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java new file mode 100644 index 0000000000..1918732a25 --- /dev/null +++ b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java @@ -0,0 +1,139 @@ +/* + * 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.sca.workspace.builder; + +import java.lang.reflect.Constructor; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import org.apache.tuscany.sca.contribution.Contribution; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; +import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.workspace.Workspace; + +/** + * Default implementation of a provider factory extension point. + * + * @version $Rev$ $Date$ + */ +public class DefaultContributionBuilderExtensionPoint implements ContributionBuilderExtensionPoint { + + private ExtensionPointRegistry registry; + private final Map builders = new HashMap(); + private boolean loaded; + + public DefaultContributionBuilderExtensionPoint(ExtensionPointRegistry registry) { + this.registry = registry; + } + + public void addContributionBuilder(ContributionBuilder builder) { + builders.put(builder.getID(), builder); + } + + public void removeContributionBuilder(ContributionBuilder builder) { + builders.remove(builder.getID()); + } + + public ContributionBuilder getContributionBuilder(String id) { + loadBuilders(); + return builders.get(id); + } + + /** + * Load builders declared under META-INF/services. + */ + private void loadBuilders() { + if (loaded) + return; + + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); + + // Get the provider factory service declarations + Set builderDeclarations; + ServiceDiscovery serviceDiscovery = ServiceDiscovery.getInstance(); + try { + builderDeclarations = serviceDiscovery.getServiceDeclarations(ContributionBuilder.class.getName()); + } catch (Exception e) { + throw new IllegalStateException(e); + } + + for (ServiceDeclaration builderDeclaration : builderDeclarations) { + Map attributes = builderDeclaration.getAttributes(); + String id = attributes.get("id"); + + ContributionBuilder builder = new LazyContributionBuilder(id, builderDeclaration, this, factories); + builders.put(id, builder); + } + } + + /** + * A wrapper around a contribution builder allowing lazy + * loading and initialization of implementation providers. + */ + private static class LazyContributionBuilder implements ContributionBuilder { + + private FactoryExtensionPoint factories; + private String id; + private ServiceDeclaration builderDeclaration; + private ContributionBuilder builder; + private ContributionBuilderExtensionPoint builders; + + private LazyContributionBuilder(String id, ServiceDeclaration factoryDeclaration, + ContributionBuilderExtensionPoint builders, FactoryExtensionPoint factories) { + this.id = id; + this.builderDeclaration = factoryDeclaration; + this.builders = builders; + this.factories = factories; + } + + public String getID() { + return id; + } + + public void build(Contribution contribution, Workspace workspace, Monitor monitor) throws ContributionBuilderException { + getBuilder().build(contribution, workspace, monitor); + } + + private ContributionBuilder getBuilder() { + if (builder == null) { + try { + Class builderClass = (Class)builderDeclaration.loadClass(); + try { + Constructor constructor = builderClass.getConstructor(FactoryExtensionPoint.class); + builder = constructor.newInstance(factories); + } catch (NoSuchMethodException e) { + Constructor constructor = builderClass.getConstructor(ContributionBuilderExtensionPoint.class, FactoryExtensionPoint.class); + builder = constructor.newInstance(builders, factories); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + return builder; + } + + } + +} diff --git a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java index e60a5d8108..8c2e119493 100644 --- a/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java +++ b/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java @@ -44,6 +44,7 @@ class WorkspaceImpl implements Workspace { private byte[] contents; private boolean unresolved; private ModelResolver modelResolver; + private List dependencies = new ArrayList(); /** * Constructs a new workspace. @@ -98,6 +99,10 @@ class WorkspaceImpl implements Workspace { public List getArtifacts() { return (List)(Object)contributions; } + + public List getDependencies() { + return dependencies; + } public ClassLoader getClassLoader() { //FIXME Remove later diff --git a/branches/sca-equinox/modules/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint b/branches/sca-equinox/modules/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint new file mode 100644 index 0000000000..98ad0b72b0 --- /dev/null +++ b/branches/sca-equinox/modules/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint @@ -0,0 +1,18 @@ +# 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. + +org.apache.tuscany.sca.workspace.builder.DefaultContributionBuilderExtensionPoint \ No newline at end of file diff --git a/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java b/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java index 5586bac6f6..f74ed2c589 100644 --- a/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java +++ b/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java @@ -24,11 +24,11 @@ import java.net.URL; import javax.xml.namespace.QName; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -46,7 +46,7 @@ public class XSDDocumentProcessor implements URLArtifactProcessor private XSDFactory factory; private Monitor monitor; - public XSDDocumentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public XSDDocumentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { this.factory = modelFactories.getFactory(XSDFactory.class); this.monitor = monitor; } diff --git a/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java b/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java index 3e22b49d31..7a8d40af10 100644 --- a/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java +++ b/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java @@ -30,10 +30,10 @@ import org.apache.tuscany.sca.contribution.Artifact; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.namespace.NamespaceImport; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionRuntimeException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.xsd.DefaultXSDFactory; import org.apache.tuscany.sca.xsd.XSDFactory; import org.apache.tuscany.sca.xsd.XSDefinition; @@ -55,7 +55,7 @@ public class XSDModelResolver implements ModelResolver { private Map> map = new HashMap>(); private XmlSchemaCollection schemaCollection; - public XSDModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { + public XSDModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) { this.contribution = contribution; this.schemaCollection = new XmlSchemaCollection(); schemaCollection.setSchemaResolver(new URIResolverImpl(contribution)); diff --git a/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java b/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java index 76e6a57c29..a42c916683 100644 --- a/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java +++ b/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java @@ -26,13 +26,13 @@ import javax.xml.namespace.QName; import junit.framework.Assert; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.xsd.XSDefinition; import org.apache.ws.commons.schema.XmlSchemaInclude; import org.apache.ws.commons.schema.XmlSchemaObjectCollection; @@ -55,7 +55,7 @@ public class XSDDocumentProcessorTestCase { ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors, null); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); resolver = new XSDModelResolver(null, modelFactories); } diff --git a/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java b/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java index ba74d8f99a..04e6b42dc1 100644 --- a/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java +++ b/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java @@ -19,8 +19,8 @@ package echo.provider; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; @@ -40,7 +40,7 @@ public class EchoBindingProviderFactory implements BindingProviderFactory { - public EchoBindingEncryptionPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public EchoBindingEncryptionPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) { } public Class getModelType() { diff --git a/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java b/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java index 28eede693d..8d33f55228 100644 --- a/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java +++ b/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java @@ -40,19 +40,16 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; -import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.ComponentService; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; -import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint; import org.apache.tuscany.sca.binding.atom.AtomBindingFactory; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -63,22 +60,20 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.implementation.node.NodeImplementation; import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; -import org.apache.tuscany.sca.implementation.node.builder.impl.NodeCompositeBuilderImpl; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.node.SCANode; import org.apache.tuscany.sca.node.launcher.NodeLauncher; -import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; -import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; import org.w3c.dom.Document; @@ -97,14 +92,13 @@ public class DistributeAndRunComponents { private static URLArtifactProcessor contributionProcessor; private static ModelResolverExtensionPoint modelResolvers; - private static ModelFactoryExtensionPoint modelFactories; + private static FactoryExtensionPoint modelFactories; private static WorkspaceFactory workspaceFactory; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; - private static DocumentBuilderFactory documentBuilderFactory; - private static TransformerFactory transformerFactory; private static StAXArtifactProcessor xmlProcessor; - private static ContributionDependencyBuilder contributionDependencyBuilder; + private static Monitor monitor; + private static ContributionBuilder contributionDependencyBuilder; private static CompositeBuilder domainCompositeBuilder; private static CompositeBuilder nodeCompositeBuilder; private static NodeImplementationFactory nodeFactory; @@ -118,7 +112,7 @@ public class DistributeAndRunComponents { // Create a monitor UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - Monitor monitor = monitorFactory.createMonitor(); + monitor = monitorFactory.createMonitor(); // Initialize the Tuscany module activators ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class); @@ -127,11 +121,9 @@ public class DistributeAndRunComponents { } // Get XML input/output factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); - documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); - transformerFactory = modelFactories.getFactory(TransformerFactory.class); // Get contribution workspace and assembly model factories workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); @@ -150,19 +142,14 @@ public class DistributeAndRunComponents { // Get the model resolvers modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); - // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); - // Create a composite builder - SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); - IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, - documentBuilderFactory, transformerFactory, contractMapper, monitor); - - // Create a node composite builder - nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, - documentBuilderFactory, transformerFactory, contractMapper, null, monitor); + // Get composite builders + CompositeBuilderExtensionPoint compositeBuilders = extensionPoints.getExtensionPoint(CompositeBuilderExtensionPoint.class); + domainCompositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); + nodeCompositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.implementation.node.builder.NodeCompositeBuilder"); } @@ -192,20 +179,17 @@ public class DistributeAndRunComponents { workspace.getContributions().add(clientContribution); // Build the contribution dependencies - Map> contributionDependencies = new HashMap>(); Set resolved = new HashSet(); for (Contribution contribution: workspace.getContributions()) { - List dependencies = contributionDependencyBuilder.buildContributionDependencies(contribution, workspace); + contributionDependencyBuilder.build(contribution, workspace, monitor); // Resolve contributions - for (Contribution dependency: dependencies) { + for (Contribution dependency: contribution.getDependencies()) { if (!resolved.contains(dependency)) { resolved.add(dependency); contributionProcessor.resolve(dependency, workspace.getModelResolver()); } } - - contributionDependencies.put(contribution, dependencies); } // Create a set of nodes, and assign the sample deployables to them @@ -237,7 +221,7 @@ public class DistributeAndRunComponents { node.setImplementation(nodeImplementation); // Keep track of what contributions will be needed by the node - nodeDependencies.put(node, contributionDependencies.get(contribution)); + nodeDependencies.put(node, contribution.getDependencies()); nodeID++; } @@ -249,7 +233,7 @@ public class DistributeAndRunComponents { // Build the nodes, this will apply their default binding configuration to the // composites assigned to them - nodeCompositeBuilder.build(cloudComposite); + nodeCompositeBuilder.build(cloudComposite, null, monitor); // Create a composite model for the domain Composite domainComposite = assemblyFactory.createComposite(); @@ -260,7 +244,7 @@ public class DistributeAndRunComponents { domainComposite.getIncludes().addAll(workspace.getDeployables()); // Build the domain composite and wire the components included in it - domainCompositeBuilder.build(domainComposite); + domainCompositeBuilder.build(domainComposite, null, monitor); // Print out the resulting domain composite System.out.println("domain.composite"); diff --git a/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeComponents.java b/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeComponents.java index def0a1894f..899ca1f24a 100644 --- a/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeComponents.java +++ b/branches/sca-equinox/samples/domain-management/src/main/java/manager/DistributeComponents.java @@ -26,7 +26,6 @@ import java.io.IOException; import java.net.URI; import java.net.URL; import java.util.HashSet; -import java.util.List; import java.util.Set; import javax.xml.namespace.QName; @@ -37,20 +36,16 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; -import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Component; import org.apache.tuscany.sca.assembly.ComponentService; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; -import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint; import org.apache.tuscany.sca.binding.atom.AtomBindingFactory; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -61,21 +56,18 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.implementation.node.NodeImplementation; import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; -import org.apache.tuscany.sca.implementation.node.builder.impl.NodeCompositeBuilderImpl; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; -import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; -import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; -import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; import org.w3c.dom.Document; @@ -109,15 +101,14 @@ import org.xml.sax.SAXException; public class DistributeComponents { private static URLArtifactProcessor contributionProcessor; + private static Monitor monitor; private static ModelResolverExtensionPoint modelResolvers; - private static ModelFactoryExtensionPoint modelFactories; + private static FactoryExtensionPoint modelFactories; private static WorkspaceFactory workspaceFactory; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; - private static DocumentBuilderFactory documentBuilderFactory; - private static TransformerFactory transformerFactory; private static StAXArtifactProcessor xmlProcessor; - private static ContributionDependencyBuilder contributionDependencyBuilder; + private static ContributionBuilder contributionDependencyBuilder; private static CompositeBuilder domainCompositeBuilder; private static CompositeBuilder nodeCompositeBuilder; private static NodeImplementationFactory nodeFactory; @@ -131,7 +122,7 @@ public class DistributeComponents { // Create a monitor UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - Monitor monitor = monitorFactory.createMonitor(); + monitor = monitorFactory.createMonitor(); // Initialize the Tuscany module activators ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class); @@ -140,11 +131,9 @@ public class DistributeComponents { } // Get XML input/output factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); - documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); - transformerFactory = modelFactories.getFactory(TransformerFactory.class); // Get contribution workspace and assembly model factories workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); @@ -163,19 +152,15 @@ public class DistributeComponents { // Get the model resolvers modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); - // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); - // Create a composite builder - SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); - IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, - documentBuilderFactory, transformerFactory, contractMapper, monitor); + // Get composite builders + CompositeBuilderExtensionPoint compositeBuilders = extensionPoints.getExtensionPoint(CompositeBuilderExtensionPoint.class); + domainCompositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); + nodeCompositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.implementation.node.builder.NodeCompositeBuilder"); - // Create a node composite builder - nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, - documentBuilderFactory, transformerFactory, contractMapper, null, monitor); } @@ -207,10 +192,10 @@ public class DistributeComponents { // Build the contribution dependencies Set resolved = new HashSet(); for (Contribution contribution: workspace.getContributions()) { - List dependencies = contributionDependencyBuilder.buildContributionDependencies(contribution, workspace); + contributionDependencyBuilder.build(contribution, workspace, monitor); // Resolve contributions - for (Contribution dependency: dependencies) { + for (Contribution dependency: contribution.getDependencies()) { if (!resolved.contains(dependency)) { resolved.add(dependency); contributionProcessor.resolve(dependency, workspace.getModelResolver()); @@ -252,7 +237,7 @@ public class DistributeComponents { // Build the nodes, this will apply their default binding configuration to the // composites assigned to them - nodeCompositeBuilder.build(cloudComposite); + nodeCompositeBuilder.build(cloudComposite, null, monitor); // Create a composite model for the domain Composite domainComposite = assemblyFactory.createComposite(); @@ -263,7 +248,7 @@ public class DistributeComponents { domainComposite.getIncludes().addAll(workspace.getDeployables()); // Build the domain composite and wire the components included in it - domainCompositeBuilder.build(domainComposite); + domainCompositeBuilder.build(domainComposite, null, monitor); // Print out the resulting domain composite System.out.println("domain.composite"); diff --git a/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListComponents.java b/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListComponents.java index 27cb31d57f..b8dee12962 100644 --- a/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListComponents.java +++ b/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListComponents.java @@ -22,7 +22,6 @@ package manager; import java.io.File; import java.net.URI; import java.net.URL; -import java.util.List; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Component; @@ -31,13 +30,13 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; @@ -46,8 +45,8 @@ import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; -import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; /** * Sample ListComponents task. @@ -68,10 +67,11 @@ import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuild public class ListComponents { private static URLArtifactProcessor contributionProcessor; + private static Monitor monitor; private static ModelResolverExtensionPoint modelResolvers; - private static ModelFactoryExtensionPoint modelFactories; + private static FactoryExtensionPoint modelFactories; private static WorkspaceFactory workspaceFactory; - private static ContributionDependencyBuilder contributionDependencyBuilder; + private static ContributionBuilder contributionDependencyBuilder; private static void init() { @@ -85,7 +85,7 @@ public class ListComponents { } // Get workspace contribution factory - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); // Create contribution content processor @@ -98,10 +98,11 @@ public class ListComponents { // Create a monitor UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - Monitor monitor = monitorFactory.createMonitor(); + monitor = monitorFactory.createMonitor(); - // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); } @@ -125,10 +126,10 @@ public class ListComponents { workspace.getContributions().add(assetsContribution); // Build the store contribution dependencies - List dependencies = contributionDependencyBuilder.buildContributionDependencies(storeContribution, workspace); + contributionDependencyBuilder.build(storeContribution, workspace, monitor); // Resolve the contributions - for (Contribution contribution: dependencies) { + for (Contribution contribution: storeContribution.getDependencies()) { contributionProcessor.resolve(contribution, workspace.getModelResolver()); } diff --git a/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListDependencies.java b/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListDependencies.java index 1bf8124682..9e57afbee3 100644 --- a/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListDependencies.java +++ b/branches/sca-equinox/samples/domain-management/src/main/java/manager/ListDependencies.java @@ -24,18 +24,18 @@ import java.net.URI; import java.net.URL; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; -import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; /** * Sample ListDependencies task. @@ -52,8 +52,9 @@ import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuild public class ListDependencies { private static URLArtifactProcessor contributionProcessor; + private static Monitor monitor; private static WorkspaceFactory workspaceFactory; - private static ContributionDependencyBuilder contributionDependencyBuilder; + private static ContributionBuilder contributionDependencyBuilder; private static void init() throws Exception { @@ -61,7 +62,7 @@ public class ListDependencies { ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); // Get contribution, workspace and assembly model factories - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); // Create contribution info processor @@ -71,10 +72,11 @@ public class ListDependencies { // Create a monitor UtilityExtensionPoint services = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); MonitorFactory monitorFactory = services.getUtility(MonitorFactory.class); - Monitor monitor = monitorFactory.createMonitor(); + monitor = monitorFactory.createMonitor(); - // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); } @@ -99,7 +101,8 @@ public class ListDependencies { // List the contribution dependencies of each contribution for (Contribution contribution: workspace.getContributions()) { System.out.println("Contribution: " + contribution.getURI()); - for (Contribution dependency: contributionDependencyBuilder.buildContributionDependencies(contribution, workspace)) { + contributionDependencyBuilder.build(contribution, workspace, monitor); + for (Contribution dependency: contribution.getDependencies()) { System.out.println(" dependency: " + dependency.getURI()); } } diff --git a/branches/sca-equinox/samples/domain-management/src/main/java/manager/WireComponents.java b/branches/sca-equinox/samples/domain-management/src/main/java/manager/WireComponents.java index d24d5c67c9..acc18a6293 100644 --- a/branches/sca-equinox/samples/domain-management/src/main/java/manager/WireComponents.java +++ b/branches/sca-equinox/samples/domain-management/src/main/java/manager/WireComponents.java @@ -25,7 +25,6 @@ import java.io.File; import java.net.URI; import java.net.URL; import java.util.HashSet; -import java.util.List; import java.util.Set; import javax.xml.namespace.QName; @@ -38,11 +37,9 @@ import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.SCABindingFactory; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; -import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; +import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint; import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; @@ -52,17 +49,16 @@ import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.ModuleActivator; import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.MonitorFactory; -import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.workspace.Workspace; import org.apache.tuscany.sca.workspace.WorkspaceFactory; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; -import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint; import org.apache.xml.serialize.OutputFormat; import org.apache.xml.serialize.XMLSerializer; import org.w3c.dom.Document; @@ -88,15 +84,14 @@ import org.w3c.dom.Document; public class WireComponents { private static URLArtifactProcessor contributionProcessor; + private static Monitor monitor; private static ModelResolverExtensionPoint modelResolvers; - private static ModelFactoryExtensionPoint modelFactories; + private static FactoryExtensionPoint modelFactories; private static WorkspaceFactory workspaceFactory; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; - private static DocumentBuilderFactory documentBuilderFactory; - private static TransformerFactory transformerFactory; private static StAXArtifactProcessor xmlProcessor; - private static ContributionDependencyBuilder contributionDependencyBuilder; + private static ContributionBuilder contributionDependencyBuilder; private static CompositeBuilder domainCompositeBuilder; private static void init() { @@ -107,7 +102,7 @@ public class WireComponents { // Create a monitor UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - Monitor monitor = monitorFactory.createMonitor(); + monitor = monitorFactory.createMonitor(); // Initialize the Tuscany module activators ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class); @@ -116,11 +111,9 @@ public class WireComponents { } // Get XML input/output factories - modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); - documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); - transformerFactory = modelFactories.getFactory(TransformerFactory.class); // Get contribution workspace and assembly model factories workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); @@ -137,15 +130,13 @@ public class WireComponents { // Get the model resolvers modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); - // Create a contribution dependency builder - contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); + // Get a contribution dependency builder + ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class); + contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"); - // Create a composite builder - SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); - IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, - documentBuilderFactory, transformerFactory, contractMapper, monitor); + // Get composite builder + CompositeBuilderExtensionPoint compositeBuilders = extensionPoints.getExtensionPoint(CompositeBuilderExtensionPoint.class); + domainCompositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); } @@ -178,10 +169,10 @@ public class WireComponents { // Build the contribution dependencies Set resolved = new HashSet(); for (Contribution contribution: workspace.getContributions()) { - List dependencies = contributionDependencyBuilder.buildContributionDependencies(contribution, workspace); + contributionDependencyBuilder.build(contribution, workspace, monitor); // Resolve contributions - for (Contribution dependency: dependencies) { + for (Contribution dependency: contribution.getDependencies()) { if (!resolved.contains(dependency)) { resolved.add(dependency); contributionProcessor.resolve(contribution, workspace.getModelResolver()); @@ -198,7 +189,7 @@ public class WireComponents { domainComposite.getIncludes().addAll(workspace.getDeployables()); // Build the domain composite and wire the components included in it - domainCompositeBuilder.build(domainComposite); + domainCompositeBuilder.build(domainComposite, null, monitor); // Print out the resulting domain composite ByteArrayOutputStream bos = new ByteArrayOutputStream(); diff --git a/branches/sca-equinox/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java b/branches/sca-equinox/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java index 2f1e5fcba8..a7908501a1 100644 --- a/branches/sca-equinox/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java +++ b/branches/sca-equinox/samples/implementation-crud-extension/src/main/java/crud/impl/CRUDImplementationFactoryImpl.java @@ -20,7 +20,7 @@ package crud.impl; import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; import crud.CRUDImplementation; @@ -35,7 +35,7 @@ public class CRUDImplementationFactoryImpl implements CRUDImplementationFactory private AssemblyFactory assemblyFactory; private JavaInterfaceFactory javaFactory; - public CRUDImplementationFactoryImpl(ModelFactoryExtensionPoint modelFactories) { + public CRUDImplementationFactoryImpl(FactoryExtensionPoint modelFactories) { this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class); } diff --git a/branches/sca-equinox/samples/implementation-pojo-extension/src/main/java/pojo/impl/POJOImplementationProcessor.java b/branches/sca-equinox/samples/implementation-pojo-extension/src/main/java/pojo/impl/POJOImplementationProcessor.java index 44a2cc0aa8..8ba343d3ef 100644 --- a/branches/sca-equinox/samples/implementation-pojo-extension/src/main/java/pojo/impl/POJOImplementationProcessor.java +++ b/branches/sca-equinox/samples/implementation-pojo-extension/src/main/java/pojo/impl/POJOImplementationProcessor.java @@ -29,13 +29,13 @@ import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.ComponentType; import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; import org.apache.tuscany.sca.interfacedef.java.JavaInterface; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract; @@ -63,7 +63,7 @@ public class POJOImplementationProcessor implements StAXArtifactProcessor