Hello World Erlang References 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-service-erlang 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-service-erlang.jar helloworld.HelloWorldServer | |
and on *nix do | |
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-service-erlang.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-reference-erlang.jar helloworld.HelloWorldErlangClient | |
and on *nix do | |
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-reference-erlang.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-reference-erlang/ | |
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-service-erlang test. Take a look at the README in that sample | |
and you will see you need the following commands | |
cd helloworld-service-erlang | |
ant run | |
Once done you can now compile and run this sample using the following commands; | |
cd helloworld-reference-erlang | |
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- | |
service-erlang sample first as the JUnit test does this for you. | |
cd helloworld-reference-erlang | |
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. |