Store Sample
======================================

This is a sample store scenario that is used as a getting started guide
for Tuscany SCA. For detailed information, please see:

http://tuscany.apache.org/getting-started-with-tuscany.html

or

http://tuscany.apache.org/getting-started-with-tuscany-using-tuscany-eclipse-plugin.html


Building And Running The Sample Using Ant Or Maven
--------------------------------------------------
With the binary distribution the sample can be built using Ant or Maven as follows:

cd store
ant compile OR mvn clean install

and then, to run:

ant run OR mvn exec:java

Once the store application is running use your browser to visit the following
URL:

http://localhost:8080/store

