blob: ea4493fdd42bcf1d770e2708af47d022a4cebdae [file] [log] [blame]
SupplyChain Sample
==================
This sample demonstrates SCA components using the asynchronous API.
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 just want to run it to see what happens open a command prompt, navigate
to this sample directory and do:
ant run
OR if you don't have ant, on Windows do
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-supplychain.jar supplychain.SupplyChainClient
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-supplychain.jar supplychain.SupplyChainClient
Sample Overview
---------------
The sample provides a Customer service with a purchaseGoods operation
and a notifyShipment operation annotated with the SCA @OneWay annotation.
The SupplyChainClient exercises this interface by calling the
purchaseGoods operation. This results in messages passing to
the Retailer, Warehouse, and Shipper components and the result returned
to the Customer service on a separate callback thread.
supplychain/
src/
main/
java/
supplychain/
Customer.java - Defines the Java interface implemented
by the Customer component
CustomerComponentImpl.java - Implements the SCA Customer component
Retailer.java - Defines the Java interface implemented
by the Retailer component
RetailerComponentImpl.java - Implements the SCA RetailerComponent component
Shipper.java - Defines the Java interface implemented
by the Shipper component
ShipperComponentImpl.java - Implements the SCA ShipperComponent component
SupplyChainClient.java - SupplyChainClient.java loads SCA runtime
Warehouse.java - Defines the Java interface implemented
by the Warehouse component
WarehouseComponentImpl.java - Implements the SCA WarehouseComponent component
resources/
supplychain.composite - the SCA assembly for this sample
test/
java/
supplychain/
SupplyChainClientTestCase.java - JUnit test case
build.xml - the Ant build file
pom.xml - the Maven build file
Building And Running The Sample Using Ant
-----------------------------------------
With the binary distribution the sample can be built and run using Ant as
follows
cd supplychain
ant compile
ant run
You should see the following output from the run target.
run:
[java] Main thread Thread[main,5,main]
[java] Main thread sleeping ...
[java] Work thread Thread[pool-1-thread-1,5,main] - Order, submitted, fulfilled, shipped
Building And Running The Sample Using Maven
-------------------------------------------
With either the binary or source distributions the sample can be built and run
using Maven as follows.
cd supplychain
mvn
You should see the following output from the test phase.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running supplychain.SupplyChainClientTestCase
Main thread Thread[main,5,main]
Sleeping ...
Work thread Thread[pool-1-thread-1,5,main] - Order, submitted, fulfilled, shipped
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.625 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
This shows that the Junit test cases have run successfully.