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/24 09:21:35 UTC

svn commit: r651179 [4/4] - in /incubator/tuscany/java/sca: itest/domain/src/test/java/org/apache/tuscany/sca/itest/domain/ modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ modules/assembly/src/main/java/org/apache/tuscany/sca/as...

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=651179&r1=651178&r2=651179&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 Thu Apr 24 00:21:13 2008
@@ -59,7 +59,6 @@
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
-import org.apache.tuscany.sca.assembly.builder.impl.CompositeConfigurationBuilderImpl;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeIncludeBuilderImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Artifact;
@@ -88,6 +87,7 @@
 import org.apache.tuscany.sca.implementation.data.collection.LocalItemCollection;
 import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
 import org.apache.tuscany.sca.implementation.node.NodeImplementation;
+import org.apache.tuscany.sca.implementation.node.builder.impl.NodeConfigurationBuilderImpl;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
@@ -130,10 +130,11 @@
     private URLArtifactProcessor<Contribution> contributionContentProcessor;
     private StAXArtifactProcessor<Composite> compositeProcessor;
     private XMLOutputFactory outputFactory;
-    private CompositeBuilder compositeBuilder;
-    private CompositeIncludeBuilderImpl compositeIncludeBuilder;
-    private CompositeConfigurationBuilderImpl compositeConfigurationBuilder;
     private ContributionDependencyBuilder contributionDependencyBuilder;
