Skip to: Site menu | Main content

XPlanner

Planning and tracking tool for agile teams following XP or Scrum

Development guide Print

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

  1. Make sure you setup your mysql database correctly by creating your xplanner user
  2. Run the ant target ide.after.clean: this will compile the jasper reports and generates the soap related classes.
  3. 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.
  4. 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!
  5. Build the project (Make Project from your idea or invoke the ant target build.war)
  6. Run the unit tests by running the class TestAllUnitTests
  7. Setup tomcat in IDEA and deploy xplanner to /xplanner
  8. Start tomcat
  9. Run the acceptance tests by running the class TestAllAcceptanceTests

Your subsequent builds

  1. Clear the database through the ant target clean.db.schema
  2. 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.
  3. If you are getting weird error in deployment or in testing, revert to a clean copy, delete your deployed war files and retry

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.