
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1028659 13f79535-47bb-0310-9956-ffa450edef68
111 lines
4.1 KiB
Text
111 lines
4.1 KiB
Text
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.
|
|
|
|
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.
|