Installing  Apache Airavata Client 0.7
--------------------------------------

Prerequisites
-------------
Java 1.5 or later
Maven (tested on v 3.0.2)

Build Apache Airavata from Source
---------------------------------
* Unzip/untar the source file or check out from svn.
* cd to project folder and type
	$ mvn clean install
	Note: in order to skip tests use the command
			$ mvn clean install -Dmaven.test.skip=true
* The compressed binary distribution is created at <PROJECT DIR>/modules/distribution/airavata-client/target

Installing the Airavata Client Libraries
----------------------------------------
* Add all the libraries (jar files) in the <AIRAVATA_CLIENT_HOME>/lib directory to the classpath
* Add the <AIRAVATA_CLIENT_HOME>/conf directory to the classpath

Running Tests
-------------
Once the binary is unzipped, instructions to run the tests should be follow from README

Tutorials 
----------
The airavata website has instructions for basic tutorials:
* For basic understanding on how to use Airavata API please look at the samples shipped with the distribution
* Follow Airavata Wiki for more examples on how to use the Airavata API - https://cwiki.apache.org/confluence/display/AIRAVATA/Gateway+Developer+Guide
