blob: 965c1e7ad16aa8c1cce0d81e76ddecc2036e0082 [file] [log] [blame]
Calculator CORBA Service Sample
===============================
This sample illustrates the use of the Tuscany CORBA Binding to expose
component services as CORBA objects. It also demonstrates how a simple
Java CORBA Client application invokes the SCA Application's services
exposed as CORBA objects.
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-corba-service.jar calculator.CalculatorCORBAServer
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-corba-service.jar calculator.CalculatorCORBAServer
Now you have the server running you need to open another command prompt, navigate
to the calculator-corba-reference 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-corba-reference.jar calculator.CalculatorClient
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-corba-reference.jar calculator.CalculatorClient
Sample Overview
---------------
This sample extends the calculator sample by replacing the local service
binding with a CORBA binding. A Java client can use CORBA client code to
call the service exposed by the SCA application. The name service which is
used in CORBA communication is provided by the Tuscany CORBA hosting module
(maven dependency: tuscany-host-corba-jse-tns) - see the binding.corba reference
on the Apache Tuscany website for details.
This sample adds a number of classes to the basic calculator sample:
calculator-corba-service/
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
resources/
CalculatorCORBAServer.composite - the SCA assembly for this sample
test/
java/
calculator/
CalculatorCORBAServerTestCase.java - JUnit test case
idl/ - contains files generated
from the IDL file. Files are
used to access the SCA component.
CalculatorCORBAServiceHelper.java
CalculatorCORBAService.java
_CalculatorCORBAServiceStub.java
CalculatorCORBAServiceHolder.java
CalculatorCORBAServiceOperations.java
resources/
CalculatorCORBA.idl - IDL description for SCA component
pom.xml - the Maven build file
Note. As this test creates and uses local network connections you may need to
configure your firewall, if you are running one, to allow the test to run
successfully.
Building And Running The Sample Using Ant
-----------------------------------------
With the binary distribution the sample can be built and run using Ant. Two
build files are used to support client and server functions.
The server starts the SCA runtime and loads the SCA calculator application
which exposes a CORBA service. Start a new console and use the following
commands.
cd calculator-corba-service
ant compile
ant run
This will run up the server and display the following.
run:
[java] Calculator CORBA server started (press enter to shutdown)
The client is very similar to the calculator sample
It locates the CORBA service that the SCA runtime is exposing and calls each of
the calculator operations. Start a new console and use the following commands.
cd calculator-corba-reference
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
If you now return to the console window running the server and press enter the
server should stop.
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-corba-service
mvn
You should see the following output from the test phase.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running calculator.CalculatorCORBAServerTestCase
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.819 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
This shows that the Junit test cases have run successfully.