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 [7/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...

Added: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java?rev=702000&view=auto
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java (added)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java Mon Oct  6 01:32:38 2008
@@ -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<URL>() {
+            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<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);
+                    }
+                }
+            }
+        }
+    
+        // 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<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;
+    }
+
+}

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.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/RuntimeBootStrapper.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java Mon Oct  6 01:32:38 2008
@@ -27,17 +27,13 @@
 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.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 @@
 public class RuntimeBootStrapper {
     private static final Logger logger = Logger.getLogger(RuntimeBootStrapper.class.getName());
     private List<ModuleActivator> 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<SCADefinitions> 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 @@
         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 void stop() throws ActivationException {
+    public void stopRuntime() throws ActivationException {
         long start = System.currentTimeMillis();
 
         // Stop the runtime modules
@@ -203,7 +194,6 @@
         modules = null;
         registry = null;
         assemblyFactory = null;
-        contributionService = null;
         compositeActivator = null;
         workScheduler = null;
         scopeRegistry = null;
@@ -215,50 +205,12 @@
     }
 
     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<SCADefinitions>)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 @@
         return proxyFactory;
     }
 
-    /**
-     * @return the registry
-     */
-    public ExtensionPointRegistry getExtensionPointRegistry() {
-        return registry;
-    }
-
 }

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.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/RuntimeBuilder.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java Mon Oct  6 01:32:38 2008
@@ -39,7 +39,6 @@
 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.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 @@
             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 @@
         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 @@
                                                                 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);

