summaryrefslogtreecommitdiffstats
path: root/branches/sca-equinox/samples/calculator-script/README
blob: ab1dda13df8d1c98afd5f1b3948cb94ebf206fa7 (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
102
103
104
105
Calculator Script Sample
========================
This sample implements a simple calculator using SCA components implemented 
using Java, JavaScript, Ruby, Python and Groovy. 

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-calculator-script.jar calculator.CalculatorClient

and on *nix do

java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-script.jar calculator.CalculatorClient

Sample Overview
---------------
The sample provides a single calculator service with a default SCA (java) 
binding. The CalculatorClient exercises this interface by calling add, 
subtract, multiply and divide operations. This results in messages passing 
to the appropriate components in the composite across the local wires. Each
component is implemented using a different language.

calculator-script/
  src/
    main/
      java/
        calculator/
          CalculatorService.java  - the first component calls +-/* as 
                                    appropriate
          CalculatorServiceImpl.java
          AddService.java         - adds two numbers
          SubtractService.java    - subtracts one number from another
          MultiplyService.java    - multiplies two numbers
          DivideService.java      - divides one number by another
          CalculatorClient.java   - starts the SCA Runtime and 
                                    deploys the Calculator.composite. 
                                    It then calls the deployed Calculator 
                                    Components services
      resources/
        calculator/
          AddServiceImpl.js       - A JavaScript implementation of the
                                    Add component
          SubtractServiceImpl.rb  - A Ruby implementation of the Subtract
                                    component
          MultiplyServiceImpl.py  - A Python implementation of the 
                                    Multiple component
          DivideServiceImpl.groovy- A Groovy implementation of the 
                                    Divide component
        Calculator.composite      - the SCA assembly for this sample
        
    test/
      java/
        calculator/
          CalculatorTestCase.java - JUnit test case 
  calculator-script.png           - a pictorial representation of the 
                                    sample .composite file
  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 calculator-script
ant compile
ant run

You should see the following output from the run target.

run:
     [java] 3 + 2=5.0
     [java] 3 - 2=1.0
     [java] 3 * 2=6.0
     [java] 3 / 2=1.5

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 calculator-script
mvn

You should see the following output from the test phase.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running calculator.CalculatorTestCase
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.918 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

This shows that the Junit test cases have run successfully.