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-service-erlang.jar helloworld.HelloWorldServer and on *nix do java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-service-erlang.jar helloworld.HelloWorldServer Now the server is started you can use the helloworld-reference-erlang sample to exercise it. Sample Overview --------------- The sample provides a single component that is wired to a service with a Erlang binding. helloworld-service-erlang/ 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-service-erlang 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 [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-reference-erlang sample. Take a look at the README in that sample and you will see you need the following commands cd helloworld-reference-erlang ant run Building Sample Using Maven ------------------------------------------- With either the binary or source distributions the sample can be built using Maven as follows. cd helloworld-service-erlang 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.