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/04/23 07:56:58 UTC

svn commit: r650754 - in /incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl: ContributionCollectionImpl.java DeployableCompositeCollectionImpl.java

Author: jsdelfino
Date: Tue Apr 22 22:56:57 2008
New Revision: 650754

URL: http://svn.apache.org/viewvc?rev=650754&view=rev
Log:
Removed dependency on contribution listeners. Adjusted to change to buildContributionDependencies method.

Modified:
    incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
    incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java

Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java?rev=650754&r1=650753&r2=650754&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java Tue Apr 22 22:56:57 2008
@@ -310,7 +310,7 @@
 
                     // Compute the contribution dependencies
                     ContributionDependencyBuilder analyzer = new ContributionDependencyBuilderImpl(monitor);
-                    List<Contribution> dependencies = analyzer.buildContributionDependencies(workspace, contribution);
+                    List<Contribution> dependencies = analyzer.buildContributionDependencies(contribution, workspace);
                     
                     // Returns entries for the dependencies
                     // optionally skip the specified contribution
@@ -368,7 +368,7 @@
         
         StringBuffer sb = new StringBuffer();
         ContributionDependencyBuilderImpl analyzer = new ContributionDependencyBuilderImpl(monitor);
-        List<Contribution> dependencies = analyzer.buildContributionDependencies(workspace, contribution);
+        List<Contribution> dependencies = analyzer.buildContributionDependencies(contribution, workspace);
         if (dependencies.size() > 1) {
             sb.append("Dependencies: <span id=\"dependencies\">");
             for (int i = 0, n = dependencies.size(); i < n ; i++) {

Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java?rev=650754&r1=650753&r2=650754&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DeployableCompositeCollectionImpl.java Tue Apr 22 22:56:57 2008
@@ -29,7 +29,6 @@
 import static org.apache.tuscany.sca.workspace.admin.impl.DomainAdminUtil.newRuntime;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
@@ -38,7 +37,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.servlet.Servlet;
@@ -75,12 +73,8 @@
 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.resolver.ModelResolverExtensionPoint;
-import org.apache.tuscany.sca.contribution.service.ContributionListener;
-import org.apache.tuscany.sca.contribution.service.ContributionListenerExtensionPoint;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionRepository;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.xml.ContributionGeneratedMetadataDocumentProcessor;
 import org.apache.tuscany.sca.contribution.xml.ContributionMetadataDocumentProcessor;
@@ -98,7 +92,10 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.workspace.Workspace;
+import org.apache.tuscany.sca.workspace.WorkspaceFactory;
+import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
+import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Reference;
@@ -129,13 +126,14 @@
     private ModelFactoryExtensionPoint modelFactories;
     private ModelResolverExtensionPoint modelResolvers;
     private AssemblyFactory assemblyFactory;
+    private WorkspaceFactory workspaceFactory;
     private URLArtifactProcessor<Contribution> contributionContentProcessor;
     private StAXArtifactProcessor<Composite> compositeProcessor;
     private XMLOutputFactory outputFactory;
     private CompositeBuilder compositeBuilder;
     private CompositeIncludeBuilderImpl compositeIncludeBuilder;
     private CompositeConfigurationBuilderImpl compositeConfigurationBuilder;
-    private List<ContributionListener> contributionListeners;
+    private ContributionDependencyBuilder contributionDependencyBuilder;
     
     /**
      * Initialize the component.
@@ -155,7 +153,7 @@
         outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
         outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
         ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
-        PolicyFactory policyFactory = modelFactories.getFactory(PolicyFactory.class);
+        workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class);
         
         // Get and initialize artifact processors
         StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
@@ -171,18 +169,18 @@
         // Create contribution processor
         modelResolvers = registry.getExtensionPoint(ModelResolverExtensionPoint.class);
         contributionContentProcessor = new ContributionContentProcessor(modelFactories, modelResolvers, urlProcessor);
-        contributionListeners = registry.getExtensionPoint(ContributionListenerExtensionPoint.class).getContributionListeners();
 
-        // Create composite builder
+        // Create a monitor
+        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
+        Monitor monitor = monitorFactory.createMonitor();
+        
+        // Create contribution and composite builders
+        contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor);
+
         SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
         IntentAttachPointTypeFactory intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
         InterfaceContractMapper contractMapper = new InterfaceContractMapperImpl();
         
-        // TODO need to get these messages back to the browser - So need
-        //      a monitor that caches all the problems for a set of processing
-        MonitorFactory monitorFactory = registry.getExtensionPoint(MonitorFactory.class);
-        Monitor monitor = monitorFactory.createMonitor();
-        
         compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory,
                                                     contractMapper, monitor);
         
@@ -193,6 +191,7 @@
                                                                              intentAttachPointTypeFactory,
                                                                              contractMapper,
                                                                              monitor);
+        
     }
     
     public Entry<String, Item>[] getAll() {
@@ -330,7 +329,8 @@
         Entry<String, Item>[] domainEntries = domainCompositeCollection.getAll();
         
         // Populate the domain composite
-        List<Contribution> loadedContributions = new ArrayList<Contribution>();
+        Workspace workspace = workspaceFactory.createWorkspace();
+        workspace.setModelResolver(new ExtensibleModelResolver(workspace, modelResolvers, modelFactories));
         Map<String, Contribution> contributionMap = new HashMap<String, Contribution>(); 
         for (Entry<String, Item> domainEntry: domainEntries) {
             
@@ -347,15 +347,18 @@
                     // Read the contribution
                     Contribution c;
                     try {
-                        c = contribution(loadedContributions, entry.getKey(), contributionItem.getAlternate());
+                        c = contribution(workspace, entry.getKey(), contributionItem.getAlternate());
                     } catch (ContributionReadException e) {
                         continue;
                     }
-                    loadedContributions.add(c);
+                    workspace.getContributions().add(c);
                     if (contributionURI.equals(entry.getKey())) {
                         contribution = c;
                         contributionMap.put(contributionURI, contribution);
                     }
+                    
+                    // Build contribution dependencies
+                    
                 }
             }
             
@@ -483,13 +486,12 @@
         // Get the collection of cloud composites
         Entry<String, Item>[] cloudEntries = cloudCollection.getAll();
         
-        // Load the cloud composites
-        List<Contribution> loadedContributions = new ArrayList<Contribution>();
+        // Load the cloud contributions
+        Workspace workspace = workspaceFactory.createWorkspace();
         Map<String, Contribution> contributionMap = new HashMap<String, Contribution>(); 
         for (Entry<String, Item> cloudEntry: cloudEntries) {
             String key = cloudEntry.getKey();
             String contributionURI = contributionURI(key);
-            QName qname = compositeQName(key);
 
             // Load the contribution
             Contribution contribution = contributionMap.get(contributionURI);
@@ -498,15 +500,17 @@
                 
                 // Read the contribution
                 try {
-                    contribution = contribution(loadedContributions, contributionURI, contributionItem.getAlternate());
+                    contribution = contribution(workspace, contributionURI, contributionItem.getAlternate());
                 } catch (ContributionReadException e) {
                     continue;
                 }
-                loadedContributions.add(contribution);
+                workspace.getContributions().add(contribution);
                 contributionMap.put(contributionURI, contribution);
+                
             }
-            
-            // Include the composite in the clouds composite
+
+            // Include the cloud composite in the clouds composite
+            QName qname = compositeQName(key);
             for (Artifact artifact : contribution.getArtifacts()) {
                 if (artifact.getModel() instanceof Composite) {
                     Composite composite = (Composite)artifact.getModel();
@@ -523,28 +527,22 @@
     /**
      * Returns the contribution with the given URI.
      * 
-     * @param contributions
+     * @param workspace
      * @param contributionURI
      * @param contributionLocation
      * @return
      * @throws NotFoundException
      */
-    private Contribution contribution(List<Contribution> contributions, String contributionURI, String contributionLocation) throws ContributionReadException {
+    private Contribution contribution(Workspace workspace, String contributionURI, String contributionLocation) throws ContributionReadException {
         try {
             URI uri = URI.create(contributionURI);
             URL location = locationURL(contributionLocation);
             Contribution contribution = (Contribution)contributionContentProcessor.read(null, uri, location);
             
-            // FIXME simplify this later
-            // Fix up contribution imports
-            ContributionRepository dummyRepository = new DummyContributionRepository(contributions);
-            for (ContributionListener listener: contributionListeners) {
-                listener.contributionAdded(dummyRepository, contribution);
-            }
-            
-            ModelResolver modelResolver = new ExtensibleModelResolver(contribution, modelResolvers, modelFactories);
-            contributionContentProcessor.resolve(contribution, modelResolver);
+            // Resolve the contribution dependencies
+            contributionDependencyBuilder.buildContributionDependencies(contribution, workspace);
             
+            contributionContentProcessor.resolve(contribution, workspace.getModelResolver());
             return contribution;
 
         } catch (ContributionReadException e) {
@@ -565,7 +563,7 @@
      * @throws NotFoundException
      */
     private Contribution contribution(String contributionURI, String contributionLocation) throws ContributionReadException {
-        return contribution(new ArrayList<Contribution>(), contributionURI, contributionLocation);
+        return contribution(workspaceFactory.createWorkspace(), contributionURI, contributionLocation);
     }
     
     /**
@@ -663,28 +661,4 @@
         return item;
     }
 
-    /**
-     * FIXME Remove this later
-     * DummyContributionRepository
-     */
-    private class DummyContributionRepository implements ContributionRepository {
-        
-        private List<Contribution> contributions;
-
-        public DummyContributionRepository(List<Contribution> contributions) {
-            this.contributions = contributions;
-        }
-        
-        public void addContribution(Contribution contribution) {}
-        public URL find(String contribution) { return null; }
-        public Contribution getContribution(String uri) { return null; }
-        public List<Contribution> getContributions() { return contributions; }
-        public URI getDomain() { return null; }
-        public List<String> list() { return null; }
-        public void remove(String contribution) {}
-        public void removeContribution(Contribution contribution) {}
-        public URL store(String contribution, URL sourceURL, InputStream contributionStream) throws IOException { return null; }
-        public URL store(String contribution, URL sourceURL) throws IOException { return null;}
-        public void updateContribution(Contribution contribution) {}
-    }
 }