| Domain Management Sample Tasks |
| ============================== |
| 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 README in the samples directory (the directory above this) provides |
| general instructions about building and running samples. Take a look there first. |
| |
| If you want to run this sample to see what happens, open a command prompt, navigate |
| to this sample directory and run any of the sample domain management tasks |
| as follows: |
| |
| Running the Sample |
| ------------------ |
| |
| 1. List deployables in a contribution: |
| ------------------------------------ |
| |
| - This sample reads the SCA metadata for two sample contributions and prints the names of their deployable composites. |
| |
| - Use the following command to run the sample: |
| |
| ant runListDeployables |
| |
| - OR if you don't have ant, |
| |
| On windows do: |
| java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-domain-management.jar manager.ListDeployables |
| |
| On *nix do: |
| java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-domain-management.jar manager.ListDeployables |
| |
| - You should see the following output: |
| |
| Deployable: {http://store}store |
| |
| 2. List contribution dependencies: |
| -------------------------------- |
| |
| - The sample reads the SCA metadata for two sample contributions and prints their dependencies. |
| |
| - Use the following command to run the sample: |
| |
| ant runListDependencies |
| |
| - OR if you don't have ant, |
| |
| On windows do: |
| java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-domain-management.jar manager.ListDependencies |
| |
| On *nix do: |
| java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-domain-management.jar manager.ListDependencies |
| |
| - You should see the following output: |
| |
| Contribution: store |
| dependency: assets |
| dependency: store |
| Contribution: assets |
| dependency: assets |
| |
| 3. Add deployables to a domain composite and wire them: |
| ----------------------------------------------------- |
| |
| - The sample first reads the SCA metadata for three sample contributions, and resolve the artifacts contained in the contributions, |
| includes all their deployable composites in a composite model representing an SCA domain, and then |
| uses several composite builder utilities to configure and assemble and wire them together. |
| Finally it prints the resulting domain composite model, showing service bindings |
| configured with the URIs from the nodes hosting them. |
| |
| - Use the following command to run the sample: |
| |
| ant runWireComponents |
| |
| - OR if you don't have ant, |
| |
| On windows do: |
| java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-domain-management.jar manager.WireComponents |
| |
| On *nix do: |
| java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-domain-management.jar manager.WireComponents |
| |
| - You should see the following output: |
| |
| <?xml version="1.0" encoding="UTF-8"?> |
| <composite name="domain" targetNamespace="http://sample" |
| xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:ns1="http://www.osoa.org/xmlns/sca/1.0"> |
| <component name="ShoppingCart" uri="ShoppingCart"> |
| <implementation.java class="services.ShoppingCartImpl"/> |
| <service name="Cart"> |
| <ns2:binding.atom name="Cart" uri="/ShoppingCart/Cart" xmlns:ns2="http://tuscany.apache.org/xmlns/sca/1.0"/> |
| </service> |
| </component> |
| <component name="ShoppingCartClient" uri="ShoppingCartClient"> |
| <implementation.java class="services.ShoppingCartClientImpl"/> |
| <service name="Cart"> |
| <ns2:binding.atom name="Cart" uri="/ShoppingCartClient/Cart" xmlns:ns2="http://tuscany.apache.org/xmlns/sca/1.0"/> |
| </service> |
| <reference name="cart"> |
| <ns2:binding.atom name="cart#ShoppingCart/Cart" |
| uri="/ShoppingCart/Cart" xmlns:ns2="http://tuscany.apache.org/xmlns/sca/1.0"/> |
| </reference> |
| </component> |
| </composite> |
| |
| 4. List Components: |
| ----------------- |
| |
| - This sample reads the SCA metadata for two sample contributions, and 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 are actually resolved). |
| |
| - Use the following command to run the sample: |
| |
| ant runListComponents |
| |
| - OR if you don't have ant, |
| |
| On windows do: |
| java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-domain-management.jar manager.ListComponents |
| |
| On *nix do: |
| java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-domain-management.jar manager.ListComponents |
| |
| - You should see the following output: |
| |
| Deployable: {http://store}store |
| component: ShoppingCart |
| componentService: Cart |
| binding: class org.apache.tuscany.sca.binding.atom.impl.AtomBindingImpl - /ShoppingCart/Cart |
| implementation: services.ShoppingCartImpl |
| service: Cart |
| interface: services.Cart |
| |
| |
| Sample Overview |
| --------------- |
| |
| This sample demonstrates how to use some of the APIs for processing contributions. |
| These APIs are currently used under the covers in the domain manager. |
| |
| domain-management/ |
| src/ |
| main/ |
| java/ |
| manager/ |
| DistributeAndRunComponents.java |
| DistributeComponents.java |
| ListComponents.java |
| ListDependencies.java |
| ListDeployables.java |
| WireComponents.java |
| resources/ |
| test/ |
| java/ |
| services/ |
| Cart.java |
| Item.java |
| ShoppingCartClientImpl.java |
| ShoppingCartImpl.java |
| resources/ |
| assembly/ |
| assets.xml |
| client.xml |
| store.xml |
| assets/ |
| META-INF/ |
| sca-contribution.xml |
| client/ |
| META-INF/ |
| client.composite |
| store/ |
| META-INF/ |
| sca-contribution.xml |
| store.composite |
| build.xml |
| pom.xml |
| README |
| |
| |
| Building And Running The Sample Using Ant |
| ----------------------------------------- |
| With the binary distribution the sample can be built and run using Ant as |
| follows: |
| |
| cd domain-management |
| ant compile |
| ant runListDeployables |
| ant runListDependencies |
| ant runWireComponents |
| ant runListComponents |
| |
| |
| Building the Sample Using Maven |
| ------------------------------- |
| |
| cd domain-management |
| mvn |
| |
| ** Please note that the mvn command will just build the sample and will install the required jar files into the Maven repository. |
| ** In order to run the sample, please see the instructions - "Running the Sample" |