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 09:20:55 UTC

svn commit: r650770 - in /incubator/tuscany/java/sca/samples/domain-management: ./ src/main/java/manager/ src/test/java/manager/ src/test/java/services/ src/test/resources/assembly/ src/test/resources/client/ src/test/resources/client/META-INF/

Author: jsdelfino
Date: Wed Apr 23 00:20:54 2008
New Revision: 650770

URL: http://svn.apache.org/viewvc?rev=650770&view=rev
Log:
Some cleanup of the sample tasks. Added a task showing how to wire components in a domain.

Added:
    incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java   (with props)
    incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java   (with props)
    incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml   (with props)
    incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/
    incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/
    incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml   (with props)
    incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/client.composite
Removed:
    incubator/tuscany/java/sca/samples/domain-management/src/test/java/manager/
Modified:
    incubator/tuscany/java/sca/samples/domain-management/pom.xml
    incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListComponents.java
    incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/ListDependencies.java

Modified: incubator/tuscany/java/sca/samples/domain-management/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/pom.xml?rev=650770&r1=650769&r2=650770&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/pom.xml (original)
+++ incubator/tuscany/java/sca/samples/domain-management/pom.xml Wed Apr 23 00:20:54 2008
@@ -208,6 +208,20 @@
                             <finalName>${artifactId}</finalName>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>client</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <descriptors>
+                                <descriptor>src/test/resources/assembly/client.xml</descriptor>
+                            </descriptors>
+                            <tarLongFileMode>gnu</tarLongFileMode>
+                            <finalName>${artifactId}</finalName>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
         </plugins>

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=650770&r1=650769&r2=650770&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 Wed Apr 23 00:20:54 2008
@@ -80,7 +80,7 @@
     private static ModelResolverExtensionPoint modelResolvers;
     private static ModelFactoryExtensionPoint modelFactories;
     private static WorkspaceFactory workspaceFactory;
-    private static Monitor monitor;
+    private static ContributionDependencyBuilder contributionDependencyBuilder;
 
     private static void init() {
         
@@ -131,9 +131,12 @@
         contributionContentProcessor = new ContributionContentProcessor(modelFactories, modelResolvers, urlExtensionProcessor);
         
         // Create a monitor
-        UtilityExtensionPoint services = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
-        MonitorFactory monitorFactory = services.getService(MonitorFactory.class);
-        monitor = monitorFactory.createMonitor();
+        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);
     }
     
 
@@ -144,21 +147,20 @@
         Workspace workspace = workspaceFactory.createWorkspace();
         workspace.setModelResolver(new ExtensibleModelResolver(workspace, modelResolvers, modelFactories));
 
-        // Read the contribution info for the sample contribution
+        // 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 contribution info for the sample assets contribution
+        // 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);
 
         // Build the store contribution dependencies
-        ContributionDependencyBuilder dependencyBuilder = new ContributionDependencyBuilderImpl(monitor);
-        List<Contribution> dependencies = dependencyBuilder.buildContributionDependencies(storeContribution, workspace);
+        List<Contribution> dependencies = contributionDependencyBuilder.buildContributionDependencies(storeContribution, workspace);
         
         // Resolve the contributions
         for (Contribution contribution: dependencies) {
@@ -177,8 +179,6 @@
                         System.out.println("      binding: " + binding.getClass() + " - " + binding.getURI());
                     }
                 }
-                // Assume Java implementation and interface here as this is what we are
-                // using in the sample
                 Implementation implementation = component.getImplementation();
                 System.out.println("    implementation: " + implementation);
                 for (Service service: implementation.getServices()) {

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=650770&r1=650769&r2=650770&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 Wed Apr 23 00:20:54 2008
@@ -60,7 +60,7 @@
     
     private static URLArtifactProcessor<Contribution> contributionInfoProcessor;
     private static WorkspaceFactory workspaceFactory;
-    private static Monitor monitor;
+    private static ContributionDependencyBuilder contributionDependencyBuilder;
 
     private static void init() throws Exception {
         
@@ -97,8 +97,11 @@
 
         // Create a monitor
         UtilityExtensionPoint services = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
-        MonitorFactory monitorFactory = services.getService(MonitorFactory.class);
-        monitor = monitorFactory.createMonitor();
+        MonitorFactory monitorFactory = services.getUtility(MonitorFactory.class);
+        Monitor monitor = monitorFactory.createMonitor();
+        
+        // Create a contribution dependency builder
+        contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor);
     }
     
 