Modified: tuscany/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-logging/src/main/java/org/apache/tuscany/sca/policy/logging/jdk/JDKLoggingPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -29,12 +29,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.monitor.Monitor;
 
 /**
@@ -52,7 +52,7 @@
         return JDK_LOGGING_POLICY_QNAME;
     }
     
-    public JDKLoggingPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public JDKLoggingPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     }
 
     

Modified: tuscany/branches/sca-equinox/modules/policy-security-jsr250/src/main/java/org/apache/tuscany/sca/policy/jsr250/JSR250Activator.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-security-jsr250/src/main/java/org/apache/tuscany/sca/policy/jsr250/JSR250Activator.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-security-jsr250/src/main/java/org/apache/tuscany/sca/policy/jsr250/JSR250Activator.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-security-jsr250/src/main/java/org/apache/tuscany/sca/policy/jsr250/JSR250Activator.java Mon Oct  6 01:32:38 2008
@@ -20,8 +20,8 @@
 package org.apache.tuscany.sca.policy.jsr250;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
-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.implementation.java.JavaImplementationFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
@@ -35,7 +35,7 @@
 public class JSR250Activator implements ModuleActivator {
 
     public void start(ExtensionPointRegistry registry) {
-        ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class);
         AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
         PolicyFactory policyFactory = modelFactories.getFactory(PolicyFactory.class);
         

Modified: tuscany/branches/sca-equinox/modules/policy-security-ws/src/main/java/org/apache/tuscany/sca/policy/security/ws/Axis2ConfigParamPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-security-ws/src/main/java/org/apache/tuscany/sca/policy/security/ws/Axis2ConfigParamPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-security-ws/src/main/java/org/apache/tuscany/sca/policy/security/ws/Axis2ConfigParamPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-security-ws/src/main/java/org/apache/tuscany/sca/policy/security/ws/Axis2ConfigParamPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -31,12 +31,12 @@
 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 @@
         return AXIS2_CONFIG_PARAM_POLICY_QNAME;
     }
     
-    public Axis2ConfigParamPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public Axis2ConfigParamPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     }
 
     public Axis2ConfigParamPolicy read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {

Modified: tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -29,12 +29,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.monitor.Monitor;
 
 /**
@@ -51,7 +51,7 @@
         return BasicAuthenticationPolicy.BASIC_AUTHENTICATION_POLICY_QNAME;
     }
     
-    public BasicAuthenticationPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public BasicAuthenticationPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     }
 
     

Modified: tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authorization/AuthorizationPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -28,12 +28,12 @@
 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.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -51,7 +51,7 @@
         return AuthorizationPolicy.NAME;
     }
 
-    public AuthorizationPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public AuthorizationPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.monitor = monitor;
     }
     

Modified: tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -26,12 +26,12 @@
 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.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -49,7 +49,7 @@
         return SecurityIdentityPolicy.NAME;
     }
 
-    public SecurityIdentityPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public SecurityIdentityPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         this.monitor = monitor;
     }
 

Modified: tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProcessor.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.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -56,7 +56,7 @@
         return JAAS_AUTHENTICATION_POLICY_QNAME;
     }
     
-    public JaasAuthenticationPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public JaasAuthenticationPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     	this.monitor = monitor;
     }
     

Modified: tuscany/branches/sca-equinox/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -26,12 +26,12 @@
 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;
 
 /**
@@ -45,7 +45,7 @@
         return TransactionPolicy.NAME;
     }
 
-    public TransactionPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public TransactionPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     }
 
     public TransactionPolicy read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {

Modified: tuscany/branches/sca-equinox/modules/policy-xml-ws/src/main/java/org/apache/tuscany/sca/policy/xml/ws/WSPolicyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml-ws/src/main/java/org/apache/tuscany/sca/policy/xml/ws/WSPolicyProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml-ws/src/main/java/org/apache/tuscany/sca/policy/xml/ws/WSPolicyProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml-ws/src/main/java/org/apache/tuscany/sca/policy/xml/ws/WSPolicyProcessor.java Mon Oct  6 01:32:38 2008
@@ -33,13 +33,13 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.neethi.PolicyEngine;
-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.policy.xml.PolicyConstants;
 
@@ -59,7 +59,7 @@
     	System.out.println(">>>Initializing WSPolicyProcessor");
     }
     
-    public WSPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public WSPolicyProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
     	System.out.println(">>>Initializing WSPolicyProcessor");
     }
     

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java Mon Oct  6 01:32:38 2008
@@ -21,10 +21,10 @@
 
 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 @@
         super(policyFactory, intentAttachPointTypeFactory, extensionProcessor, monitor);
     }
 
-    public BindingTypeProcessor(ModelFactoryExtensionPoint modelFactories, 
+    public BindingTypeProcessor(FactoryExtensionPoint modelFactories, 
     		                    StAXArtifactProcessor<Object> extensionProcessor,
     		                    Monitor monitor) {
         super(modelFactories.getFactory(PolicyFactory.class),

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java Mon Oct  6 01:32:38 2008
@@ -21,10 +21,10 @@
 
 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 @@
         super(policyFactory, intentAttachPointTypeFactory, extensionProcessor, monitor);
     }
 
-    public ImplementationTypeProcessor(ModelFactoryExtensionPoint modelFactories, 
+    public ImplementationTypeProcessor(FactoryExtensionPoint modelFactories, 
     								   StAXArtifactProcessor<Object> extensionProcessor,
     								   Monitor monitor) {
         super(modelFactories.getFactory(PolicyFactory.class),

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java Mon Oct  6 01:32:38 2008
@@ -31,13 +31,13 @@
 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 @@
     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;
     }

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java Mon Oct  6 01:32:38 2008
@@ -36,13 +36,13 @@
 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 @@
     private XPathFactory xpathFactory = XPathFactory.newInstance();
     private Monitor monitor;
     
-    public PolicySetProcessor(ModelFactoryExtensionPoint modelFactories, 
+    public PolicySetProcessor(FactoryExtensionPoint modelFactories, 
     						  StAXArtifactProcessor<Object> extensionProcessor,
     						  Monitor monitor) {
         this.policyFactory = modelFactories.getFactory(PolicyFactory.class);

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java Mon Oct  6 01:32:38 2008
@@ -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 @@
         super(policyFactory, monitor);
     }
     
-    public ProfileIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public ProfileIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         super(modelFactories, monitor);
     }
 

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java Mon Oct  6 01:32:38 2008
@@ -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 @@
  */
 public class QualifiedIntentProcessor extends PolicyIntentProcessor<QualifiedIntent> {
 	
-    public QualifiedIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public QualifiedIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         super(modelFactories, monitor);
     }
     

