Running provided Sorcer examples
The examples are supplied in the form of source code in the SORCER distribution (examples folder). To be able to compile and run them you need have a running Maven and Ant and for convenience add the bin folders of both of them to your PATH. SORCER distribution comes with both Maven and Ant - they’re located in the SORCER_HOME/lib/ directory and SORCER scripts add their bin directories to your path. Please use the SORCER_HOME/bin/setenv scripts to configure your environment. On Windows open the command line and run: %SORCER_HOME%\bin\setenv.bat On Unix open a terminal and run: source $SORCER_HOME/bin/setenv
Before reading on please make sure you have followed our Getting Started guide and have a fully functioning SORCER platform.
Setup examples build environment
SORCER providers and examples are built using Apache Maven, therefore they require the SORCER components and pom files to be installed in your local maven repository (usually placed in your home folder: $HOME/.m2/repository).
Important note: Before you proceed, please note that Maven may need to download some plugins during this process, therefore it is necessary that you have an active internet connection and that your maven is not set to work offline.
To build examples go to the $SORCER_HOME/examples folder and execute:
This is not necessary if you just want to test existing examples without modifying their code - they come precompiled in the distribution.
To run the first “Hello World” example: - go to $SORCER_HOME and execute
If everything works correctly you should see something like this: `` Created the nsh shell log file: /home/user/sorcer/logs/shell/nsh.log
---> OUTPUT EXERTION ---> sorcer\.core\.exertion\.NetTask: hello1 task ID: 29eaa758-3bb8-4577-8646-b5b19610d2ec process sig: class sorcer.core.signature.NetSignature:\*;SRV;true;interface sorcer.ex0.HelloWorld;sayHelloWorld status: DONE exec time: 18 msec ---> OUTPUT DATA CONTEXT ---> Context name: Hello in/value = TESTER out/value = Hello there - TESTER task/provider = HelloWorld-DEV@192.168.1.240:192.168.1.240
Running any example
Most examples contain the following directory structure:
- exX-api - this folder contains the code of the interfaces published by the service provider as well as classes required for passing input/output data (context) to/from the provider.
- exX-prv - the actual implementation of the service provider.
- exX-cfg - this folder contains the configuration files of the service. You can start the provider by executing
- exX-dl - the codebase of the service provider (this module only contains a pom.xml file with dependent libraries that have to be exposed in the codebase of the provider).
- exX-req - this folder contains the requestor used for testing the service provider. The testing code may be implemented either as a:
regular java application
In ex0/ex0-req there is test.sh / test.bat script that invokes a Main style java application contained in the HelloWorldReq class. In other examples you will find ant scripts for starting the requestor - there may be more than one script - they usually differ by input parameters that are provided as arguments during startup.
junit test class
you may start the tests by calling
mvn test -f examples/pom.xml
mvn test -Prun-its
netlet script (*.ntl files) - to run them either execute the file (Unix) or run nsh f1.ntl.
Creating your own SORCER service provider using SORCER maven archetype
When you have run the examples you are ready to go on and create your own service provider. Please visit the next tutorial on Creating Sorcer service provider using a maven archetype.
Using maven in offline mode
Maven may be permanently set to offline mode by adding <offline>true</offline> to your maven settings file: $HOME/.m2/settings.xml
It may also be invoked in offline mode dynamically by providing the -o parameter, for example:
mvn -o install