@@ -121,10 +124,9 @@
         workspace.getContributions().add(assetsContribution);
         
         // List the contribution dependencies of each contribution
-        ContributionDependencyBuilder analyzer = new ContributionDependencyBuilderImpl(monitor);
         for (Contribution contribution: workspace.getContributions()) {
             System.out.println("Contribution: " + contribution.getURI());
-            for (Contribution dependency: analyzer.buildContributionDependencies(contribution, workspace)) {
+            for (Contribution dependency: contributionDependencyBuilder.buildContributionDependencies(contribution, workspace)) {
                 System.out.println("  dependency: " + dependency.getURI());
             }
         }

Added: 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=650770&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java (added)
+++ incubator/tuscany/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java Wed Apr 23 00:20:54 2008
@@ -0,0 +1,230 @@
+/*
+ * 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 ListComponents task
+ *
+ * @version $Rev$ $Date$
+ */
+public class WireComponents {
+    
+    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/WireComponents.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

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

Added: incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java?rev=650770&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java (added)
+++ incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java Wed Apr 23 00:20:54 2008
@@ -0,0 +1,57 @@
+/*
+ * 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 services;
+
+import org.apache.tuscany.sca.implementation.data.collection.Entry;
+import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("COMPOSITE")
+public class ShoppingCartClientImpl implements Cart {
+    
+    @Reference
+    public Cart cart;
+    
+    public Entry<String, Item>[] getAll() {
+        return cart.getAll();
+    }
+
+    public Item get(String key) throws NotFoundException {
+        return cart.get(key);
+    }
+
+    public String post(String key, Item item) {
+        return cart.post(key, item);
+    }
+
+    public void put(String key, Item item) throws NotFoundException {
+        cart.put(key, item);
+    }
+    
+    public void delete(String key) throws NotFoundException {
+        cart.delete(key);
+    }
+
+    public Entry<String, Item>[] query(String queryString) {
+        return cart.query(queryString);
+    }
+    
+}

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/java/services/ShoppingCartClientImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml?rev=650770&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml (added)
+++ incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml Wed Apr 23 00:20:54 2008
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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.
+-->
+<assembly>
+    <id>client</id>
+    <includeBaseDirectory>false</includeBaseDirectory>
+    <formats>
+        <format>jar</format>
+    </formats>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/test-classes/client</directory>
+            <outputDirectory>/</outputDirectory>
+        </fileSet>
+    </fileSets>
+        
+</assembly>

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/assembly/client.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml?rev=650770&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml (added)
+++ incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml Wed Apr 23 00:20:54 2008
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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.    
+-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+   xmlns:s="http://store">
+   <import.java package="services"/>
+   <deployable composite="s:client"/>
+</contribution>
\ No newline at end of file

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/client.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/client.composite?rev=650770&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/client.composite (added)
+++ incubator/tuscany/java/sca/samples/domain-management/src/test/resources/client/client.composite Wed Apr 23 00:20:54 2008
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.    
+-->
+<composite	xmlns="http://www.osoa.org/xmlns/sca/1.0"
+		xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+		targetNamespace="http://store"
+		name="client">
+		
+	<component name="ShoppingCartClient">
+		<implementation.java class="services.ShoppingCartClientImpl"/>
+		<service name="Cart">
+			<t:binding.atom uri="/ShoppingCartClient/Cart"/>
+		</service>    	
+		<reference name="cart" target="ShoppingCart">
+			<t:binding.atom/>
+		</reference>		
+	</component>
+    
+</composite>