Modified: tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java Mon Oct  6 01:32:38 2008
@@ -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 @@
         super(policyFactory, monitor);
     }
 
-    public SimpleIntentProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+    public SimpleIntentProcessor(FactoryExtensionPoint modelFactories, Monitor monitor) {
         super(modelFactories, monitor);
     }
 

Modified: tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java Mon Oct  6 01:32:38 2008
@@ -31,47 +31,45 @@
 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<Contribution> 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<Contribution> dependencies = new ArrayList<Contribution>();
         Set<Contribution> set = new HashSet<Contribution>();
 
         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 @@
      * @param workspace
      * @param dependencies
      * @param set
+     * @param monitor
      */
-    private void addContributionDependencies(Contribution contribution, Workspace workspace, List<Contribution> dependencies, Set<Contribution> set) {
+    private void addContributionDependencies(Contribution contribution, Workspace workspace, List<Contribution> dependencies, Set<Contribution> set, Monitor monitor) {
         
         // Go through the contribution imports
         for (Import import_: contribution.getImports()) {
@@ -107,7 +106,7 @@
                             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 @@
             } else {
                 // Record import resolution issue
                 if (!(import_ instanceof DefaultImport)) {
-                    warning("UnresolvedImport", import_, import_);
+                    warning(monitor, "UnresolvedImport", import_, import_);
                 }
             }
         }
@@ -135,9 +134,9 @@
      * @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);
         }
     }

Modified: tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java Mon Oct  6 01:32:38 2008
@@ -32,7 +32,6 @@
 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.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 @@
 public class ContributionContentProcessor implements URLArtifactProcessor<Contribution>{
     private ContributionFactory contributionFactory;
     private ModelResolverExtensionPoint modelResolvers;
-    private ModelFactoryExtensionPoint modelFactories;
+    private FactoryExtensionPoint modelFactories;
     private URLArtifactProcessor<Object> artifactProcessor;
     private StAXArtifactProcessor<Object> extensionProcessor;
     private UtilityExtensionPoint utilities;
     private Monitor monitor = null;
 
     public ContributionContentProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor<Object> 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 @@
         this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
     }
     
