blob: e0c1a5c89f1df13bf73989cd370b3276fa985f64 [file] [log] [blame]
Hello World Erlang Reference Sample
===================================
This sample demonstrates an SCA reference that uses a Erlang binding
The README in the samples directory (the directory above this) provides
general instructions about building and running samples. Take a look there
first.
In order to run Erlang samples you need to have Erlang/OTP distribution installed -
epmd binary is required in your system path. See http://erlang.org for downloads.
If you just want to run it to see what happens you need to run the server first
so open a command prompt, navigate to the helloworld-erlang-service 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-helloworld-erlang-service.jar helloworld.HelloWorldServer
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-erlang-service.jar helloworld.HelloWorldServer
Once the server is running 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-helloworld-erlang-reference.jar helloworld.HelloWorldErlangClient
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-erlang-reference.jar helloworld.HelloWorldErlangClient
Sample Overview
---------------
The sample provides a component that has a reference with a Erlang binding.
The binding refers to Erlang module and communicates with a service
exposed by the helloworld-service-erlang sample.
helloworld-erlang-reference/
src/
main/
java/
helloworld/
HelloWorldImpl - HelloWorld service implementation
HelloWorldService.java - interface description for
HelloWorldServiceComponent
HelloWorldServiceComponent.java - component implementation
HelloWorldErlangClient.java - starts the SCA Runtime and
deploys the helloworldwserlangclient
.composite. It then calls the
HelloWorldServiceComponent
resources/
helloworlderlangreference.composite - the SCA assembly for this sample
helloworlderlangservice.composite - the SCA assembly for the server
that is used by the JUnit tests
logging.properties - log4j configuration file
test/
java/
helloworld/
HelloWorldErlangClientTestCase.java - JUnit test case
dynaignore/ - internal Java classes for ignoring test
in case of missing Erlang/OTP distribution
helloworld-reference.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. Before
you do this start up the service that the reference will talk to. To do this
run up the helloworld-erlang-service sample. Take a look at the README in that sample
and you will see you need the following commands
cd helloworld-erlang-service
ant run
Once done you can now compile and run this sample using the following commands;
cd helloworld-erlang-reference
ant compile
ant run
You should see the following output from the run target.
run:
[java] 2009-05-26 12:03:54 org.apache.tuscany.sca.node.impl.NodeImpl <init>
[java] INFO: Creating node: helloworlderlangreference.composite
[java] 2009-05-26 12:03:55 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
[java] 2009-05-26 12:03:56 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
[java] 2009-05-26 12:03:56 org.apache.tuscany.sca.node.impl.NodeImpl start
[java] INFO: Starting node: helloworlderlangreference.composite
[java] Hello World
[java] 2009-05-26 12:03:56 org.apache.tuscany.sca.node.impl.NodeImpl stop
[java] INFO: Stopping node: helloworlderlangreference.composite
BUILD SUCCESSFUL
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 using Maven you don't need to run the helloworld-
erlang-service sample first as the JUnit test does this for you.
cd helloworld-erlang-reference
mvn
You should see the following output from the test phase.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.569 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
This shows that the Junit test cases have run successfully.