Calculator Sample ================= This sample implements a simple calculator using SCA components. It also optionally demonstrates tracing Tuscany code. 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 ..\..\features\tuscany-sca-manifest.jar;target\sample-calculator.jar calculator.CalculatorClient and on *nix do java -cp ../../features/tuscany-sca-manifest.jar:target/sample-calculator.jar calculator.CalculatorClient If you want to see an example of tracing the Tuscany code ... then try the command --------------------------------------------------------- ant runtraced or on Windows run the command java -javaagent:..\..\bin/aspectjweaver.jar -cp ..\..\features\tuscany-sca-manifest.jar;target\sample-calculator.jar calculator.CalculatorClient or on *nix run the command java -javaagent:../../bin/aspectjweaver.jar -cp ../../features/tuscany-sca-manifest.jar:target/sample-calculator.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. calculator/ src/ main/ java/ calculator/ CalculatorService.java - the first component, calls +-/* as appropriate CalculatorServiceImpl.java AddService.java - adds two numbers AddServiceImpl.java SubtractService.java - subtracts one number from another SubtractServiceImpl.java MultiplyService.java - multiplies two numbers MultiplyServiceImpl.java DivideService.java - divides one number by another DivideServiceImpl.java CalculatorClient.java - starts the SCA Runtime and deploys the Calculator.composite. It then calls the deployed Calculator Components services resources/ Calculator.composite - the SCA assembly for this sample 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 and run using Ant as follows cd calculator 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 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: 1.272 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 This shows that the Junit test cases have run successfully.