James Moger
2011-10-07 55cecdbb6c961441330c928f9ed587582f317f4b
build.xml
@@ -2,7 +2,11 @@
<project name="gitblit" default="compile" basedir=".">
   <!-- Google Code upload task -->
   <taskdef classname="net.bluecow.googlecode.ant.GoogleCodeUploadTask" classpath="${basedir}/tools/ant-googlecode-0.0.3.jar" name="gcupload"/>
   <taskdef classname="net.bluecow.googlecode.ant.GoogleCodeUploadTask"
      classpath="${basedir}/tools/ant-googlecode-0.0.3.jar" name="gcupload"/>
   <!-- GenJar task -->
   <taskdef resource="genjar.properties" classpath="${basedir}/tools/GenJar.jar" />
   <!-- Project Properties -->
   <property name="project.jar" value="gitblit.jar" />
@@ -12,9 +16,19 @@
   <property name="project.war.dir" value="${basedir}/war" />
   <property name="project.site.dir" value="${basedir}/site" />
   <property name="project.resources.dir" value="${basedir}/resources" />   
   <available property="hasBuildProps" file="${basedir}/build.properties"/>
   <!-- Load publication servers, paths, and credentials -->
   <loadproperties srcfile="${basedir}/build.properties" />
   <!--
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Load build.properties, if available
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
   <target name="buildprops" if="hasBuildProps">
      <!-- Load publication servers, paths, and credentials -->
      <loadproperties>
         <file file="${basedir}/build.properties" />
      </loadproperties>
   </target>
   
   
   <!--
@@ -22,7 +36,7 @@
      Scrape the version info from code and setup the build properties 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
   <target name="buildinfo">
   <target name="buildinfo" depends="buildprops">
   
      <!-- extract Gitblit version number from source code -->
      <loadfile property="gb.version" srcfile="${basedir}/src/com/gitblit/Constants.java">
@@ -70,6 +84,8 @@
      </loadfile>   
      <property name="distribution.zipfile" value="gitblit-${gb.version}.zip" />
      <property name="distribution.warfile" value="gitblit-${gb.version}.war" />
      <property name="fedclient.zipfile" value="fedclient-${gb.version}.zip" />
      <property name="rpcclient.zipfile" value="rpcclient-${gb.version}.zip" />
   </target>
   
   
@@ -93,7 +109,7 @@
      <delete dir="${project.build.dir}" />
      <mkdir dir="${project.build.dir}" />
      <javac srcdir="${basedir}/src" destdir="${project.build.dir}">
      <javac debug="true" srcdir="${basedir}/src" destdir="${project.build.dir}">
         <include name="com/gitblit/build/Build.java" />         
         <include name="com/gitblit/Constants.java" />
         <include name="com/gitblit/utils/StringUtils.java" />         
@@ -105,8 +121,9 @@
         <fileset dir="${basedir}/ext">
            <include name="*.jar" />
         </fileset>
         <pathelement path="${project.build.dir}" />
      </path>
      <javac destdir="${project.build.dir}" failonerror="false">
      <javac debug="true" destdir="${project.build.dir}" failonerror="false">
         <src path="${basedir}/src" />
         <classpath refid="master-classpath" />
      </javac>
@@ -133,6 +150,7 @@
      <copy todir="${project.deploy.dir}">
         <fileset dir="${basedir}/distrib">
            <include name="**/*" />
            <exclude name="federation.properties" />
         </fileset>
         <fileset dir="${basedir}">
            <include name="LICENSE" />
@@ -179,10 +197,10 @@
         <copy todir="${docs.output.dir}">
            <!-- Copy selected Gitblit resources -->
            <fileset dir="${project.resources.dir}">
               <include name="background.png" />
               <include name="gitblit.css" />
               <include name="bootstrap.130.css" />
               <include name="bootstrap.gb.css" />
               <include name="markdown.css" />
               <include name="gitblt_25.png" />
               <include name="gitblt_25_white.png" />
               <include name="gitblt-favicon.png" />
               <include name="lock_go_16x16.png" />
               <include name="lock_pull_16x16.png" />
@@ -191,6 +209,7 @@
               <include name="bug_16x16.png" />
               <include name="book_16x16.png" />
               <include name="blank.png" />
               <include name="federated_16x16.png" />
            </fileset>
            <!-- Copy Doc images -->
