Calculator Distributed Sample
=============================
This sample implements a simple calculator using SCA components.  It uses 
exactly the same calculator application classes as the calculator sample but 
runs the application distributed across three nodes.

A node in this sample means an instance of the Tuscany SCA java runtime running
in a Java virtual machine. 

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 four command prompts and 
navigate to this sample directory in each one. There is one command to be run 
in each command prompt:

ant runDomain
ant runNodeB
ant runNodeC
ant runNodeA

Please run the commands in this order. 

OR if you don't have ant, on Windows use

java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-calculator-distributed.jar node.LaunchDomain
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-calculator-distributed.jar node.LaunchCalculatorNodeB
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-calculator-distributed.jar node.LaunchCalculatorNodeC
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-calculator-distributed.jar node.LaunchCalculatorNodeA

and on *nix do

java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-distributed.jar node.LaunchDomain
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-distributed.jar node.LaunchCalculatorNodeB
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-distributed.jar node.LaunchCalculatorNodeC
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-calculator-distributed.jar node.LaunchCalculatorNodeA

The processes started on each of these command prompts can be ended by typing 'q'.


Sample Overview
---------------
The sample provides a single calculator service with a default SCA (java) 
binding. NodeA exercises this interface by calling add, subtract, multiply and 
divide operations. 

In the case of add and subtract the runtime recognises that
it can't find these services locally and, using the remote (web services) 
version of the default SCA binding, contacts the add service running in NodeB 
and the subtract service running in NodeC. 

On the command prompt where you started NodeA, you see the output of invoking the 
calculator functions distributed over NodeB and and NodeC.  On the command prompts 
where you have started NodeB and NodeC, you see log messages that indicate that
the add and subtract services where called on these nodes respectively.

The sample demonstrates that the calculator application can be distributed
across multiple nodes with no change to the application or to the SCA description
files. 

The domain node makes available a web application through which the contributions and 
composites used in this sample can be navigated. One you have run "ant runDomain" you can 
point you browser at:

http://localhost:9990/ui/workspace/

The contents of the sample are as follows:

