Installing the Apache Tuscany SCA 2.0-M5 June 2010 Release binary distribution
==================================================================================

Unzip Tuscany binary distribution archive and you get the following:

tuscany-sca-2.0-M5.1     
   CHANGES       - A note of the major changes in this release   
   INSTALL       - this help file
   LICENSE       - the Apache License and any dependecy licenses
   NOTICE        - attribution notices associated with the licenses
   README        - readme for the release
   RELEASE_NOTES - description of this release 

   /bin          - Tuscany launcher (for use when running tuscany from the command line)

   /features     - OSGi runtime configuration, Tuscany manifest and PDE target

   /lib          - a new feature of this release looking at how to aggregate the
                   information in modules into more coarse grained jars to ease
                   classpath creation without having to rely on the Tuscany distribution
                   structure.

   /modules      - all of the individual Tuscany jars and their dependencies

   /samples      - all the Tuscany samples, see the README in that directory




