Layout
xplanner
|--doc // documentation
|--html // xplanner.org site
|--developers // coding standards
|--soap-examples // SOAP example
|--lib // all library to build, test and run xplanner
|--dev // build time libraries
|--test // test libraries (junit.jar...)
|--webapp // runtime libraries (copied to the war/WEB-INF/lib
|--resources // resources used in xplanner
|--mappings // hibernate mapping files
|--patches // database patch files used to upgrade to a new version of the xplanner schema
|--xplanner.properties // xplanner main configuration file
|--xplanner-custom.properties // xplanner custom configuration file
|--ResourceBundlesXXX.properties // Resources bundle files
|--sql // [DEPRECATED in favor of patches] sql script to create/update the xplanner database (mysql)
|--mysql // mysql scripts
|--src // production classes
|--src-test // test classes
|--com/technoetic/xplanner/acceptance // acceptance tests
|--com/technoetic/xplanner/performance // performance tests
|--com/technoetic/xplanner // unit tests
|--mocks // mocks for third-party libraries
|--war // all resources for the xplanner war
Builds
Your first build
- Make sure you setup your mysql database correctly by creating your xplanner user
- Run the ant target ide.after.clean: this will compile the jasper reports and generates the soap related classes.
- Run the ant target ide.before.run: this target should always be run before running unit/acceptance tests and starting xplanner in order to setup the testing/run environment.
- Run the ant target clean.db.schema: this will drop and create a database by the name of the property xplanner.database and initialize it for usage (schema and initial data)

You must have created the database before! - Build the project (Make Project from your idea or invoke the ant target build.war)
- Run the unit tests by running the class TestAllUnitTests
- Setup tomcat in IDEA and deploy xplanner to /xplanner
- Start tomcat
- Run the acceptance tests by running the class TestAllAcceptanceTests
Your subsequent builds
- Clear the database through the ant target clean.db.schema
- If you have updated your workspace and are not using the full ant build, run the ide.after.clean before you run your ide build.
- If you are getting weird error in deployment or in testing, revert to a clean copy, delete your deployed war files and retry
Having troubles?
Managing your properties
Unfortunately we have 2 ways of looking up properties (no longer true for 0.7 where the first scheme is used all the time):
- XPlanner and its custom tools (upgrades, importer... run from ant) read there properties from 2 files in order of precedence: xplanner-custom.properties and xplanner.properties.
- Most build.xml targets only read their properties from xplanner-custom.properties

You are expected not to modify xplanner.properties directly and only override any properties by setting their value in xplanner-custom.properties.
Fixed environments
Several fixed environments have their properties checked in under resources/xplanner-custom-<environment>.properties:
| Environment | Properties file |
|---|---|
| XPlanner continuous build (hosted by Sabre) | xplanner-custom-apdbuild3.properties |
| XPlanner staging (hosted by Sabre) | xplanner-custom-staging.properties |
| Sabre XPlanner production | xplanner-custom-production.properties |
| XPlanner standalone install package | xplanner-custom-standalone-install.properties |
| XPlanner war install package | xplanner-custom-war-install.properties |
| If you add, rename, delete any properties or change their values, please check if they should also be changed in any xplanner-custom-<environment>.properties. This way the build may not be impacted negatively by your changes. |