@@ -244,14 +263,32 @@
            <arg value="%WAR%=${distribution.warfile}" />
            <arg value="--substitute" />
            <arg value="%FEDCLIENT%=${fedclient.zipfile}" />
            <arg value="--substitute" />
            <arg value="%RPCCLIENT%=${rpcclient.zipfile}" />
            <arg value="--substitute" />
            <arg value="%BUILDDATE%=${gb.versionDate}" />
            <arg value="--substitute" />
            <arg value="%JGIT%=${jgit.version}" />
            <arg value="--load" />
            <arg value="--properties" />
            <arg value="%PROPERTIES%=${basedir}/distrib/gitblit.properties" />
            <arg value="--nomarkdown" />
            <arg value="%BEGINCODE%:%ENDCODE%" />
            <arg value="--substitute" />
            <arg value="&quot;%BEGINCODE%=&lt;pre class='prettyprint lang-java'&gt;&quot;" />
            <arg value="--substitute" />
            <arg value="%ENDCODE%=&lt;/pre&gt;" />
            <arg value="--regex" />
            <arg value="&quot;\b(issue)(\s*[#]?|-){0,1}(\d+)\b!!!&lt;a href='http://code.google.com/p/gitblit/issues/detail?id=$3'&gt;issue $3&lt;/a&gt;&quot;" />
         </java>
   </target>
   
@@ -340,6 +377,92 @@
   
   <!-- 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Build the stand-alone, command-line Gitblit Federation Client
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
   <target name="buildFederationClient" depends="compile" description="Builds the stand-alone Gitblit federation client">
      <echo>Building Gitblit Federation Client ${gb.version}</echo>
      <genjar jarfile="fedclient.jar">
         <class name="com.gitblit.FederationClientLauncher" />
         <resource file="${project.build.dir}/log4j.properties" />
         <classfilter>
            <exclude name="org.apache." />
            <exclude name="org.bouncycastle." />
            <exclude name="org.eclipse." />
            <exclude name="org.slf4j." />
            <exclude name="com.beust." />
            <exclude name="com.google." />
         </classfilter>
         <classpath refid="master-classpath" />
         <manifest>
            <attribute name="Main-Class" value="com.gitblit.FederationClientLauncher" />
            <attribute name="Specification-Version" value="${gb.version}" />
            <attribute name="Release-Date" value="${gb.versionDate}" />
         </manifest>
      </genjar>
      <!-- Build the federation client zip file -->
      <zip destfile="${fedclient.zipfile}">
         <fileset dir="${basedir}">
            <include name="fedclient.jar" />
         </fileset>
         <fileset dir="${basedir}/distrib">
            <include name="federation.properties" />
         </fileset>
      </zip>
   </target>
   <!--
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Build the stand-alone, Gitblit RPC Client
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
   <target name="buildRpcClient" depends="compile" description="Builds the stand-alone Gitblit RPC client">
      <echo>Building Gitblit RPC Client ${gb.version}</echo>
      <genjar jarfile="rpcclient.jar">
         <resource file="${basedir}/src/com/gitblit/client/splash.png" />
         <resource file="${basedir}/resources/gitblt-favicon.png" />
         <resource file="${basedir}/resources/lock_go_16x16.png" />
         <resource file="${basedir}/resources/lock_pull_16x16.png" />
         <resource file="${basedir}/resources/shield_16x16.png" />
         <resource file="${basedir}/resources/federated_16x16.png" />
         <resource file="${basedir}/resources/cold_16x16.png" />
         <resource file="${basedir}/resources/book_16x16.png" />
         <resource file="${basedir}/resources/bug_16x16.png" />
         <resource file="${basedir}/resources/blank.png" />
         <class name="com.gitblit.client.GitblitClientLauncher" />
         <classfilter>
            <exclude name="org.apache." />
            <exclude name="org.bouncycastle." />
            <exclude name="org.eclipse." />
            <exclude name="org.slf4j." />
            <exclude name="com.beust." />
            <exclude name="com.google." />
         </classfilter>
         <classpath refid="master-classpath" />
         <manifest>
            <attribute name="Main-Class" value="com.gitblit.client.GitblitClientLauncher" />
            <attribute name="SplashScreen-Image" value="splash.png" />
            <attribute name="Specification-Version" value="${gb.version}" />
            <attribute name="Release-Date" value="${gb.versionDate}" />
         </manifest>
      </genjar>
      <!-- Build the rpc client zip file -->
      <zip destfile="${rpcclient.zipfile}">
         <fileset dir="${basedir}">
            <include name="rpcclient.jar" />
         </fileset>
      </zip>
   </target>
   <!--
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Build the Gitblit Website
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
@@ -353,10 +476,10 @@
      <copy todir="${project.site.dir}">
         <!-- Copy selected Gitblit resources -->
         <fileset dir="${project.resources.dir}">
            <include name="background.png" />
            <include name="gitblit.css" />
            <include name="bootstrap.130.css" />
            <include name="bootstrap.gb.css" />
            <include name="markdown.css" />
            <include name="gitblt_25.png" />
            <include name="gitblt_25_white.png" />
            <include name="gitblt-favicon.png" />
            <include name="lock_go_16x16.png" />
            <include name="lock_pull_16x16.png" />
