You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/10/06 10:33:10 UTC

svn commit: r702000 [6/8] - in /tuscany/branches/sca-equinox: demos/bigbank-account/src/main/java/bigbank/account/security/ itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/ itest/policy/src/test/java/org/apache/tuscany/sca/itest/ itest...

Modified: tuscany/branches/sca-equinox/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java Mon Oct  6 01:32:38 2008
@@ -28,13 +28,13 @@
 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.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.node.NodeImplementation;
 import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory;
 import org.apache.tuscany.sca.monitor.Monitor;
@@ -51,7 +51,7 @@
     private AssemblyFactory assemblyFactory;
     private NodeImplementationFactory implementationFactory;
     
-    public NodeImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public NodeImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         this.implementationFactory = modelFactories.getFactory(NodeImplementationFactory.class);
     }

Copied: tuscany/branches/sca-equinox/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder (from r701972, tuscany/branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder?p2=tuscany/branches/sca-equinox/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder&p1=tuscany/branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint&r1=701972&r2=702000&rev=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder Mon Oct  6 01:32:38 2008
@@ -6,7 +6,7 @@
 # "License"); you may not use this file except in compliance
 # with the License.  You may obtain a copy of the License at
 # 
-#   http://www.apache.org/licenses/LICENSE-2.0
+#   http:..www.apache.org.licenses.LICENSE-2.0
 # 
 # Unless required by applicable law or agreed to in writing,
 # software distributed under the License is distributed on an
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License. 
 
-org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint
+org.apache.tuscany.sca.implementation.node.builder.impl.NodeCompositeBuilderImpl;id=org.apache.tuscany.sca.implementation.node.builder.NodeCompositeBuilder

Modified: tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java Mon Oct  6 01:32:38 2008
@@ -37,6 +37,7 @@
 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.CompositeBindingConfigurationBuilderImpl;
 import org.apache.tuscany.sca.implementation.node.NodeImplementation;
 import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory;
 import org.apache.tuscany.sca.implementation.node.impl.NodeImplementationFactoryImpl;
@@ -52,7 +53,8 @@
     private SCABindingFactory scaBindingFactory;
     private NodeImplementationFactory nodeImplementationFactory;
     private Monitor monitor;
-    private CompositeBuilder configurationBuilder;
+    private CompositeBuilder bindingConfigurationBuilder;
+    private CompositeBuilder nodeConfigurationBuilder;
     private List<Binding> defaultBindings = new ArrayList<Binding>();
     
     @Override
@@ -60,7 +62,8 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         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 @@
         
         
         try {
-            configurationBuilder.build(nodeComposite(composite));
+            nodeConfigurationBuilder.build(nodeComposite(composite), null, null);
             fail();
         } catch(Exception ex){
             //System.out.println(ex.toString());
@@ -514,7 +517,7 @@
         
         
         try {
-            configurationBuilder.build(nodeComposite(composite));
+            nodeConfigurationBuilder.build(nodeComposite(composite), null, null);
             fail();
         } catch(Exception ex){
             System.out.println(ex.toString());

Modified: tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java Mon Oct  6 01:32:38 2008
@@ -31,12 +31,12 @@
 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 @@
         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 @@
         Composite composite = (Composite)staxProcessor.read(reader);
         assertNotNull(composite);
 
-        compositeBuilder.build(composite);
+        compositeBuilder.build(composite, null, null);
     }
 
 }

Modified: tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationFactoryImpl.java Mon Oct  6 01:32:38 2008
@@ -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 @@
     private AssemblyFactory assemblyFactory;
     private JavaInterfaceFactory javaFactory;
     
-    public ResourceImplementationFactoryImpl(ModelFactoryExtensionPoint modelFactories) {
+    public ResourceImplementationFactoryImpl(FactoryExtensionPoint modelFactories) {
         assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
     }

Modified: tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-resource/src/main/java/org/apache/tuscany/sca/implementation/resource/impl/ResourceImplementationProcessor.java Mon Oct  6 01:32:38 2008
@@ -31,12 +31,12 @@
 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 @@
     private ResourceImplementationFactory implementationFactory;
     private Monitor monitor;
 
-    public ResourceImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public ResourceImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         contributionFactory = modelFactories.getFactory(ContributionFactory.class);
         implementationFactory = modelFactories.getFactory(ResourceImplementationFactory.class);
         this.monitor = monitor;

Modified: tuscany/branches/sca-equinox/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProcessor.java Mon Oct  6 01:32:38 2008
@@ -33,12 +33,12 @@
 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.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -56,7 +56,7 @@
     private ContributionFactory contributionFactory;
     private Monitor monitor;
     
-    public ScriptImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public ScriptImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         contributionFactory = modelFactories.getFactory(ContributionFactory.class);
         this.monitor = monitor;

Modified: tuscany/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java Mon Oct  6 01:32:38 2008
@@ -30,12 +30,12 @@
 import org.apache.tuscany.sca.assembly.ComponentType;
 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.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.JavaImplementationFactory;
 import org.apache.tuscany.sca.implementation.spring.xml.SpringXMLComponentTypeLoader;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
@@ -65,7 +65,7 @@
     private PolicyAttachPointProcessor policyProcessor;
     private Monitor monitor;
     
-    public SpringImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public SpringImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
         this.javaImplementationFactory = modelFactories.getFactory(JavaImplementationFactory.class);

Modified: tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java Mon Oct  6 01:32:38 2008
@@ -20,7 +20,7 @@
 package org.apache.tuscany.sca.implementation.widget;
 
 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;
 
 /**
@@ -33,7 +33,7 @@
     private AssemblyFactory assemblyFactory;
     private JavaInterfaceFactory javaFactory;
     
-    public WidgetImplementationFactory(ModelFactoryExtensionPoint modelFactories) {
+    public WidgetImplementationFactory(FactoryExtensionPoint modelFactories) {
         assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
     }

Modified: tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java Mon Oct  6 01:32:38 2008
@@ -32,12 +32,12 @@
 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.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -57,7 +57,7 @@
     private WidgetImplementationFactory implementationFactory;
     private Monitor monitor;
     
-    public WidgetImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public WidgetImplementationProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     	assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         contributionFactory = modelFactories.getFactory(ContributionFactory.class);
         implementationFactory = new WidgetImplementationFactory(modelFactories); 

Modified: tuscany/branches/sca-equinox/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/xml/XQueryImplementationProcessor.java Mon Oct  6 01:32:38 2008
@@ -29,12 +29,12 @@
 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.xquery.XQueryImplementation;
 import org.apache.tuscany.sca.implementation.xquery.XQueryImplementationFactory;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
@@ -59,7 +59,7 @@
     private ContributionFactory contributionFactory;
     private Monitor monitor;
 
-    public XQueryImplementationProcessor(ModelFactoryExtensionPoint modelFactoryExtensionPoint, Monitor monitor) {
+    public XQueryImplementationProcessor(FactoryExtensionPoint modelFactoryExtensionPoint, Monitor monitor) {
         assemblyFactory = modelFactoryExtensionPoint.getFactory(AssemblyFactory.class);
         javaFactory = modelFactoryExtensionPoint.getFactory(JavaInterfaceFactory.class);
         contributionFactory = modelFactoryExtensionPoint.getFactory(ContributionFactory.class);

Modified: tuscany/branches/sca-equinox/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-java-xml/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java Mon Oct  6 01:32:38 2008
@@ -27,13 +27,13 @@
 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.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;
@@ -52,7 +52,7 @@
     private JavaInterfaceFactory javaFactory;
     private Monitor monitor;
 
-    public JavaInterfaceProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public JavaInterfaceProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
         this.monitor = monitor;
     }

Modified: tuscany/branches/sca-equinox/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-java-xml/src/test/java/org/apache/tuscany/sca/interfacedef/java/xml/ReadTestCase.java Mon Oct  6 01:32:38 2008
@@ -34,15 +34,14 @@
 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.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 
 /**
@@ -65,13 +64,13 @@
         StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
         staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, 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 testReadComponentType() throws Exception {
@@ -94,7 +93,7 @@
         Composite composite = (Composite)staxProcessor.read(reader);
         assertNotNull(composite);
 
-        compositeBuilder.build(composite);
+        compositeBuilder.build(composite, null, null);
     }
 
 }

Modified: tuscany/branches/sca-equinox/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java Mon Oct  6 01:32:38 2008
@@ -22,7 +22,7 @@
 import java.util.List;
 import java.util.Set;
 
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+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.java.impl.JavaInterfaceFactoryImpl;
@@ -36,13 +36,13 @@
  * @version $Rev$ $Date$
  */
 public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implements JavaInterfaceFactory {
-    private ModelFactoryExtensionPoint modelFactoryExtensionPoint;
+    private FactoryExtensionPoint modelFactoryExtensionPoint;
     private boolean loadedVisitors; 
     
     public DefaultJavaInterfaceFactory() {
     }
     
-    public DefaultJavaInterfaceFactory(ModelFactoryExtensionPoint modelFactoryExtensionPoint) {
+    public DefaultJavaInterfaceFactory(FactoryExtensionPoint modelFactoryExtensionPoint) {
         this.modelFactoryExtensionPoint = modelFactoryExtensionPoint;
     }
     

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLDocumentProcessor.java Mon Oct  6 01:32:38 2008
@@ -33,11 +33,11 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-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.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
 import org.apache.tuscany.sca.monitor.Monitor;
@@ -64,7 +64,7 @@
     private XSDFactory xsdFactory;
     private Monitor monitor;
 
-    public WSDLDocumentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public WSDLDocumentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.factory = modelFactories.getFactory(WSDLFactory.class);
         this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
         this.monitor = monitor;

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java Mon Oct  6 01:32:38 2008
@@ -28,12 +28,12 @@
 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.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
@@ -54,7 +54,7 @@
     private WSDLFactory wsdlFactory;
     private Monitor monitor;
 
-    public WSDLInterfaceProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public WSDLInterfaceProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
         this.monitor = monitor;
     }

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java Mon Oct  6 01:32:38 2008
@@ -52,11 +52,11 @@
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 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.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionRuntimeException;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
 import org.apache.tuscany.sca.xsd.XSDFactory;
@@ -111,7 +111,7 @@
     private ContributionFactory contributionFactory;
     private XSDFactory xsdFactory;
 
-    public WSDLModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) {
+    public WSDLModelResolver(Contribution contribution, FactoryExtensionPoint modelFactories) {
         this.contribution = contribution;
 
         this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/AbstractWSDLTestCase.java Mon Oct  6 01:32:38 2008
@@ -23,7 +23,6 @@
 
 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.ExtensibleURLArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
@@ -32,6 +31,7 @@
 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.xsd.XSDFactory;
 
 /**
@@ -51,7 +51,7 @@
     @Override
     protected void setUp() throws Exception {
         ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
-        ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
         wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
         xsdFactory = modelFactories.getFactory(XSDFactory.class);
         

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/ReadTestCase.java Mon Oct  6 01:32:38 2008
@@ -33,15 +33,14 @@
 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.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 
 /**
@@ -62,13 +61,13 @@
         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 testReadComponentType() throws Exception {
@@ -91,7 +90,7 @@
         Composite composite = (Composite)staxProcessor.read(reader);
         assertNotNull(composite);
 
-        compositeBuilder.build(composite);
+        compositeBuilder.build(composite, null, null);
     }
 
 }

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLTestCase.java Mon Oct  6 01:32:38 2008
@@ -26,11 +26,11 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
 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.interfacedef.wsdl.WSDLDefinition;
 
 /**
@@ -49,7 +49,7 @@
         URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
         documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors, null);
 
-        ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
         wsdlResolver = new WSDLModelResolver(null, modelFactories);
     }
 

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/DefaultWSDLFactory.java Mon Oct  6 01:32:38 2008
@@ -18,7 +18,7 @@
  */
 package org.apache.tuscany.sca.interfacedef.wsdl;
 
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLFactoryImpl;
 
 /**
@@ -28,7 +28,7 @@
  */
 public class DefaultWSDLFactory extends WSDLFactoryImpl implements WSDLFactory {
 
-    public DefaultWSDLFactory(ModelFactoryExtensionPoint modelFactories) {
+    public DefaultWSDLFactory(FactoryExtensionPoint modelFactories) {
         super(modelFactories);
     }
 

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java Mon Oct  6 01:32:38 2008
@@ -20,8 +20,8 @@
 
 import javax.wsdl.PortType;
 
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
@@ -37,7 +37,7 @@
     
     private WSDLInterfaceIntrospectorImpl introspector;
     
-    public WSDLFactoryImpl(ModelFactoryExtensionPoint modelFactories) {
+    public WSDLFactoryImpl(FactoryExtensionPoint modelFactories) {
         introspector = new WSDLInterfaceIntrospectorImpl(modelFactories);
     }
 

Modified: tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java Mon Oct  6 01:32:38 2008
@@ -27,8 +27,8 @@
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.ConversationSequence;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
@@ -50,7 +50,7 @@
     private XSDFactory xsdFactory;
     private PolicyFactory policyFactory;
     
-    public WSDLInterfaceIntrospectorImpl(ModelFactoryExtensionPoint modelFactories) {
+    public WSDLInterfaceIntrospectorImpl(FactoryExtensionPoint modelFactories) {
         this.xsdFactory = modelFactories.getFactory(XSDFactory.class);;
         this.policyFactory = modelFactories.getFactory(PolicyFactory.class);;
     }

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Mon Oct  6 01:32:38 2008
@@ -19,47 +19,57 @@
 
 package org.apache.tuscany.sca.node.impl;
 
+import static org.apache.tuscany.sca.node.impl.NodeUtil.collectJARs;
+import static org.apache.tuscany.sca.node.impl.NodeUtil.createContribution;
+import static org.apache.tuscany.sca.node.impl.NodeUtil.createURI;
+import static org.apache.tuscany.sca.node.impl.NodeUtil.getContributionURL;
+import static org.apache.tuscany.sca.node.impl.NodeUtil.getResource;
+
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.IOException;
 import java.io.InputStream;
-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.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamReader;
+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.ComponentService;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.CompositeService;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint;
 import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor;
 import org.apache.tuscany.sca.contribution.Artifact;
 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;
 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.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.contribution.service.util.FileHelper;
+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.core.assembly.ActivationException;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
@@ -74,12 +84,16 @@
 import org.apache.tuscany.sca.node.SCANode;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
+import org.apache.tuscany.sca.workspace.Workspace;
+import org.apache.tuscany.sca.workspace.WorkspaceFactory;
+import org.apache.tuscany.sca.workspace.builder.ContributionBuilder;
+import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ServiceReference;
 import org.osoa.sca.ServiceRuntimeException;
 
 /**
- * A local representation of the SCADomain running on a single node
+ * Represents an SCA runtime node.
  * 
  * @version $Rev$ $Date$
  */
@@ -90,19 +104,28 @@
     // The node configuration name, used for logging
     private String configurationName;
 
-    // The Tuscany runtime that does the hard work
-    private RuntimeBootStrapper runtime;
-    private CompositeActivator compositeActivator;
-    private XMLInputFactory inputFactory;
-    private ModelFactoryExtensionPoint modelFactories;
-    private StAXArtifactProcessorExtensionPoint artifactProcessors;
-    private URLArtifactProcessorExtensionPoint documentProcessors;
-    private Monitor monitor;
-
-    private List<Contribution> contributions;
     // The composite loaded into this node
     private Composite composite;
 
+    private Monitor monitor;
+    private URLArtifactProcessor<Contribution> 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<Object> 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 @@
 
         try {
             // Initialize the runtime
-            initRuntime();
+            init();
 
             // Read the node configuration feed
-            StAXArtifactProcessor<ConfiguredNodeImplementation> configurationProcessor =
-                artifactProcessors.getProcessor(ConfiguredNodeImplementation.class);
+            StAXArtifactProcessor<ConfiguredNodeImplementation> configurationProcessor = xmlProcessors.getProcessor(ConfiguredNodeImplementation.class);
             URL configurationURL = new URL(configurationURI);
             InputStream is = configurationURL.openStream();
             XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
@@ -161,7 +183,7 @@
         }
         try {
             // Initialize the runtime
-            initRuntime();
+            init();
 
             ConfiguredNodeImplementation config = findNodeConfiguration(compositeURI, classLoader);
             configureNode(config);
@@ -227,77 +249,11 @@
 
     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<URL>() {
-                            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<URL>() {
-            public URL run() {
-                return classLoader.getResource(compositeURI);
-            }
-        });
-    }
-
     /** 
      * Constructs a new SCA node.
      *  
@@ -310,7 +266,7 @@
 
         try {
             // Initialize the runtime
-            initRuntime();
+            init();
 
             URI uri = compositeURI == null ? null : URI.create(compositeURI);
             ConfiguredNodeImplementation configuration = null;
@@ -329,9 +285,7 @@
                 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 @@
 
     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 @@
 
         try {
             // Initialize the runtime
-            initRuntime();
+            init();
 
             ConfiguredNodeImplementation configuration = null;
             if (contributions == null || contributions.length == 0) {
@@ -380,22 +333,18 @@
                 configuration = nodeImplementationFactory.createConfiguredNodeImplementation();
 
                 // Read the composite model
-                StAXArtifactProcessor<Composite> compositeProcessor = artifactProcessors.getProcessor(Composite.class);
+                StAXArtifactProcessor<Composite> 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 @@
         }
     }
 
-    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 @@
         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<String, URL> 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<Contribution>();
-        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<Composite> deployables = new ArrayList<Composite>();
-            for (Contribution c : contributions) {
-                deployables.addAll(c.getDeployables());
-            }
-            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);
+        // Build the contribution dependencies
+        Set<Contribution> resolved = new HashSet<Contribution>();
+        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());
                 }
-                compositeURL = new URL(location(contribution, uri.toString()));
-
-            } else {
-
-                // If the composite URI is an absolute URI, use it as is
-                compositeURL = uri.toURL();
             }
-
-            URLArtifactProcessor<Composite> 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);
+        
+        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;
+                }
+            }
         }
 
-        // Resolve the given composite within the scope of the selected contribution
-        if (contribution != null) {
-            StAXArtifactProcessor<Composite> 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 @@
         // 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<Composite> 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<Contribution> 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 @@
     }
 
     /**
-     * Returns the extension point registry used by this node.
-     * 
-     * @return
-     */
-    public ExtensionPointRegistry getExtensionPointRegistry() {
-        return runtime.getExtensionPointRegistry();
-    }
-
-    /**
-     * Returns the composite being run by this node.
+     * Analyze problems reported by the artifact processors and builders.
      * 
-     * @return
-     */
-    public Composite getComposite() {
-        return composite;
-    }
-
-    /**
-     * Returns contribution JARs available on the classpath.
-     * 
-     * @return
-     */
-    private static Map<String, URL> localContributions() {
-        Map<String, URL> localContributions = new HashMap<String, URL>();
-        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<String, URL> 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;
     }
 
 }