-    public ContributionContentProcessor(ModelFactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers,
+    public ContributionContentProcessor(FactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers,
                                         URLArtifactProcessor<Object> artifactProcessor, StAXArtifactProcessor<Object> extensionProcessor, Monitor monitor) {
         this.modelFactories = modelFactories;
         this.modelResolvers = modelResolvers;

Modified: tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java Mon Oct  6 01:32:38 2008
@@ -34,7 +34,6 @@
 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.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 @@
 public class ContributionInfoProcessor implements URLArtifactProcessor<Contribution>{
     private ContributionFactory contributionFactory;
     private ModelResolverExtensionPoint modelResolvers;
-    private ModelFactoryExtensionPoint modelFactories;
+    private FactoryExtensionPoint modelFactories;
     private URLArtifactProcessorExtensionPoint artifactProcessors;
     private URLArtifactProcessor<Object> artifactProcessor;
     private StAXArtifactProcessor<Object> extensionProcessor;
 
     public ContributionInfoProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor<Object> 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 @@
         this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
     }
     
-    public ContributionInfoProcessor(ModelFactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers, URLArtifactProcessor<Object> artifactProcessor) {
+    public ContributionInfoProcessor(FactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers, URLArtifactProcessor<Object> artifactProcessor) {
         this.modelFactories = modelFactories;
         this.modelResolvers = modelResolvers;
         hackResolvers(modelResolvers);

Copied: tuscany/branches/sca-equinox/modules/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder (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/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder?p2=tuscany/branches/sca-equinox/modules/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder&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/workspace-impl/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilder Mon Oct  6 01:32:38 2008
@@ -1,18 +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.contribution.DefaultModelFactoryExtensionPoint
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT 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

Modified: tuscany/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java Mon Oct  6 01:32:38 2008
@@ -56,7 +56,7 @@
     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 @@
         export.setNamespace("http://another");
         another.getExports().add(export);
         
-        ContributionDependencyBuilderImpl analyzer = new ContributionDependencyBuilderImpl(null);
-        List<Contribution> dependencies = analyzer.buildContributionDependencies(importer, workspace);
+        ContributionDependencyBuilderImpl builder = new ContributionDependencyBuilderImpl(null);
+        builder.build(importer, workspace, null);
+        List<Contribution> dependencies = importer.getDependencies();
         assertTrue(dependencies.size() == 3);
         assertTrue(dependencies.contains(importer));
         assertTrue(dependencies.contains(imported));

Modified: tuscany/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace-xml/src/main/java/org/apache/tuscany/sca/workspace/xml/WorkspaceProcessor.java Mon Oct  6 01:32:38 2008
@@ -31,13 +31,13 @@
 
 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 @@
      * @param modelFactories
      * @param extensionProcessor
      */
-    public WorkspaceProcessor(ModelFactoryExtensionPoint modelFactories, StAXArtifactProcessor<Object> extensionProcessor, Monitor monitor) {
+    public WorkspaceProcessor(FactoryExtensionPoint modelFactories, StAXArtifactProcessor<Object> extensionProcessor, Monitor monitor) {
         this.workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class);
         this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
     }

Copied: tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java (from r701972, tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java?p2=tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java&p1=tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java&r1=701972&r2=702000&rev=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilder.java Mon Oct  6 01:32:38 2008
@@ -19,24 +19,31 @@
 
 package org.apache.tuscany.sca.workspace.builder;
 
-import java.util.List;
-
 import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.workspace.Workspace;
 
 /**
- * A contribution dependency builder.
+ * A contribution builder.
  *
  * @version $Rev$ $Date$
  */
-public interface ContributionDependencyBuilder {
+public interface ContributionBuilder {
 
     /**
-     * Build the set of contributions that a contribution depends on.
-     * @param workspace
-     * @param contribution
+     * Returns the ID of the builder.
+     * 
      * @return
      */
-    List<Contribution> buildContributionDependencies(Contribution contribution, Workspace workspace);
+    String getID();
+    
+    /**
+     * Build a contribution.
+     * 
+     * @param contribution
+     * @param workspace
+     * @param monitor
+     */
+    void build(Contribution contribution, Workspace workspace, Monitor monitor) throws ContributionBuilderException;
 
 }

Copied: tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java (from r701972, tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java?p2=tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java&p1=tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java&r1=701972&r2=702000&rev=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderException.java Mon Oct  6 01:32:38 2008
@@ -19,24 +19,27 @@
 
 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.
+ * Reports a contribution builder exception.
  *
  * @version $Rev$ $Date$
  */
-public interface ContributionDependencyBuilder {
+public class ContributionBuilderException extends Exception {
+    private static final long serialVersionUID = -1198817287971778953L;
+
+    public ContributionBuilderException() {
+    }
 
-    /**
-     * Build the set of contributions that a contribution depends on.
-     * @param workspace
-     * @param contribution
-     * @return
-     */
-    List<Contribution> buildContributionDependencies(Contribution contribution, Workspace workspace);
+    public ContributionBuilderException(String message) {
+        super(message);
+    }
+
+    public ContributionBuilderException(Throwable cause) {
+        super(cause);
+    }
+
+    public ContributionBuilderException(String message, Throwable cause) {
+        super(message, cause);
+    }
 
 }

Copied: tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java (from r701972, tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java?p2=tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java&p1=tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java&r1=701972&r2=702000&rev=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionBuilderExtensionPoint.java Mon Oct  6 01:32:38 2008
@@ -19,24 +19,33 @@
 
 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.
+ * An extension point for Contribution builders.
  *
- * @version $Rev$ $Date$
+ * @version $Rev: $ $Date: $
  */
-public interface ContributionDependencyBuilder {
+public interface ContributionBuilderExtensionPoint {
 
     /**
-     * Build the set of contributions that a contribution depends on.
-     * @param workspace
-     * @param contribution
+     * 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
      */
-    List<Contribution> buildContributionDependencies(Contribution contribution, Workspace workspace);
-
+    ContributionBuilder getContributionBuilder(String id);
+    
 }

Added: tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java?rev=702000&view=auto
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java (added)
+++ tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/DefaultContributionBuilderExtensionPoint.java Mon Oct  6 01:32:38 2008
@@ -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<String, ContributionBuilder> builders = new HashMap<String, ContributionBuilder>();
+    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<ServiceDeclaration> builderDeclarations;
+        ServiceDiscovery serviceDiscovery = ServiceDiscovery.getInstance();
+        try {
+            builderDeclarations = serviceDiscovery.getServiceDeclarations(ContributionBuilder.class.getName());
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+
+        for (ServiceDeclaration builderDeclaration : builderDeclarations) {
+        Map<String, String> 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<ContributionBuilder> builderClass = (Class<ContributionBuilder>)builderDeclaration.loadClass();
+                    try {
+                        Constructor<ContributionBuilder> constructor = builderClass.getConstructor(FactoryExtensionPoint.class);
+                        builder = constructor.newInstance(factories);
+                    } catch (NoSuchMethodException e) {
+                        Constructor<ContributionBuilder> constructor = builderClass.getConstructor(ContributionBuilderExtensionPoint.class, FactoryExtensionPoint.class);
+                        builder = constructor.newInstance(builders, factories);
+                    }
+                } catch (Exception e) {
+                    throw new IllegalStateException(e);
+                }
+            }
+            return builder;
+        }
+
+    }
+
+}

Modified: tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/impl/WorkspaceImpl.java Mon Oct  6 01:32:38 2008
@@ -44,6 +44,7 @@
     private byte[] contents;
     private boolean unresolved;
     private ModelResolver modelResolver; 
+    private List<Contribution> dependencies = new ArrayList<Contribution>();
     
     /**
      * Constructs a new workspace. 
@@ -98,6 +99,10 @@
     public List<Artifact> getArtifacts() {
         return (List<Artifact>)(Object)contributions;
     }
+    
+    public List<Contribution> getDependencies() {
+        return dependencies;
+    }
 
     public ClassLoader getClassLoader() {
         //FIXME Remove later

Copied: tuscany/branches/sca-equinox/modules/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint (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/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint?p2=tuscany/branches/sca-equinox/modules/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint&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/workspace/src/main/resources/META-INF/services/org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint Mon Oct  6 01:32:38 2008
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License. 
 
-org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint
+org.apache.tuscany.sca.workspace.builder.DefaultContributionBuilderExtensionPoint
\ No newline at end of file

Modified: tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java (original)
+++ tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessor.java Mon Oct  6 01:32:38 2008
@@ -24,11 +24,11 @@
 
 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 @@
     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;
     }

Modified: tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java (original)
+++ tuscany/branches/sca-equinox/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java Mon Oct  6 01:32:38 2008
@@ -30,10 +30,10 @@
 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 @@
     private Map<String, List<XSDefinition>> map = new HashMap<String, List<XSDefinition>>();
     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));

Modified: tuscany/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/xsd-xml/src/test/java/org/apache/tuscany/sca/xsd/xml/XSDDocumentProcessorTestCase.java Mon Oct  6 01:32:38 2008
@@ -26,13 +26,13 @@
 
 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 @@
         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);
     }
 

Modified: tuscany/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java?rev=702000&r1=701999&r2=702000&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java (original)
+++ tuscany/branches/sca-equinox/samples/binding-echo-extension/src/main/java/echo/provider/EchoBindingProviderFactory.java Mon Oct  6 01:32:38 2008
@@ -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 @@
     private MessageFactory messageFactory;
     
     public EchoBindingProviderFactory(ExtensionPointRegistry extensionPoints) {
-        ModelFactoryExtensionPoint factories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        FactoryExtensionPoint factories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
         this.messageFactory = factories.getFactory(MessageFactory.class);
     }