Hello World Erlang References Sample ================================= This sample demonstrates an SCA reference 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 you need to run the server first so open a command prompt, navigate to the helloworld-service-erlang 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 Once the server is running 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-reference-erlang.jar helloworld.HelloWorldErlangClient and on *nix do java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-reference-erlang.jar helloworld.HelloWorldErlangClient Sample Overview --------------- The sample provides a component that has a reference with a Erlang binding. The binding refers to Erlang module and communicates with a service exposed by the helloworld-service-erlang sample. helloworld-reference-erlang/ src/ main/ java/ helloworld/ HelloWorldImpl - HelloWorld service implementation HelloWorldService.java - interface description for HelloWorldServiceComponent HelloWorldServiceComponent.java - component implementation HelloWorldErlangClient.java - starts the SCA Runtime and deploys the helloworldwserlangclient .composite. It then calls the HelloWorldServiceComponent resources/ helloworlderlangreference.composite - the SCA assembly for this sample helloworlderlangservice.composite - the SCA assembly for the server that is used by the JUnit tests logging.properties - log4j configuration file test/ java/ helloworld/ HelloWorldErlangClientTestCase.java - JUnit test case dynaignore/ - internal Java classes for ignoring test in case of missing Erlang/OTP distribution helloworld-reference.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. Before you do this start up the service that the reference will talk to. To do this run up the helloworld-service-erlang test. Take a look at the README in that sample and you will see you need the following commands cd helloworld-service-erlang ant run Once done you can now compile and run this sample using the following commands; cd helloworld-reference-erlang ant compile ant run You should see the following output from the run target. run: [java] 2009-05-26 12:03:54 org.apache.tuscany.sca.node.impl.NodeImpl [java] INFO: Creating node: helloworlderlangreference.composite [java] 2009-05-26 12:03:55 org.apache.tuscany.sca.node.impl.NodeImpl configureNode [java] 2009-05-26 12:03:56 org.apache.tuscany.sca.node.impl.NodeImpl configureNode [java] 2009-05-26 12:03:56 org.apache.tuscany.sca.node.impl.NodeImpl start [java] INFO: Starting node: helloworlderlangreference.composite [java] Hello World [java] 2009-05-26 12:03:56 org.apache.tuscany.sca.node.impl.NodeImpl stop [java] INFO: Stopping node: helloworlderlangreference.composite BUILD SUCCESSFUL Building And Running The Sample Using Maven ------------------------------------------- With either the binary or source distributions the sample can be built and run using Maven as follows. When using Maven you don't need to run the helloworld- service-erlang sample first as the JUnit test does this for you. cd helloworld-reference-erlang mvn You should see the following output from the test phase. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.569 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 This shows that the Junit test cases have run successfully.