calculator/
  src/
    main/
      java/
        calculator/
          CalculatorService.java  - the first component, calls +-/* as 
                                    appropriate
          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
        node/
          LaunchCalculatorNodeA.java - runs an sca node configured with the 
                                    composite describing the main calculator
                                    application. If you look inside this class
                                    you will see that the node is configured
                                    using a URL of the form:
                                    
                                    http://localhost:9990/node-config/NodeA
                                    
                                    This retrieves the information required
                                    to configure NodeA from the domain.

                                    Once the node has been started this launcher
                                    then finds the calculator service and 
                                    calls the various methods.
                                    
          LaunchCalculatorNodeB&C.java -  These launchers start nodes B and C
                                    which runs the add and subtract services.
                                    
                                    Unlike NodeA though these launchers just
                                    wait once the node has been started. They
                                    will service incomming web service requests
                                    as they arrive.  

           LaunchDomain.java      - the node that provides the domain 
                                    configuration to the distributed
                                    nodes
      resources/
        workspace.xml             - The domain manager configuration files that
        domain.composite            describe the configuration of the domain's
        cloud.composite             contributions, composites, and nodes

        cloud/                    - The SCA composite files that describe
                                    the configuration of each node				
        nodeA/                    - the SCA assembly for nodeA's part of the 
                                    calculator application
        nodeB/                    - the SCA assembly for nodeB's part of the 
                                    calculator application
        nodeC/                    - the SCA assembly for nodeC's part of the 
                                    calculator application
    test/
      java/
        calculator/
          CalculatorDistributedTestCase.java - JUnit test case which runs all 
                                    of the separate nodes along with the domain
                                    in a single VM for test purposes
  calculator-distributed.png      - a pictorial representation of the sample 
                                    .composite files
  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-distributed
ant compile
ant runDomain
ant runNodeB
ant runNodeC
ant runNodeA

You should see the following output from the four separate command prompt:

runDomain:
ted>ant runDomain
Buildfile: build.xml

runDomain:
     [java] 26-Mar-2008 12:55:12 org.apache.tuscany.sca.node.launcher.DomainMana
gerLauncher main
     [java] INFO: Apache Tuscany SCA Domain Manager starting...
     [java] 26-Mar-2008 12:55:13 org.apache.tuscany.sca.node.launcher.NodeLaunch
erUtil collectJARFiles
     [java] INFO: Runtime classpath: 147 JARs from C:\simon\tuscany\sca-java-1.2
\distribution\target\apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir\tuscany-sca-
1.2-incubating-SNAPSHOT\lib
     [java] 26-Mar-2008 12:55:13 org.apache.tuscany.sca.node.launcher.NodeLaunch
erUtil collectJARFiles
     [java] INFO: Runtime classpath: 89 JARs from C:\simon\tuscany\sca-java-1.2\
distribution\target\apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir\tuscany-sca-1
.2-incubating-SNAPSHOT\modules
     [java] 26-Mar-2008 12:55:19 org.apache.catalina.core.StandardEngine start
     [java] INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.ContextConfig defau
ltWebConfig
     [java] INFO: No default web.xml
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.
xsd
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_1.
xsd
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
aglibrary_1_1.dtd
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
aglibrary_1_2.dtd
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
aglibrary_2_0.xsd
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt
aglibrary_2_1.xsd
     [java] 26-Mar-2008 12:55:20 org.apache.catalina.startup.DigesterFactory reg
ister
     [java] WARNING: Could not get url for /javax/servlet/resources/j2ee_web_ser
vices_1_1.xsd
     [java] 26-Mar-2008 12:55:20 org.apache.coyote.http11.Http11Protocol init
     [java] INFO: Initializing Coyote HTTP/1.1 on http-9990
     [java] 26-Mar-2008 12:55:20 org.apache.coyote.http11.Http11Protocol start
     [java] INFO: Starting Coyote HTTP/1.1 on http-9990
     [java] 26-Mar-2008 12:55:20 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/ui/home/*
     [java] 26-Mar-2008 12:55:20 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/ui/workspace/*
     [java] 26-Mar-2008 12:55:20 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/ui/files/*
     [java] 26-Mar-2008 12:55:20 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/ui/composite/*
     [java] 26-Mar-2008 12:55:20 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/ui/cloud/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/workspace/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/contribution/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/feed/files/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/files/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/composite/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/composite-source/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/deployable/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/composite-resolved/
*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/cloud/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/cloud-source/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/composite-config/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/node-config/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/quickstart/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/processes/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/node/processes/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.http.tomcat.TomcatServer
 addServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:9990/ping/*
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.node.launcher.DomainMana
gerLauncher main
     [java] INFO: SCA Domain Manager started.
     [java] 26-Mar-2008 12:55:21 org.apache.tuscany.sca.node.launcher.DomainMana
gerLauncher main
     [java] INFO: Press enter to shutdown.


runNodeB:
     [java] 26-Mar-2008 12:55:42 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: Apache Tuscany SCA Node starting...
     [java] 26-Mar-2008 12:55:42 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: SCA Node configuration: http://localhost:9990/node-config/NodeB

     [java] 26-Mar-2008 12:55:42 org.apache.tuscany.sca.node.launcher.NodeLaunch
erUtil collectJARFiles
     [java] INFO: Runtime classpath: 147 JARs from C:\simon\tuscany\sca-java-1.2
\distribution\target\apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir\tuscany-sca-
1.2-incubating-SNAPSHOT\lib
     [java] 26-Mar-2008 12:55:42 org.apache.tuscany.sca.node.launcher.NodeLaunch
erUtil collectJARFiles
     [java] INFO: Runtime classpath: 89 JARs from C:\simon\tuscany\sca-java-1.2\
distribution\target\apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir\tuscany-sca-1
.2-incubating-SNAPSHOT\modules
     [java] 26-Mar-2008 12:55:42 org.apache.tuscany.sca.node.impl.NodeImpl <init
>
     [java] INFO: Creating node: http://localhost:9990/node-config/NodeB
     [java] 26-Mar-2008 12:55:45 org.apache.tuscany.sca.node.impl.NodeImpl confi
gureNode
     [java] INFO: Loading contribution: file:/C:/simon/tuscany/sca-java-1.2/dist
ribution/target/apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir/tuscany-sca-1.2-i
ncubating-SNAPSHOT/samples/calculator-distributed/./src/main/resources/nodeB/
     [java] 26-Mar-2008 12:55:46 org.apache.tuscany.sca.node.impl.NodeImpl confi
gureNode
     [java] INFO: Loading composite: http://localhost:9990/composite-resolved/co
mposite:nodeB;http://sample;CalculatorB
     [java] 26-Mar-2008 12:55:47 org.apache.tuscany.sca.node.impl.NodeImpl start

     [java] INFO: Starting node: http://localhost:9990/node-config/NodeB
     [java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
     [java] 26-Mar-2008 12:55:53 org.apache.tuscany.sca.http.jetty.JettyServer a
ddServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:8200/AddServiceComponent
B
     [java] 26-Mar-2008 12:55:53 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: SCA Node started.
     [java] 26-Mar-2008 12:55:53 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: Press enter to shutdown.
     [java] AddService - add 3.0 and 2.0
     
runNodeC:
     [java] 26-Mar-2008 12:56:01 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: Apache Tuscany SCA Node starting...
     [java] 26-Mar-2008 12:56:01 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: SCA Node configuration: http://localhost:9990/node-config/NodeC

     [java] 26-Mar-2008 12:56:01 org.apache.tuscany.sca.node.launcher.NodeLaunch
erUtil collectJARFiles
     [java] INFO: Runtime classpath: 147 JARs from C:\simon\tuscany\sca-java-1.2
\distribution\target\apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir\tuscany-sca-
1.2-incubating-SNAPSHOT\lib
     [java] 26-Mar-2008 12:56:01 org.apache.tuscany.sca.node.launcher.NodeLaunch
erUtil collectJARFiles
     [java] INFO: Runtime classpath: 89 JARs from C:\simon\tuscany\sca-java-1.2\
distribution\target\apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir\tuscany-sca-1
.2-incubating-SNAPSHOT\modules
     [java] 26-Mar-2008 12:56:01 org.apache.tuscany.sca.node.impl.NodeImpl <init
>
     [java] INFO: Creating node: http://localhost:9990/node-config/NodeC
     [java] 26-Mar-2008 12:56:03 org.apache.tuscany.sca.node.impl.NodeImpl confi
gureNode
     [java] INFO: Loading contribution: file:/C:/simon/tuscany/sca-java-1.2/dist
ribution/target/apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir/tuscany-sca-1.2-i
ncubating-SNAPSHOT/samples/calculator-distributed/./src/main/resources/nodeC/
     [java] 26-Mar-2008 12:56:04 org.apache.tuscany.sca.node.impl.NodeImpl confi
gureNode
     [java] INFO: Loading composite: http://localhost:9990/composite-resolved/co
mposite:nodeC;http://sample;CalculatorC
     [java] 26-Mar-2008 12:56:04 org.apache.tuscany.sca.node.impl.NodeImpl start

     [java] INFO: Starting node: http://localhost:9990/node-config/NodeC
     [java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
     [java] 26-Mar-2008 12:56:10 org.apache.tuscany.sca.http.jetty.JettyServer a
ddServletMapping
     [java] INFO: Added Servlet mapping: http://L3AW203:8300/SubtractServiceComp
onentC
     [java] 26-Mar-2008 12:56:10 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: SCA Node started.
     [java] 26-Mar-2008 12:56:10 org.apache.tuscany.sca.node.launcher.NodeLaunch
er main
     [java] INFO: Press enter to shutdown.
     [java] SubtractService - subtract 3.0 and 2.0
     
runNodeA:
     [java] 26-Mar-2008 12:56:10 org.apache.tuscany.sca.node.impl.NodeImpl <init
>
     [java] INFO: Creating node: http://localhost:9990/node-config/NodeA
     [java] 26-Mar-2008 12:56:12 org.apache.tuscany.sca.node.impl.NodeImpl confi
gureNode
     [java] INFO: Loading contribution: file:/C:/simon/tuscany/sca-java-1.2/dist
ribution/target/apache-tuscany-sca-1.2-incubating-SNAPSHOT.dir/tuscany-sca-1.2-i
ncubating-SNAPSHOT/samples/calculator-distributed/./src/main/resources/nodeA/
     [java] 26-Mar-2008 12:56:13 org.apache.tuscany.sca.node.impl.NodeImpl confi
gureNode
     [java] INFO: Loading composite: http://localhost:9990/composite-resolved/co
mposite:nodeA;http://sample;CalculatorA
     [java] 26-Mar-2008 12:56:14 org.apache.tuscany.sca.assembly.builder.impl.Co
mpositeBuilderImpl$1 problem
     [java] WARNING: Component reference target not found, it might be a remote
service: SubtractServiceComponentC
     [java] 26-Mar-2008 12:56:14 org.apache.tuscany.sca.assembly.builder.impl.Co
mpositeBuilderImpl$1 problem
     [java] WARNING: Component reference target not found, it might be a remote
service: AddServiceComponentB
     [java] 26-Mar-2008 12:56:14 org.apache.tuscany.sca.node.impl.NodeImpl start

     [java] INFO: Starting node: http://localhost:9990/node-config/NodeA
     [java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
     [java] Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
     [java] CalculatorService - add 3.0 and 2.0
     [java] 3 + 2=5.0
     [java] CalculatorService - subtract 3.0 and 2.0
     [java] 3 - 2=1.0
     [java] CalculatorService - multiply 3.0 and 2.0
     [java] 3 * 2=6.0
     [java] CalculatorService - divide 3.0 and 2.0
     [java] 3 / 2=1.5
     [java] 26-Mar-2008 12:56:20 org.apache.tuscany.sca.node.impl.NodeImpl stop
     [java] INFO: Stopping node: http://localhost:9990/node-config/NodeA

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. When running from Maven the four nodes all run within 
Java virtual machine. 

cd calculator-distributed
mvn

You should see the following output at the end of the test phase.

INFO: Starting node: http://localhost:9990/node-config/NodeA
CalculatorService - add 3.0 and 2.0
AddService - add 3.0 and 2.0
CalculatorService - subtract 3.0 and 2.0
SubtractService - subtract 3.0 and 2.0
CalculatorService - multiply 3.0 and 2.0
CalculatorService - divide 3.0 and 2.0
26-Mar-2008 13:00:52 org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: http://localhost:9990/node-config/NodeC
26-Mar-2008 13:00:52 org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: http://localhost:9990/node-config/NodeB
26-Mar-2008 13:00:52 org.apache.tuscany.sca.node.impl.NodeImpl stop
INFO: Stopping node: http://localhost:9990/node-config/NodeA
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.328 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

This shows that the Junit test cases have run successfully. 



