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$
*/