blob: a702f5df89e52613fd0b9c1d663b52c4d4d15daf [file] [log] [blame]
Hello World Erlang Service Sample
=================================
This sample demonstrates an SCA service 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.
The Tuscany SCA Erlang binding is compatible with Erlang/OTP version R12B but
doesn't work correctly with some later versions including R14B. See TUSCANY-3759
for details.
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 ..\..\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
Now the server is started you can use the helloworld-erlang-reference sample to
exercise it.
Sample Overview
---------------
The sample provides a single component that is wired to a service with a
Erlang binding.
helloworld-erlang-service/
src/
main/
java/
helloworld/
HelloWorldService.java - interface description for
HelloWorldServiceComponent
HelloWorldImpl.java - component implementation
HelloWorldServer.java - starts the SCA Runtime and
deploys the helloworlderlangservice
.composite and then waits for the
service to be called via Erlang
resources/
helloworlderlangservice.composite - the SCA assembly for this sample
test/
java/
helloworld/
HelloWorldErlangServerTestCase.java - JUnit test case
dynaignore/ - internal Java classes for ignoring test
in case of missing Erlang/OTP distribution
helloworld-service.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 using the
following commands
cd helloworld-erlang-service
ant compile
ant run
You should see the following output from the run target.
run:
[java] EPMD server started
[java] 2009-05-26 11:59:07 org.apache.tuscany.sca.node.impl.NodeImpl <init>
[java] INFO: Creating node: helloworlderlangservice.composite
[java] 2009-05-26 11:59:08 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
[java] 2009-05-26 11:59:08 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
[java] 2009-05-26 11:59:08 org.apache.tuscany.sca.node.impl.NodeImpl start
[java] INFO: Starting node: helloworlderlangservice.composite
[java] HelloWorld server started (press enter to shutdown)
As this point the SCA service is exposed as a Erlang module via Erlang RPC which is
started automatically by the SCA runtime. To stop the server just press
enter.
To exercise the service run up the helloworld-erlang-reference sample. Take a look at
the README in that sample and you will see you need the following commands
cd helloworld-erlang-reference
ant run
Building Sample Using Maven
-------------------------------------------
With either the binary or source distributions the sample can be built
using Maven as follows.
cd helloworld-erlang-service
mvn
You should see the following output
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15 seconds
[INFO] Finished at: Wed Jul 02 12:50:24 BST 2008
[INFO] Final Memory: 13M/51M
[INFO] ------------------------------------------------------------------------
This shows that the module has compiled successfully.