@@ -365,6 +488,7 @@
            <include name="bug_16x16.png" />
            <include name="book_16x16.png" />
            <include name="blank.png" />
            <include name="federated_16x16.png" />
         </fileset>
         <!-- Copy Doc images -->
@@ -449,15 +573,33 @@
         <arg value="%WAR%=${distribution.warfile}" />
         <arg value="--substitute" />
         <arg value="%FEDCLIENT%=${fedclient.zipfile}" />
         <arg value="--substitute" />
         <arg value="%RPCCLIENT%=${rpcclient.zipfile}" />
         <arg value="--substitute" />
         <arg value="%BUILDDATE%=${gb.versionDate}" />
         <arg value="--substitute" />
         <arg value="%JGIT%=${jgit.version}" />
         <arg value="--load" />
         <arg value="--properties" />
         <arg value="%PROPERTIES%=${basedir}/distrib/gitblit.properties" />
         <arg value="--nomarkdown" />
         <arg value="%BEGINCODE%:%ENDCODE%" />
      </java>
         <arg value="--substitute" />
         <arg value="&quot;%BEGINCODE%=&lt;pre class='prettyprint lang-java'&gt;&quot;" />
         <arg value="--substitute" />
         <arg value="%ENDCODE%=&lt;/pre&gt;" />
         <arg value="--regex" />
         <arg value="&quot;\b(issue)(\s*[#]?|-){0,1}(\d+)\b!!!&lt;a href='http://code.google.com/p/gitblit/issues/detail?id=$3'&gt;issue $3&lt;/a&gt;&quot;" />
      </java>
   </target>
      
@@ -466,7 +608,7 @@
      Compile from source, publish binaries, and build & deploy site
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
   <target name="buildAll" depends="buildGO,buildWAR,buildSite">
   <target name="buildAll" depends="buildGO,buildWAR,buildFederationClient,buildRpcClient,buildSite">
      <!-- Cleanup -->
      <delete dir="${project.build.dir}" />
      <delete dir="${project.war.dir}" />
@@ -479,7 +621,7 @@
      Publish binaries to Google Code
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   -->
   <target name="publishBinaries" depends="buildGO,buildWAR" description="Publish the Gitblit binaries to Google Code">
   <target name="publishBinaries" depends="buildGO,buildWAR,buildFederationClient,buildRpcClient" description="Publish the Gitblit binaries to Google Code">
      
      <echo>Uploading Gitblit ${gb.version} binaries</echo>
      
@@ -502,6 +644,26 @@
           targetfilename="gitblit-${gb.version}.war"
           summary="Gitblit WAR v${gb.version} (standard WAR webapp for servlet containers)"
           labels="Featured, Type-Package, OpSys-All" />
      <!-- Upload FedClient -->
      <gcupload
         username="${googlecode.user}"
         password="${googlecode.password}"
         projectname="gitblit"
         filename="${fedclient.zipfile}"
         targetfilename="fedclient-${gb.version}.zip"
         summary="Gitblit Federation Client v${gb.version} (command-line tool to clone data from federated Gitblit instances)"
         labels="Featured, Type-Package, OpSys-All" />
      <!-- Upload RpcClient -->
      <gcupload
         username="${googlecode.user}"
         password="${googlecode.password}"
         projectname="gitblit"
         filename="${rpcclient.zipfile}"
         targetfilename="rpcclient-${gb.version}.zip"
         summary="Gitblit RPC Client v${gb.version} (Swing tool to clone repositories and remotely administer a Gitblit server)"
         labels="Featured, Type-Package, OpSys-All" />
   </target>