apache-tuscany/sca-java-1.x/trunk/samples/helloworld-erlang-service
2011-02-09 12:08:42 +00:00
..
src Merge r1028655 TUSCANY-3759: Add code to read stdin and stderr from spawned epmd process and reverse changes made by commit r1028378 2010-10-29 09:39:25 +00:00
helloworld-service.png Renaming erlang samples and excluding them from binary distribution 2010-01-21 20:48:46 +00:00
helloworld-service.svg Renaming erlang samples and excluding them from binary distribution 2010-01-21 20:48:46 +00:00
pom.xml update references to 1.6.1-SNAPSHOT 2011-02-09 12:08:42 +00:00
README Merge r1028655 TUSCANY-3759: Add code to read stdin and stderr from spawned epmd process and reverse changes made by commit r1028378 2010-10-29 09:39:25 +00:00

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.