 @version $Revision: 2780 $ ($Author: skarzhevskyy $) $Date: 2009-02-21 13:12:16 -0500 (Sat, 21 Feb 2009) $

* Build

   We are using maven2 to build project.  Maven version 2.0.9 will build complete project.

   Ant can be used as well but the jar created has extra classes that are not supposed to be there.

   To create Eclipse projects run:
     mvn eclipse:clean eclipse:eclipse -DdownloadSources=true

   To run build without tests:
     mvn -Dmaven.test.skip=true

   To run build without building native code:
     mvn -Dnative.build.skip=true

   build-native-bluecove.cmd and build-native-intelbth.cmd can be used to build dlls on windows.

   build-native-osx.sh can be used to build jnilib on Mac OS X

* Building Release

    Release procesure is fully automated on build server.

    * Test locally

        mvn clean deploy site-deploy

    * Remove all -SNAPSHOT and verify version from pom.xml, BlueCoveImpl.java, build.version, common.h, bluecove.rc, intelbth.rc
      
      Update versionBuild for native code to the last build # +2 (max 99) we had in snapshot.

    * Comment out sections marked <!--4release--> and <!--4snapshot--> in src/site/site.xml

    * SVN commit

    * run java and c/c++ build again.  (Win 32, Win CE, Mac OSX and Linux 32 and 64 bit done on build server)

    * On build server (CruiseControl) run bluecove-nightly-linux32, bluecove-nightly-mac, bluecove-nightly-xp, then start bluecove-nightly.
    
      Verify that the site is OK and there are no errors when runnning results on OS X/Windows/Linux.

    * On build server (CruiseControl) run bluecove-nightly-* and then start "bluecove-release"
      It will execute:
        mvn clean --fail-never -P build,release
        mvn scm:update -P build,release
        mvn clean deploy -P build,release -DperformRelease=true
        mvn site-deploy -P build,release -DperformRelease=true

    * repository "pyx4j.com-file-release" (http://pyx4j.com/maven2-release/) on build server will sync with http://repo1.maven.org/maven2

    * Upload the context of /home/apache/bluecove/release-site to bluecove.org (http://bluecove.sourceforge.net/)
        sftp web.sourceforge.net; cd /home/groups/b/bl/bluecove/htdocs

    * Verify that all Webstart Applications are working, especialy open and obex-install/push

    * Copy files src/site/resources/tck/.htaccess to each directory with the list of TCK tests

    * Upload the distribution jars bluecove-2.X.X.jar and bluecove-2.X.X-sources.tar.gz to http://code.google.com/p/bluecove/ and http://sourceforge.net/projects/bluecove/

    * Create Tag in SVN

    * Update version to  (x+1)-SNAPSHOT in pom.xml, BlueCoveImpl.java, build.version, common.h, bluecove.rc, intelbth.rc

    * Update src/site/site.xml reverse changes for <!--4release--> and <!--4snapshot-->

* cruisecontrol nightly build  
    
    http://snapshot.bluecove.org/cruisecontrol/ reporting application allows users to browse the builds logs and see modifications for each build

    File ./m2/settings.xml  has:
    
        <activeProfile>cruisecontrol-env</activeProfile>
    
    This enables additional errors handling for official nightly builds.

    "bluecove-nightly-*" 3AM EST on Linux/Intel 32-bit, Windows XP/Intel 32-bit and Mac Leo/Intel 32-bit
        clean --fail-never -P build|scm:update -P build|install -P build,build-linux32
        clean --fail-never -P build|scm:update -P build|install -P build,build-xp
        clean --fail-never -P build|scm:update -P build|install -P build,build-mac
        
    master cruisecontrol runs only on Fedora 10 (Linux 64 bit)
    "bluecove-nightly" 4AM EST
        mvn clean --fail-never -P build|scm:update -P build|deploy site-deploy -P build,build-master
        Linux 32but, Windows and OS X dll are taken from http://snapshot.bluecove.org/build/