+    private CompositeBuilder compositeBuilder;
+    private CompositeBuilder compositeIncludeBuilder;
+    private CompositeBuilder nodeConfigurationBuilder;
+    private Monitor monitor;
     
     /**
      * Initialize the component.
@@ -173,25 +174,16 @@
         // Create a monitor
         UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
         MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
-        Monitor monitor = monitorFactory.createMonitor();
+        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 = utilities.getUtility(InterfaceContractMapper.class);
-        
-        compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory,
-                                                    contractMapper, monitor);
-        
+        compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, contractMapper, monitor);
         compositeIncludeBuilder = new CompositeIncludeBuilderImpl(monitor);
-        
-        compositeConfigurationBuilder = new CompositeConfigurationBuilderImpl(assemblyFactory, 
-                                                                             scaBindingFactory, 
-                                                                             intentAttachPointTypeFactory,
-                                                                             contractMapper,
-                                                                             monitor);
-        
+        nodeConfigurationBuilder = new NodeConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper, null, monitor);
     }
     
     public Entry<String, Item>[] getAll() {
@@ -385,7 +377,11 @@
             domainComposite.getIncludes().add(deployable);
 
             // Fuse includes into the deployable composite
-            compositeIncludeBuilder.fuseIncludes(deployable);
+            try {
+                compositeIncludeBuilder.build(deployable);
+            } catch (CompositeBuilderException e) {
+                response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
+            }
             
             // store away the composite we are generating the deployable XML for. 
             if (qname.equals(deployable.getName())){
@@ -417,22 +413,24 @@
             
             // find the node that will run this composite and the default
             // bindings that it configures
-            Component node = null;
+            Component nodeComponent = null;
             for (Composite cloudComposite : cloudsComposite.getIncludes()) {
                 for (Component nc : cloudComposite.getComponents()) {
                     NodeImplementation nodeImplementation = (NodeImplementation)nc.getImplementation();
                     if (nodeImplementation.getComposite().getName().equals(compositeName) &&
                         nodeImplementation.getComposite().getURI().equals(contributionURI)) {
-                        node = nc;
+                        nodeComponent = nc;
+                        nodeImplementation.setComposite(composite);
                         break;
                     }
                 }
             }
 
-            if (node != null) {
+            if (nodeComponent != null) {
                 try {
-                    List<Binding> defaultBindings = node.getServices().get(0).getBindings();
-                    compositeConfigurationBuilder.configureBindingURIs(composite, null, defaultBindings);
+                    Composite nodeComposite = assemblyFactory.createComposite();
+                    nodeComposite.getComponents().add(nodeComponent);
+                    nodeConfigurationBuilder.build(nodeComposite);
                 } catch (CompositeBuilderException e) {
                     throw new ServletException(e);
                 }

Added: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java?rev=651179&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java (added)
+++ incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java Thu Apr 24 00:21:13 2008
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 manager;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.SCABindingFactory;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
+import org.apache.tuscany.sca.assembly.xml.ComponentTypeDocumentProcessor;
+import org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor;
+import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor;
+import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
+import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeDocumentProcessor;
+import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeProcessor;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
+import org.apache.tuscany.sca.contribution.xml.ContributionGeneratedMetadataDocumentProcessor;
+import org.apache.tuscany.sca.contribution.xml.ContributionMetadataDocumentProcessor;
+import org.apache.tuscany.sca.contribution.xml.ContributionMetadataProcessor;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
+import org.apache.tuscany.sca.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.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+/**
+ * Sample DistributeComponents task
+ *
+ * This sample shows how to use a subset of Tuscany to read contribution
+ * metadata, analyze and resolve contribution dependencies, read and resolve
+ * the artifacts that they contribute (in particular implementation artifacts,
+ * interfaces, composites, componentTypes etc.) and assembe and wire the
+ * deployable composites together in a composite model representing an SCA
+ * domain composite.
+ * 
+ * The difference between this sample and the WireComponents sample is an
+ * extra step to allocate deployable composites to SCA nodes. SCA nodes allow
+ * you to provide default configuration for the deploayable composites allocated
+ * to them, for example default binding configuration. 
+ * 
+ * The sample first reads the SCA metadata for three sample contributions,
+ * reads and resolve the artifacts contained in the contributions, includes all their
+ * deployable composites in a composite model representing an SCA domain, then
+ * uses several composite builder utilities to configure them as specified in the
+ * SCA nodes hosting them and assemble and wire them together.
+ * Finally it prints the resulting domain composite model.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DistributeComponents {
+    
+    private static URLArtifactProcessor<Contribution> contributionContentProcessor;
+    private static ModelResolverExtensionPoint modelResolvers;
+    private static ModelFactoryExtensionPoint modelFactories;
+    private static WorkspaceFactory workspaceFactory;
+    private static AssemblyFactory assemblyFactory;
+    private static XMLOutputFactory outputFactory;
+    private static StAXArtifactProcessor<Object> xmlProcessor; 
+    private static ContributionDependencyBuilder contributionDependencyBuilder;
+    private static CompositeBuilder compositeBuilder;
+
+    private static void init() {
+        
+        // Create extension point registry 
+        ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+        
+        // Initialize the Tuscany module activators
+        ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class);
+        for (ModuleActivator activator: moduleActivators.getModuleActivators()) {
+            activator.start(extensionPoints);
+        }
+
+        // Get XML input/output factories
+        modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class);
+        outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
+        
+        // Get contribution, workspace, assembly and policy model factories
+        ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
+        workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); 
+        assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
+        PolicyFactory policyFactory = modelFactories.getFactory(PolicyFactory.class);
+        
+        // Create XML and document artifact processors
+        StAXArtifactProcessorExtensionPoint xmlProcessorExtensions = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+        xmlProcessor = new ExtensibleStAXArtifactProcessor(xmlProcessorExtensions, inputFactory, outputFactory);
+        URLArtifactProcessorExtensionPoint docProcessorExtensions = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
+        URLArtifactProcessor<Object> urlExtensionProcessor = new ExtensibleURLArtifactProcessor(docProcessorExtensions);
+        
+        // Create and register XML artifact processor extensions for sca-contribution XML and
+        // SCDL <composite>, <componentType> and <constrainingType>
+        xmlProcessorExtensions.addArtifactProcessor(new ContributionMetadataProcessor(assemblyFactory, contributionFactory, xmlProcessor));
+        xmlProcessorExtensions.addArtifactProcessor(new CompositeProcessor(contributionFactory, assemblyFactory, policyFactory, xmlProcessor));
+        xmlProcessorExtensions.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, xmlProcessor));
+        xmlProcessorExtensions.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, xmlProcessor));
+        
+        // Create and register document processor extensions for sca-contribution.xml, 
+        // sca-contribution-generated.xml, .composite, .componentType and
+        // .constrainingType documents 
+        docProcessorExtensions.addArtifactProcessor(new ContributionMetadataDocumentProcessor(xmlProcessor, inputFactory));
+        docProcessorExtensions.addArtifactProcessor(new ContributionGeneratedMetadataDocumentProcessor(xmlProcessor, inputFactory));
+        docProcessorExtensions.addArtifactProcessor(new CompositeDocumentProcessor(xmlProcessor, inputFactory, null));
+        docProcessorExtensions.addArtifactProcessor(new ComponentTypeDocumentProcessor(xmlProcessor, inputFactory));
+        docProcessorExtensions.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(xmlProcessor, inputFactory));
+        
+        // Create contribution content processor
+        modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class);
+        contributionContentProcessor = new ContributionContentProcessor(modelFactories, modelResolvers, urlExtensionProcessor);
+        
+        // Create a monitor
+        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
+        Monitor monitor = monitorFactory.createMonitor();
+        
+        // Create a contribution dependency builder
+        contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor);
+        
+        // Create a composite builder
+        SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
+        IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
+        InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class);
+        compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor);
+        
+    }
+    
+
+    public static void main(String[] args) throws Exception {
+        init();
+
+        // Create workspace model
+        Workspace workspace = workspaceFactory.createWorkspace();
+        workspace.setModelResolver(new ExtensibleModelResolver(workspace, modelResolvers, modelFactories));
+
+        // Read the sample store contribution
+        URI storeURI = URI.create("store");
+        URL storeURL = new File("./target/sample-domain-management-store.jar").toURI().toURL();
+        Contribution storeContribution = (Contribution)contributionContentProcessor.read(null, storeURI, storeURL);
+        workspace.getContributions().add(storeContribution);
+
+        // Read the sample assets contribution
+        URI assetsURI = URI.create("assets");
+        URL assetsURL = new File("./target/sample-domain-management-assets.jar").toURI().toURL();
+        Contribution assetsContribution = (Contribution)contributionContentProcessor.read(null, assetsURI, assetsURL);
+        workspace.getContributions().add(assetsContribution);
+
+        // Read the sample client contribution
+        URI clientURI = URI.create("client");
+        URL clientURL = new File("./target/sample-domain-management-client.jar").toURI().toURL();
+        Contribution clientContribution = (Contribution)contributionContentProcessor.read(null, clientURI, clientURL);
+        workspace.getContributions().add(clientContribution);
+
+        // Build the contribution dependencies
+        Set<Contribution> resolved = new HashSet<Contribution>();
+        for (Contribution contribution: workspace.getContributions()) {
+            List<Contribution> dependencies = contributionDependencyBuilder.buildContributionDependencies(contribution, workspace);
+            
+            // Resolve contributions
+            for (Contribution dependency: dependencies) {
+                if (!resolved.contains(dependency)) {
+                    resolved.add(dependency);
+                    contributionContentProcessor.resolve(contribution, workspace.getModelResolver());
+                }
+            }
+        }
+        
+        // Create a composite model for the domain
+        Composite domainComposite = assemblyFactory.createComposite();
+        domainComposite.setName(new QName("http://sample", "domain"));
+        
+        // Add all deployables to it, normally the domain administrator would select
+        // the deployables to include
+        domainComposite.getIncludes().addAll(workspace.getDeployables());
+        
+        // Build the domain composite and wire the components included
+        // in it
+        compositeBuilder.build(domainComposite);
+
+        // Print out the resulting domain composite
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        XMLStreamWriter writer = outputFactory.createXMLStreamWriter(bos);
+        xmlProcessor.write(domainComposite, writer);
+        
+        // Parse and write again to pretty format it
+        DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+        Document document = documentBuilder.parse(new ByteArrayInputStream(bos.toByteArray()));
+        OutputFormat format = new OutputFormat();
+        format.setIndenting(true);
+        format.setIndent(2);
+        XMLSerializer serializer = new XMLSerializer(System.out, format);
+        serializer.serialize(document);
+    }
+
+}

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListComponents.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListComponents.java?rev=651179&r1=651178&r2=651179&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListComponents.java (original)
+++ incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListComponents.java Thu Apr 24 00:21:13 2008
@@ -70,7 +70,18 @@
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor;
 
 /**
- * Sample ListComponents task
+ * Sample ListComponents task.
+ *
+ * This sample shows how to use subset of Tuscany to read contribution
+ * metadata, analyze and resolve contribution dependencies, read and resolve
+ * the artifacts that they contribute (in particular implementation artifacts,
+ * interfaces, composites and componentTypes).
+ * 
+ * The sample first reads the SCA metadata for two sample contributions, then displays
+ * their dependencies, reads and resolve the artifacts contained in the contributions,
+ * and finally prints the deployables composites and the components they declare as
+ * well as their main characteristics (showing that their interfaces and implementations
+ * for example are actually resolved).
  *
  * @version $Rev$ $Date$
  */

