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