summaryrefslogtreecommitdiffstats
path: root/java/sca/samples/calculator-webapp/README
blob: c88b92b2068c8ff34a4f3087ef4d9b7650bc6901 (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
106
107
108
109
110
111
112
113
114
115
116
117
118
Calculator Sample
=================
This sample uses the same code as the calculator sample but deploys the
sample wrapped in a web app. 

The README in the samples directory (the directory above this) provides 
general instructions about building and running samples. Take a look there 
first. 

As this sample provides a web app there is a manual step where the WAR file
that contains the sample is copied to your web app container. If you just want 
to give this sample a go deploy the WAR file (target/sample-calculator-webapp.war)
to you web application server. 

Once the web app is deployed use your browser to visit the following URL;

http://localhost:8080/sample-calculator-webapp/calc.jsp

The port and hostname will of course vary depending on your local installation. 

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.

calculator-webapp/
  src/
    main/
      java/
        calculator/
          CalculatorService.java  - As calculator sample
          CalculatorServiceImpl.java
          AddService.java         - As calculator sample
          AddServiceImpl.java
          SubtractService.java    - As calculator sample
          SubtractServiceImpl.java
          MultiplyService.java    - As calculator sample
          MultiplyServiceImpl.java
          DivideService.java      - As calculator sample
          DivideServiceImpl.java
          CalculatorClient.java   - As calculator sample
      resources/
        Calculator.composite      - As calculator sample
      webapp
        META-INF/
          sca-contribution.xml    - specifies the composite to be deployed
        WEB-INF/
          web.xml                 - defines the listener that starts up the 
                                    Tuscany SCA runtime
        calc.jsp                  - the web application that makes use of the
                                    SCA application 
    test/
      java/
        calculator/
          CalculatorTestCase.java - JUnit test case 
           
  calculator.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 using Ant as 
follows

cd calculator-webapp
ant package

This should result in a war file (sample-calculator-webapp.war) in the target 
directory. Copy this war file to your web app deployment directory in you
web app container. 

The process for getting the web app running will depend on which web app container
you are using. For example, if you are using Tomcat then it is simply a matter
of copying the WAR file to the webapps directory. 

Once the web app is deployed use your browser to visit the following URL;

http://localhost:8080/sample-calculator-webapp/calc.jsp

The port and hostname will of course vary depending on your local installation. 

You should see the following output.

Expression	Result
2 + 3	5.0
3 - 2	1.0
3 * 2	6.0
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-webapp
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: 0.852 sec

Results :

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

Again this should result in a war file (sample-calculator-webapp.war) in the target 
directory. Follow the steps described in the previous section for running the web 
app and for the expected results.