| 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. |