Modified: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDependencies.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDependencies.java?rev=651179&r1=651178&r2=651179&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDependencies.java (original)
+++ incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDependencies.java Thu Apr 24 00:21:13 2008
@@ -52,7 +52,14 @@
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionInfoProcessor;
 
 /**
- * Sample ListDependencies task
+ * Sample ListDependencies task.
+ * 
+ * This sample shows how to use a subset of Tuscany to read contribution
+ * metadata, analyze and resolve contribution dependencies given a set of
+ * available contributions.
+ * 
+ * The sample reads the SCA metadata for two sample contributions then
+ * prints their dependencies.
  *
  * @version $Rev$ $Date$
  */

Modified: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDeployables.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDeployables.java?rev=651179&r1=651178&r2=651179&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDeployables.java (original)
+++ incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDeployables.java Thu Apr 24 00:21:13 2008
@@ -46,7 +46,13 @@
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionInfoProcessor;
 
 /**
- * Sample ListDeployables task
+ * Sample ListDeployables task.
+ *
+ * This sample shows how to use a subset of Tuscany to read contribution
+ * metadata.
+ * 
+ * The sample reads the SCA metadata for two sample contributions then
+ * prints the names of their deployable composites.
  *
  * @version $Rev$ $Date$
  */

Modified: incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java?rev=651179&r1=651178&r2=651179&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java (original)
+++ incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java Thu Apr 24 00:21:13 2008
@@ -80,7 +80,20 @@
 import org.w3c.dom.Document;
 
 /**
- * Sample ListComponents task
+ * Sample WireComponents task.
+ * 
+ * This sample shows how to use a subset of Tuscany to read contribution
+ * metadata, analyze and resolve contribution dependencies, read and resolve
+ * the artifacts that they contribute (in particular implementation artifacts,
+ * interfaces, composites, componentTypes etc.) and assembe and wire the
+ * deployable composites together in a composite model representing an SCA
+ * domain composite.
+ * 
+ * The sample first reads the SCA metadata for three sample contributions,
+ * reads and resolve the artifacts contained in the contributions, includes all their
+ * deployable composites in a composite model representing an SCA domain, then
+ * uses a composite builder utility to assemble and wire the composites together.
+ * Finally it prints the resulting domain composite model.
  *
  * @version $Rev$ $Date$
  */