summaryrefslogtreecommitdiffstats
path: root/java/sca/samples/supplychain/README
blob: ea4493fdd42bcf1d770e2708af47d022a4cebdae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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.