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.
|