Overview

Requirements:
 * Eclipse for RCP/Plug-in Developers - (http://www.eclipse.org/) - Galileo or
   newer with all required plug-ins for developing OSGi applications.
   See  "Eclipse for RCP and RAP Developers".
 * Google Web Toolkit - (http://code.google.com/intl/en/webtoolkit/) 
 * The Google Plugin for Eclipse - (http://code.google.com/intl/en/webtoolkit/) - used to start/debug GWT applications from Eclipse
 * Maven2 - (http://maven.apache.org/) - the main build tool
 * Maven2Eclipse - (http://m2eclipse.sonatype.org/) - Eclipse plugin to manage 
   Maven-based projects

Project structure:
 * /com.cogniumsystems.socialkiosk - the folder with a test application:
    * com.cogniumsystems.socialkiosk.gwtapp - the main GWT application
 * /poms - Maven2 POM parent files
    * /parent-bundle - the parent POM for all OSGi bundles
    * /parent-gwt - the parent POM for GWT projects. It uses the POM from the 
      /parent-bundle folder.
    * /parent-gwt-app - the parent POM for GWT applications. Refers the 
      /parent-gwt folder.
 * /tools - a set of launch configurations:
    * "1) SocialKiosk - Create Eclipse Projects.launch" - re-builds 
      Eclipse-specific meta-information (like ".classpath", ".projects" files etc).
    * "2) SocialKiosk - Initialize Eclipse Target Platform.launch" - 
      generates an Eclipse Target Platform with all required bundles not 
      presented directly in project dependencies but required to launch the 
      resulting application.
      To set the generated Target Platform you should open and activate the
      "SocialKiosk - Eclipse Target Platform.target" file in Eclipse.
    * "3) SocialKiosk - Start Server.launch" - launches the server from Eclipse.
      This configuration should be started only when all Eclipse projects are 
      generated and the Target Platform is activated (When steps 1 and 2 are done).
    * "4) SocialKiosk - Start SocialKioskClientApp.launch" - starts 
      the client GWT application in debug mode. 
    * "5) SocialKiosk - Rebuild Projects.launch" - rebuilds all projects
    * "6) SocialKiosk - Build Distribution.launch" - creates a ready to use
      distribution of this application. This operations should be performed 
      just after the step "5) SocialKiosk - Rebuild Projects.launch".
    * "SocialKiosk - Create Project Copy.launch" - launch configuration  
      for the "SocialKiosk - Create Project Copy.xml" Ant script which creates 
      a new full copy of this project with a new name. 
    * "SocialKiosk - Create Project Copy.xml" - the Ant script creating a new 
      copy of this project with a new name. It also properly renames all classes,
      packages and references in all files.  
    * "SocialKiosk - Eclipse Target Platform.target" - the Eclipse Target Platform
      referencing all OSGi bundles required to launch the resulting application.
      Note that this target platform should be activated only after the launching
      the step 2 - "2) SocialKiosk - Rebuild Eclipse Target Platform.launch".
 * /workdir - the working directory. This directory contains the Eclipse Target 
   Platform generated by the "2) SocialKiosk - Initialize Eclipse Target Platform.launch"
   configuration. 
   The "6) SocialKiosk - Build Distribution.launch" action generates the 
   resulting zip file in this folder as well.

Eclipse Launch configurations from the "./tools" directory:
* "1) SocialKiosk - Create Eclipse Projects.launch":
  > cd SocialKiosk
  > mvn eclipse:clean eclipse:eclipse
* "2) SocialKiosk - Initialize Eclipse Target Platform.launch"
  > cd SocialKiosk/workdir
  > mvn clean install pax:run
* "3) SocialKiosk - Start Server.launch"
* "4) SocialKiosk - Start SocialKioskClientApp.launch"
* "5) SocialKiosk - Rebuild Projects.launch"
  > cd SocialKiosk
  > mvn clean install
* "6) SocialKiosk - Build Distribution.launch"
  > cd SocialKiosk/workdir
  > mvn clean install pax:run -Dpax.args=file:./pax-zip.args