James Moger
2012-11-26 e571c4ae9d9883ba4c4a1739dd9948bf096a2cff
commit | author | age
5fe7df 1 <?xml version="1.0" encoding="UTF-8"?>
85c2e6 2 <project name="gitblit" default="compile" basedir=".">
JM 3
4     <!-- Google Code upload task -->
9cf48d 5     <taskdef classname="net.bluecow.googlecode.ant.GoogleCodeUploadTask" 
JM 6         classpath="${basedir}/tools/ant-googlecode-0.0.3.jar" name="gcupload"/>
5fe7df 7
f6740d 8     <!-- GenJar task -->
JM 9     <taskdef resource="genjar.properties" classpath="${basedir}/tools/GenJar.jar" />
10
5fe7df 11     <!-- Project Properties -->
JM 12     <property name="project.jar" value="gitblit.jar" />
dd7961 13     <property name="project.mainclass" value="com.gitblit.Launcher" />
5fe7df 14     <property name="project.build.dir" value="${basedir}/build" />
85c2e6 15     <property name="project.deploy.dir" value="${basedir}/deploy" />
JM 16     <property name="project.war.dir" value="${basedir}/war" />
85f639 17     <property name="project.jar.dir" value="${basedir}/jar" />
85c2e6 18     <property name="project.site.dir" value="${basedir}/site" />
JM 19     <property name="project.resources.dir" value="${basedir}/resources" />    
b774de 20     <property name="project.express.dir" value="${basedir}/express" />
85f639 21     <property name="project.maven.repo.url" value="enter here your Maven repo URL" />
LM 22     <property name="project.maven.repo.id" value="gitblit.maven.repo" />
ff3015 23     <available property="hasBuildProps" file="${basedir}/build.properties"/>
5fe7df 24
ff3015 25     <!--
JM 26         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27         Load build.properties, if available
28         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29     -->
30     <target name="buildprops" if="hasBuildProps">
31         <!-- Load publication servers, paths, and credentials --> 
32         <loadproperties>
33             <file file="${basedir}/build.properties" />
34         </loadproperties>
35     </target>
5450d0 36     
85c2e6 37     
JM 38     <!--
39         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40         Scrape the version info from code and setup the build properties 
41         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42     -->
ff3015 43     <target name="buildinfo" depends="buildprops">
5450d0 44     
f13c4c 45         <!-- extract Gitblit version number from source code -->
f98825 46         <loadfile property="gb.version" srcfile="${basedir}/src/com/gitblit/Constants.java">
JM 47             <filterchain>
48                 <linecontains>
2a7306 49                     <contains value="public static final String VERSION = " />
dd7961 50                 </linecontains>
JM 51                 <striplinebreaks />
52                 <tokenfilter>
2a7306 53                     <replacestring from="public static final String VERSION = &quot;" to="" />
a4d249 54                     <replacestring from="&quot;;" to="" />
JM 55                     <trim />
56                 </tokenfilter>
1f9dae 57             </filterchain>
a4d249 58         </loadfile>
d39680 59
JM 60         <!-- extract Gitblit version date from source code -->
61         <loadfile property="gb.versionDate" srcfile="${basedir}/src/com/gitblit/Constants.java">
62             <filterchain>
63                 <linecontains>
64                     <contains value="public static final String VERSION_DATE = " />
65                 </linecontains>
66                 <striplinebreaks />
67                 <tokenfilter>
68                     <replacestring from="public static final String VERSION_DATE = &quot;" to="" />
69                     <replacestring from="&quot;;" to="" />
70                     <trim />
71                 </tokenfilter>
72             </filterchain>
73         </loadfile>
74                     
a4d249 75         <!-- extract JGit version number from source code -->
JM 76         <loadfile property="jgit.version" srcfile="${basedir}/src/com/gitblit/Constants.java">
77             <filterchain>
78                 <linecontains>
2a7306 79                     <contains value="public static final String JGIT_VERSION = " />
a4d249 80                 </linecontains>
JM 81                 <striplinebreaks />
82                 <tokenfilter>
2a7306 83                     <replacestring from="public static final String JGIT_VERSION = &quot;" to="" />
dd7961 84                     <replacestring from="&quot;;" to="" />
f98825 85                     <trim />
JM 86                 </tokenfilter>
87             </filterchain>
85c2e6 88         </loadfile>    
5450d0 89         <property name="distribution.zipfile" value="gitblit-${gb.version}.zip" />
JM 90         <property name="distribution.warfile" value="gitblit-${gb.version}.war" />
85f639 91         <property name="distribution.jarfile" value="gitblit-${gb.version}.jar" />
LM 92         <property name="distribution.pomfile" value="${basedir}/pom.xml" />
f6740d 93         <property name="fedclient.zipfile" value="fedclient-${gb.version}.zip" />
d65f71 94         <property name="manager.zipfile" value="manager-${gb.version}.zip" />
4ad1eb 95         <property name="authority.zipfile" value="authority-${gb.version}.zip" />
773bb6 96         <property name="gbapi.zipfile" value="gbapi-${gb.version}.zip" />
b774de 97         <property name="express.zipfile" value="express-${gb.version}.zip" />
5450d0 98     </target>
JM 99     
85c2e6 100     
JM 101     <!--
102         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103         Compile
104         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105     -->
106     <target name="compile" depends="buildinfo" description="Retrieves dependencies and compiles Gitblit from source">
dd7961 107
f98825 108         <!-- copy required distribution files to project folder -->
JM 109         <copy todir="${basedir}" overwrite="false">
110             <fileset dir="${basedir}/distrib">
111                 <include name="gitblit.properties" />
93f472 112                 <include name="users.conf" />
f98825 113             </fileset>
JM 114         </copy>
d8a0f1 115         
JM 116         <!-- copy required distribution files to project folder -->
117         <mkdir dir="${basedir}/certs" />
118         <copy todir="${basedir}/certs" overwrite="false">
119             <fileset dir="${basedir}/distrib">
120                 <include name="authority.conf" />
4ad1eb 121                 <include name="*.tmpl" />
d8a0f1 122             </fileset>
JM 123         </copy>
dd7961 124
b75734 125         <!-- copy gitblit.properties to the WEB-INF folder.
JM 126              this file is only used for parsing setting descriptions. -->
97a20e 127         <copy tofile="${basedir}/src/WEB-INF/reference.properties" overwrite="true"
b75734 128             file="${basedir}/distrib/gitblit.properties" />
JM 129
5fe7df 130         <!-- Compile the build tool and execute it.
JM 131              This downloads missing compile-time dependencies from Maven. -->
132
133         <delete dir="${project.build.dir}" />
134         <mkdir dir="${project.build.dir}" />
f2da4a 135         <javac debug="true" srcdir="${basedir}/src" destdir="${project.build.dir}" includeantruntime="false">
22fc5e 136             <include name="com/gitblit/build/Build.java" />            
155bf7 137             <include name="com/gitblit/Constants.java" />
5450d0 138             <include name="com/gitblit/utils/StringUtils.java" />            
5fe7df 139         </javac>
d1231c 140
1370d4 141         <java classpath="${project.build.dir}" classname="com.gitblit.build.Build" failonerror="true">
d1231c 142             <syspropertyset id="proxy.properties">
JP 143                 <propertyref prefix="java.net.useSystemProxies"/>
144                 <propertyref prefix="http."/>
145                 <propertyref prefix="https."/>
146                 <propertyref prefix="ftp."/>
147                 <propertyref prefix="socksProxy"/>
148             </syspropertyset>
149         </java>
5fe7df 150
JM 151         <!-- Compile Project -->
152         <path id="master-classpath">
153             <fileset dir="${basedir}/ext">
154                 <include name="*.jar" />
155             </fileset>
f6740d 156             <pathelement path="${project.build.dir}" />                
5fe7df 157         </path>
f2da4a 158         <javac debug="true" destdir="${project.build.dir}" failonerror="false" includeantruntime="false">
5fe7df 159             <src path="${basedir}/src" />
JM 160             <classpath refid="master-classpath" />
161         </javac>
162         <copy todir="${project.build.dir}">
163             <fileset dir="${basedir}/src" excludes="**/*.java,**/thumbs.db" />
164         </copy>
85c2e6 165     </target>
JM 166
167     
168     <!--
169         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170         Build Gitblit GO
171         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
172     -->
173     <target name="buildGO" depends="compile" description="Build Gitblit GO distribution">
174         
175         <echo>Building Gitblit GO ${gb.version}</echo>
176
177         <!-- Delete the deploy folder -->
178         <delete dir="${project.deploy.dir}" />
179
180         <!-- Create deployment folder structure -->
181         <mkdir dir="${project.deploy.dir}" />
182         <copy todir="${project.deploy.dir}">
183             <fileset dir="${basedir}/distrib">
184                 <include name="**/*" />
f6740d 185                 <exclude name="federation.properties" />
b774de 186                 <exclude name="openshift.mkd" />
d8a0f1 187                 <exclude name="authority.conf" />
e8c417 188                 <exclude name="*.tmpl" />
85c2e6 189             </fileset>
7c643b 190             <fileset dir="${basedir}">
JM 191                 <include name="LICENSE" />
192                 <include name="NOTICE" />
c8b26c 193             </fileset>            
d8a0f1 194         </copy>
c8b26c 195         <copy tofile="${project.deploy.dir}/authority.jar" file="${basedir}/authority-${gb.version}.jar" />
d8a0f1 196         
JM 197         <!-- Certificate templates -->
198         <mkdir dir="${project.deploy.dir}/certs"/>
199         <copy todir="${project.deploy.dir}/certs">
200             <fileset dir="${basedir}/distrib">
e8c417 201                 <include name="*.tmpl" />
d8a0f1 202                 <include name="authority.conf" />
7c643b 203             </fileset>
85c2e6 204         </copy>
4ad1eb 205                         
5fe7df 206         <!-- Build jar -->
85c2e6 207         <jar jarfile="${project.deploy.dir}/${project.jar}">
5fe7df 208             <fileset dir="${project.build.dir}">
JM 209                 <include name="**/*" />
4ad1eb 210                 <exclude name="com/gitblit/client/**" />                
5fe7df 211             </fileset>
5450d0 212             <fileset dir="${project.resources.dir}">
JM 213                 <exclude name="thumbs.db" />
214             </fileset>
5fe7df 215             <manifest>
JM 216                 <attribute name="Main-Class" value="${project.mainclass}" />
217             </manifest>
218         </jar>
219
9be337 220         <!-- Gitblit library dependencies -->
836b11 221         <mkdir dir="${project.deploy.dir}/ext"/>
JM 222         <copy todir="${project.deploy.dir}/ext">
9be337 223             <fileset dir="${basedir}/ext">
5e351a 224                 <exclude name="src/**" />
836b11 225                 <exclude name="junit*.jar" />
926f19 226                 <exclude name="hamcrest*.jar" />
836b11 227                 <exclude name="commons-net*.jar" />
9be337 228             </fileset>
JM 229         </copy>
230         
85c2e6 231         <!-- Build the docs for the deploy -->
JM 232         <antcall target="buildDocs" inheritall="true" inheritrefs="true">
233             <param name="docs.output.dir" value="${project.deploy.dir}/docs" />
234         </antcall>
235         
59ee92 236         <!-- Copy the supported Groovy hook scripts -->
fa54be 237         <mkdir dir="${project.deploy.dir}/groovy" />
JM 238         <copy todir="${project.deploy.dir}/groovy">
239             <fileset dir="${basedir}/groovy">
59ee92 240                 <include name="sendmail.groovy" />
000bb3 241                 <include name="sendmail-html.groovy" />
59ee92 242                 <include name="jenkins.groovy" />
58a1e4 243                 <include name="protect-refs.groovy" />
a411c8 244                 <include name="localclone.groovy" />
fa54be 245             </fileset>
JM 246         </copy>
247     
85c2e6 248         <!-- Create Zip deployment -->        
JM 249         <zip destfile="${distribution.zipfile}">
250             <fileset dir="${project.deploy.dir}">
251                 <include name="**/*" />
252             </fileset>
253         </zip>
254
255     </target>
256     
257     
258     <!--
259         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
260         Build Gitblit Docs which are bundled with GO and WAR downloads
261         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
262     -->
263     <target name="buildDocs">
264     <!-- Build Docs -->
265             <mkdir dir="${docs.output.dir}" />
266             <copy todir="${docs.output.dir}">
267                 <!-- Copy selected Gitblit resources -->
268                 <fileset dir="${project.resources.dir}">
3cc6e2 269                     <include name="bootstrap/**/*" />
JM 270                     <include name="gitblit.css" />
8c5d72 271                     <include name="gitblt_25_white.png" />
85c2e6 272                     <include name="gitblt-favicon.png" />
JM 273                     <include name="lock_go_16x16.png" />
274                     <include name="lock_pull_16x16.png" />
275                     <include name="shield_16x16.png" />
276                     <include name="cold_16x16.png" />
277                     <include name="bug_16x16.png" />
278                     <include name="book_16x16.png" />
279                     <include name="blank.png" />
831469 280                     <include name="federated_16x16.png" />
0aa6ec 281                     <include name="arrow_page.png" />
85c2e6 282                 </fileset>
JM 283
284                 <!-- Copy Doc images -->
285                 <fileset dir="${basedir}/docs">
286                     <include name="*.png" />
f35a98 287                     <include name="*.gif" />
85c2e6 288                 </fileset>
JM 289             </copy>
290
291             <!-- Copy google-code-prettify -->
292             <mkdir dir="${docs.output.dir}/prettify" />
293             <copy todir="${docs.output.dir}/prettify">
294                 <fileset dir="${basedir}/src/com/gitblit/wicket/pages/prettify">
295                     <exclude name="thumbs.db" />
296                 </fileset>
297             </copy>
298
299             <!-- Build deployment doc pages -->
22fc5e 300             <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildSite">
85c2e6 301                 <classpath refid="master-classpath" />
JM 302                 <arg value="--sourceFolder" />
303                 <arg value="${basedir}/docs" />
304
305                 <arg value="--outputFolder" />
306                 <arg value="${docs.output.dir}" />
307
308                 <arg value="--pageHeader" />
309                 <arg value="${basedir}/docs/doc_header.html" />
310
311                 <arg value="--pageFooter" />
312                 <arg value="${basedir}/docs/doc_footer.html" />
313
314                 <arg value="--skip" />
315                 <arg value="screenshots" />
316
317                 <arg value="--skip" />
318                 <arg value="releases" />
319
320                 <arg value="--alias" />
321                 <arg value="index=overview" />
322
323                 <arg value="--alias" />
4c835e 324                 <arg value="properties=settings" />
85c2e6 325
JM 326                 <arg value="--substitute" />
327                 <arg value="%VERSION%=${gb.version}" />
328
329                 <arg value="--substitute" />
330                 <arg value="%GO%=${distribution.zipfile}" />
331
332                 <arg value="--substitute" />
333                 <arg value="%WAR%=${distribution.warfile}" />
334
335                 <arg value="--substitute" />
f6740d 336                 <arg value="%FEDCLIENT%=${fedclient.zipfile}" />
JM 337
338                 <arg value="--substitute" />
d65f71 339                 <arg value="%MANAGER%=${manager.zipfile}" />
773bb6 340
JM 341                 <arg value="--substitute" />
342                 <arg value="%API%=${gbapi.zipfile}" />
841651 343
JM 344                 <arg value="--substitute" />
b774de 345                 <arg value="%EXPRESS%=${express.zipfile}" />
JM 346
347                 <arg value="--substitute" />
d39680 348                 <arg value="%BUILDDATE%=${gb.versionDate}" />
85c2e6 349
JM 350                 <arg value="--substitute" />
351                 <arg value="%JGIT%=${jgit.version}" />
352
230632 353                 <arg value="--properties" />
85c2e6 354                 <arg value="%PROPERTIES%=${basedir}/distrib/gitblit.properties" />
JM 355
230632 356                 <arg value="--nomarkdown" />
JM 357                 <arg value="%BEGINCODE%:%ENDCODE%" />
358
359                 <arg value="--substitute" />
360                 <arg value="&quot;%BEGINCODE%=&lt;pre class='prettyprint lang-java'&gt;&quot;" />
361
362                 <arg value="--substitute" />
363                 <arg value="%ENDCODE%=&lt;/pre&gt;" />
5c563c 364                 
JM 365                 <arg value="--regex" />
366                 <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;" />
367         
85c2e6 368             </java>
JM 369     </target>
370     
371                 
372     <!--
373         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
374         Build Gitblit WAR
375         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
376     -->
377     <target name="buildWAR" depends="compile" description="Build Gitblit WAR">
378         
379         <echo>Building Gitblit WAR ${gb.version}</echo>
380         
b774de 381         <delete dir="${project.war.dir}" />
85c2e6 382
93f472 383         <!-- Copy web.xml and users.conf to WEB-INF -->
85c2e6 384         <copy todir="${project.war.dir}/WEB-INF">
JM 385             <fileset dir="${basedir}/distrib">
93f472 386                  <include name="users.conf" />
85c2e6 387             </fileset>
JM 388             <fileset dir="${basedir}/src/WEB-INF">
389                  <include name="web.xml" />
390             </fileset>
7c643b 391             <fileset dir="${basedir}">
JM 392                 <include name="LICENSE" />
393                 <include name="NOTICE" />
394             </fileset>
85c2e6 395         </copy>
JM 396         
97a20e 397         <!-- Copy gitblit.properties as reference.properties -->
JM 398         <copy tofile="${project.war.dir}/WEB-INF/reference.properties" 
399             file="${basedir}/distrib/gitblit.properties"/>
400         
85c2e6 401         <!-- Build the docs for the WAR build -->
JM 402         <antcall target="buildDocs" inheritall="true" inheritrefs="true">
403             <param name="docs.output.dir" value="${project.war.dir}/WEB-INF/docs" />
404         </antcall>
fa54be 405
59ee92 406         <!-- Copy the supported Groovy hook scripts -->
fa54be 407         <mkdir dir="${project.war.dir}/WEB-INF/groovy" />
JM 408         <copy todir="${project.war.dir}/WEB-INF/groovy">
409             <fileset dir="${basedir}/groovy">
59ee92 410                 <include name="sendmail.groovy" />
000bb3 411                 <include name="sendmail-html.groovy" />
59ee92 412                 <include name="jenkins.groovy" />
58a1e4 413                 <include name="protect-refs.groovy" />
a411c8 414                 <include name="localclone.groovy" />
fa54be 415             </fileset>
JM 416         </copy>
417
85c2e6 418         <!-- Build the WAR web.xml from the prototype web.xml and gitblit.properties --> 
22fc5e 419         <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildWebXml">
85c2e6 420             <classpath refid="master-classpath" />
JM 421             
422             <arg value="--sourceFile" />
423             <arg value="${basedir}/src/WEB-INF/web.xml" />
424                     
425             <arg value="--destinationFile" />
426             <arg value="${project.war.dir}/WEB-INF/web.xml" />
427             
428             <arg value="--propertiesFile" />
429             <arg value="${basedir}/distrib/gitblit.properties" />
430         </java>
431
432         <!-- Gitblit resources -->
433         <copy todir="${project.war.dir}">
434             <fileset dir="${project.resources.dir}">
435                 <exclude name="thumbs.db" />
436             </fileset>
437         </copy>
438         
439         <!-- Gitblit library dependencies -->
440         <mkdir dir="${project.war.dir}/WEB-INF/lib"/>
441         <copy todir="${project.war.dir}/WEB-INF/lib">
442             <fileset dir="${basedir}/ext">
5e351a 443                 <exclude name="src/**" />
85c2e6 444                 <exclude name="jcommander*.jar" />
JM 445                 <exclude name="jetty*.jar" />
446                 <exclude name="junit*.jar" />
926f19 447                 <exclude name="hamcrest*.jar" />
85c2e6 448                 <exclude name="servlet*.jar" />
5e43f6 449                 <exclude name="javax.servlet*.jar" />
85c2e6 450             </fileset>
JM 451         </copy>
452
453         <!-- Gitblit classes -->
454         <mkdir dir="${project.war.dir}/WEB-INF/classes"/>
455         <copy todir="${project.war.dir}/WEB-INF/classes">
456             <fileset dir="${project.build.dir}">
b774de 457                 <exclude name="WEB-INF/" />
85c2e6 458                 <exclude name="com/gitblit/tests/" />
22fc5e 459                 <exclude name="com/gitblit/build/**" />
44f2da 460                 <exclude name="com/gitblit/client/**" />
126dde 461                 <exclude name="com/gitblit/AddIndexedBranch*.class" />
85c2e6 462                 <exclude name="com/gitblit/GitBlitServer*.class" />
JM 463                 <exclude name="com/gitblit/Launcher*.class" />
4ad1eb 464                 <exclude name="com/gitblit/authority/**" />
85c2e6 465             </fileset>
JM 466         </copy>
467
468         <!-- Build the WAR file -->
469         <jar basedir="${project.war.dir}" destfile="${distribution.warfile}" compress="true" />
470     </target>
471
472     
85f639 473     <!--
LM 474         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
475         Build Gitblit JAR for usage in other projects plug-ins (i.e. Gerrit)
476         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
477     -->
478     <target name="buildJAR" depends="compile" description="Build Gitblit JAR">
479
480         <echo>Building Gitblit JAR ${gb.version}</echo>
481
482         <delete dir="${project.jar.dir}" />
483
484         <!-- Gitblit classes -->
485         <mkdir dir="${project.jar.dir}"/>
486         <copy todir="${project.jar.dir}">
487             <fileset dir="${project.build.dir}">
488                 <exclude name="WEB-INF/" />
489                 <exclude name="com/gitblit/tests/" />
490                 <exclude name="com/gitblit/build/**" />
491                 <exclude name="com/gitblit/client/**" />
4ad1eb 492                 <exclude name="com/gitblit/authority/**" />
85f639 493                 <exclude name="com/gitblit/AddIndexedBranch*.class" />
LM 494                 <exclude name="com/gitblit/GitBlitServer*.class" />
495                 <exclude name="com/gitblit/Launcher*.class" />
496             </fileset>
497         </copy>
498
499         <!-- Build the JAR file -->
500         <jar basedir="${project.jar.dir}" destfile="${distribution.jarfile}" compress="true" />
501     </target>
502
503     <!--
504         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
505         Build pom.xml for GitBlit JAR Maven module
506         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
507     -->
508     <target name="buildMaven" depends="buildJAR" description="Build pom.xml for Gitblit JAR Maven module">
509         <copy tofile="${distribution.pomfile}" file="${distribution.pomfileTmplt}"/>
510         <replace file="${distribution.pomfile}" token="@gb.version@" value="${gb.version}" />
511     </target>
512
513     <!--
514         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
515         Install Gitblit JAR for usage as Maven module
516         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517     -->
518     <target name="installMaven" depends="buildMaven" description="Install Gitblit JAR as Maven module">
519         <exec executable="mvn">
520             <arg value="install:install-file" />
521             <arg value="-Dfile=${distribution.jarfile}" />
522             <arg value="-DpomFile=${distribution.pomfile}" />
523             <arg value="-DcreateChecksum=true" />
524         </exec>
525     </target>
526
527     <!--
528         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529         Upload Gitblit JAR to remote Maven repository
530         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531     -->
532     <target name="uploadMaven" depends="buildJAR" description="Upload Gitblit JAR to remote Maven repository">
533         <exec executable="mvn">
534             <arg value="deploy:deploy-file" />
535             <arg value="-Dfile=${distribution.jarfile}" />
536             <arg value="-DpomFile=${distribution.pomfile}" />
537             <arg value="-Durl=${project.maven.repo.url}" />
538             <arg value="-DrepositoryId=${project.maven.repo.id}" />
539             <arg value="-DcreateChecksum=true" />
540         </exec>
541     </target>
542
f6740d 543     <!-- 
JM 544         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545         Build the stand-alone, command-line Gitblit Federation Client
546         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547     -->
548     <target name="buildFederationClient" depends="compile" description="Builds the stand-alone Gitblit federation client">
549         <echo>Building Gitblit Federation Client ${gb.version}</echo>
550     
551         <genjar jarfile="fedclient.jar">
552             <class name="com.gitblit.FederationClientLauncher" />
553             <resource file="${project.build.dir}/log4j.properties" />
554             <classfilter>
555                 <exclude name="org.apache." />
556                 <exclude name="org.bouncycastle." />
557                 <exclude name="org.eclipse." />
558                 <exclude name="org.slf4j." />
559                 <exclude name="com.beust." />
560                 <exclude name="com.google." />
1b437a 561                 <exclude name="com.unboundid." />
f6740d 562             </classfilter>
JM 563             <classpath refid="master-classpath" />
564             <manifest>
565                 <attribute name="Main-Class" value="com.gitblit.FederationClientLauncher" />
773bb6 566                 <attribute name="Specification-Version" value="${gb.version}" />
f6740d 567                 <attribute name="Release-Date" value="${gb.versionDate}" />
JM 568             </manifest>
569         </genjar>
570         
571         <!-- Build the federation client zip file -->
572         <zip destfile="${fedclient.zipfile}">
573             <fileset dir="${basedir}">
773bb6 574                 <include name="fedclient.jar" />
d65f71 575                 <include name="LICENSE" />
JM 576                 <include name="NOTICE" />
f6740d 577             </fileset>
JM 578             <fileset dir="${basedir}/distrib">
773bb6 579                 <include name="federation.properties" />
f6740d 580             </fileset>
JM 581         </zip>
582     </target>
583
841651 584
JM 585     <!-- 
586         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
b774de 587         Build a Gitblit filesystem for deployment to RedHat OpenShif Expresst
JM 588         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
589     -->
9be337 590     <target name="buildExpress" depends="compile" description="Build exploded WAR file suitable for deployment to OpenShift Express">
b774de 591         <echo>Building Gitblit Express for RedHat OpenShift ${gb.version}</echo>
JM 592         
593         <delete dir="${project.express.dir}" />
594         
595         <!-- Create the OpenShift filesystem -->
596         <property name="deployments.root" value="${project.express.dir}/deployments/ROOT.war"/>
597         <mkdir dir="${deployments.root}" />
598         <touch file="${project.express.dir}/deployments/ROOT.war.dodeploy" />
599
600         <!-- Copy the Gitblit OpenShift readme file -->
601         <copy tofile="${project.express.dir}/README.gitblit" 
602             file="${basedir}/distrib/openshift.mkd"/>
603
604         <!-- Copy LICENSE and NOTICE to WEB-INF -->
605         <copy todir="${deployments.root}/WEB-INF">
606             <fileset dir="${basedir}">
607                 <include name="LICENSE" />
608                 <include name="NOTICE" />
609             </fileset>
610         </copy>
611
612         <!-- Copy gitblit.properties as reference.properties -->
613         <copy tofile="${deployments.root}/WEB-INF/reference.properties" 
614             file="${basedir}/distrib/gitblit.properties"/>
615
e36d4d 616         <!-- Copy the supported Groovy hook scripts -->
JM 617         <mkdir dir="${deployments.root}/WEB-INF/groovy" />
618         <copy todir="${deployments.root}/WEB-INF/groovy">
619             <fileset dir="${basedir}/groovy">
620                 <include name="sendmail.groovy" />
000bb3 621                 <include name="sendmail-html.groovy" />
e36d4d 622                 <include name="jenkins.groovy" />
58a1e4 623                 <include name="protect-refs.groovy" />
e36d4d 624             </fileset>
JM 625         </copy>
626                     
b774de 627         <!-- Build the WAR web.xml from the prototype web.xml and gitblit.properties -->
JM 628         <!-- THIS FILE IS NOT OVERRIDDEN ONCE IT IS BUILT!!! -->
629         <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildWebXml">
630             <classpath refid="master-classpath" />
631
632             <arg value="--sourceFile" />
633             <arg value="${basedir}/src/WEB-INF/web.xml" />
634
635             <arg value="--destinationFile" />
636             <arg value="${deployments.root}/WEB-INF/web.xml" />
637
638             <arg value="--propertiesFile" />
639             <arg value="${basedir}/distrib/gitblit.properties" />
640         </java>
641
642         <!-- Gitblit resources -->
643         <copy todir="${deployments.root}">
644             <fileset dir="${project.resources.dir}">
645                 <exclude name="thumbs.db" />
646             </fileset>
647         </copy>
648
649         <!-- Gitblit library dependencies -->
650         <mkdir dir="${deployments.root}/WEB-INF/lib"/>
651         <copy todir="${deployments.root}/WEB-INF/lib">
652             <fileset dir="${basedir}/ext">
5e351a 653                 <exclude name="src/**" />
b774de 654                 <exclude name="jcommander*.jar" />
JM 655                 <exclude name="jetty*.jar" />
656                 <exclude name="junit*.jar" />
926f19 657                 <exclude name="hamcrest*.jar" />
b774de 658                 <exclude name="servlet*.jar" />
5e43f6 659                 <exclude name="javax.servlet*.jar" />
b774de 660             </fileset>
JM 661         </copy>
662
663         <!-- Gitblit classes -->
764d94 664         <jar destfile="${deployments.root}/WEB-INF/lib/gitblit-${gb.version}.jar">
b774de 665             <fileset dir="${project.build.dir}">
JM 666                 <exclude name="WEB-INF/" />
667                 <exclude name="com/gitblit/tests/" />
668                 <exclude name="com/gitblit/build/**" />
669                 <exclude name="com/gitblit/client/**" />
670                 <exclude name="com/gitblit/GitBlitServer*.class" />
671                 <exclude name="com/gitblit/Launcher*.class" />
4ad1eb 672                 <exclude name="com/gitblit/authority/**" />
b774de 673             </fileset>
764d94 674         </jar>
b774de 675
JM 676         <!-- Build Express Zip file -->
677         <zip destfile="${express.zipfile}">
678             <fileset dir="${project.express.dir}" />
679         </zip>
680
681     </target>
682
683
684     <!-- 
685         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a7a9f7 686         Build the stand-alone, Gitblit Manager
841651 687         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 688     -->
a7a9f7 689     <target name="buildManager" depends="compile" description="Builds the stand-alone Gitblit Manager">
JM 690         <echo>Building Gitblit Manager ${gb.version}</echo>
b774de 691
712210 692         <genjar jarfile="manager-${gb.version}.jar">
841651 693             <resource file="${basedir}/src/com/gitblit/client/splash.png" />
JM 694             <resource file="${basedir}/resources/gitblt-favicon.png" />
ee25c8 695             <resource file="${basedir}/resources/gitweb-favicon.png" />
0cf876 696             <resource file="${basedir}/resources/git-orange-16x16.png" />
ee25c8 697             <resource file="${basedir}/resources/user_16x16.png" />
04627e 698             <resource file="${basedir}/resources/users_16x16.png" />
ee25c8 699             <resource file="${basedir}/resources/settings_16x16.png" />
841651 700             <resource file="${basedir}/resources/lock_go_16x16.png" />
JM 701             <resource file="${basedir}/resources/lock_pull_16x16.png" />
702             <resource file="${basedir}/resources/shield_16x16.png" />
703             <resource file="${basedir}/resources/federated_16x16.png" />
704             <resource file="${basedir}/resources/cold_16x16.png" />
705             <resource file="${basedir}/resources/book_16x16.png" />
706             <resource file="${basedir}/resources/bug_16x16.png" />
a70b43 707             <resource file="${basedir}/resources/health_16x16.png" />
4cac0d 708             <resource file="${basedir}/resources/feed_16x16.png" />
JM 709             <resource file="${basedir}/resources/bullet_feed.png" />
9119cf 710             <resource file="${basedir}/resources/search-icon.png" />
ee458f 711             <resource file="${basedir}/resources/commit_changes_16x16.png" />
c7e7e9 712             <resource file="${basedir}/resources/commit_merge_16x16.png" />
c25b98 713             <resource file="${basedir}/resources/commit_divide_16x16.png" />
841651 714             <resource file="${basedir}/resources/blank.png" />
b7f591 715             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp.properties" />
c890e1 716             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_es.properties" />
df35ad 717             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_ja.properties" />
c890e1 718             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_ko.properties" />
JM 719             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_pl.properties" />
b774de 720
a7a9f7 721             <class name="com.gitblit.client.GitblitManagerLauncher" />
841651 722             <classfilter>
JM 723                 <exclude name="org.apache." />
724                 <exclude name="org.bouncycastle." />
725                 <exclude name="org.eclipse." />
726                 <exclude name="org.slf4j." />
727                 <exclude name="com.beust." />
728                 <exclude name="com.google." />
1b437a 729                 <exclude name="com.unboundid." />
841651 730             </classfilter>
JM 731             <classpath refid="master-classpath" />
732             <manifest>
a7a9f7 733                 <attribute name="Main-Class" value="com.gitblit.client.GitblitManagerLauncher" />
841651 734                 <attribute name="SplashScreen-Image" value="splash.png" />
773bb6 735                 <attribute name="Specification-Version" value="${gb.version}" />
841651 736                 <attribute name="Release-Date" value="${gb.versionDate}" />
JM 737             </manifest>
738         </genjar>
b774de 739
d65f71 740         <!-- Build Manager Zip file -->
JM 741         <zip destfile="${manager.zipfile}">
742             <fileset dir="${basedir}">
743                 <include name="manager-${gb.version}.jar" />
744                 <include name="LICENSE" />
745                 <include name="NOTICE" />
746             </fileset>
747         </zip>
841651 748     </target>
773bb6 749     
4ad1eb 750     
773bb6 751     <!-- 
4ad1eb 752         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 753         Build the stand-alone, Gitblit Authority
754         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
755     -->
756     <target name="buildAuthority" depends="compile" description="Builds the stand-alone Gitblit Authority">
757         <echo>Building Gitblit Authority ${gb.version}</echo>
758
759         <genjar jarfile="authority-${gb.version}.jar">
760             <resource file="${basedir}/src/com/gitblit/client/splash.png" />
761             <resource file="${basedir}/resources/gitblt-favicon.png" />
762             <resource file="${basedir}/resources/user_16x16.png" />
763             <resource file="${basedir}/resources/users_16x16.png" />
764             <resource file="${basedir}/resources/rosette_16x16.png" />
765             <resource file="${basedir}/resources/vcard_16x16.png" />
766             <resource file="${basedir}/resources/settings_16x16.png" />
c8b26c 767             <resource file="${basedir}/resources/settings_32x32.png" />
4ad1eb 768             <resource file="${basedir}/resources/search-icon.png" />
e571c4 769             <resource file="${basedir}/resources/mail_16x16.png" />
4ad1eb 770             <resource file="${basedir}/resources/blank.png" />
JM 771             <resource file="${basedir}/resources/bullet_green.png" />
772             <resource file="${basedir}/resources/bullet_orange.png" />
773             <resource file="${basedir}/resources/bullet_red.png" />
774             <resource file="${basedir}/resources/bullet_white.png" />
775             <resource file="${basedir}/resources/bullet_delete.png" />
776             <resource file="${basedir}/resources/bullet_key.png" />
c8b26c 777             <resource file="${basedir}/src/log4j.properties" />
4ad1eb 778             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp.properties" />
JM 779             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_es.properties" />
780             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_ja.properties" />
781             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_ko.properties" />
782             <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_pl.properties" />
783
784             <class name="com.gitblit.authority.GitblitAuthorityLauncher" />
785             <classfilter>
786                 <exclude name="org.apache." />
787                 <exclude name="org.bouncycastle." />
788                 <exclude name="org.eclipse." />
789                 <exclude name="org.slf4j." />
790                 <exclude name="com.beust." />
791                 <exclude name="com.google." />
792                 <exclude name="com.unboundid." />
793             </classfilter>
794             <classpath refid="master-classpath" />
795             <manifest>
796                 <attribute name="Main-Class" value="com.gitblit.authority.GitblitAuthorityLauncher" />
797                 <attribute name="SplashScreen-Image" value="splash.png" />
798                 <attribute name="Specification-Version" value="${gb.version}" />
799                 <attribute name="Release-Date" value="${gb.versionDate}" />
800             </manifest>
801         </genjar>
802
803         <!-- Build Authority Zip file -->
804         <zip destfile="${authority.zipfile}">
805             <fileset dir="${basedir}">
806                 <include name="authority-${gb.version}.jar" />
807                 <include name="LICENSE" />
808                 <include name="NOTICE" />
809             </fileset>
810             <zipfileset dir="${basedir}/distrib" prefix="certs">
811                 <include name="authority.conf" />
812                 <include name="mail.tmpl" />
813                 <include name="instructions.tmpl" />
814             </zipfileset>
815         </zip>
816     </target>
817                     
818     <!-- 
819         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
820         Build the Gitblit API client library
821         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
822     -->
823     <target name="buildApiLibrary" depends="compile" description="Builds the Gitblit RPC client library">
824         <echo>Building Gitblit API Library ${gb.version}</echo>
825     
826         <!-- Build API Library jar -->
827         <genjar jarfile="gbapi-${gb.version}.jar">
828             <class name="com.gitblit.Keys" />
829             <class name="com.gitblit.client.GitblitClient" />
830             <classpath refid="master-classpath" />
831             <classfilter>
832                 <exclude name="com.google.gson." />
833                 <exclude name="com.sun.syndication." />
834             </classfilter>
835             <manifest>
836                 <attribute name="Specification-Version" value="${gb.version}" />
837                 <attribute name="Release-Date" value="${gb.versionDate}" />
838             </manifest>
839         </genjar>
773bb6 840         
4ad1eb 841         <!-- Build API sources jar -->
JM 842         <zip destfile="gbapi-${gb.version}-sources.jar">
843             <fileset dir="${basedir}/src" defaultexcludes="yes">
844                 <include name="com/gitblit/Constants.java"/>
845                 <include name="com/gitblit/GitBlitException.java"/>
846                 <include name="com/gitblit/Keys.java"/>
847                   <include name="com/gitblit/client/**/*.java"/>
848                   <include name="com/gitblit/models/**/*.java"/>
849                   <include name="com/gitblit/utils/**/*.java"/>                      
850             </fileset>
851         </zip>
852         
853         <!-- Build API JavaDoc jar -->
854         <javadoc destdir="${basedir}/javadoc">
855             <fileset dir="${basedir}/src" defaultexcludes="yes">
856                 <include name="com/gitblit/Constants.java"/>
857                 <include name="com/gitblit/GitBlitException.java"/>
858                 <include name="com/gitblit/Keys.java"/>
859                   <include name="com/gitblit/client/**/*.java"/>
860                   <include name="com/gitblit/models/**/*.java"/>
861                   <include name="com/gitblit/utils/**/*.java"/>                      
862             </fileset>
863         </javadoc>
864         <zip destfile="gbapi-${gb.version}-javadoc.jar">
865             <fileset dir="${basedir}/javadoc" />
866         </zip>
867         
868         <!-- Build the API library zip file -->
869         <zip destfile="${gbapi.zipfile}">
870             <fileset dir="${basedir}">
871                 <include name="gbapi-${gb.version}.jar" />
872                 <include name="gbapi-${gb.version}-sources.jar" />
873                 <include name="gbapi-${gb.version}-javadoc.jar" />
874                 <include name="LICENSE" />
875                 <include name="NOTICE" />
876             </fileset>
877             <fileset dir="${basedir}/ext">
878                 <exclude name="src/**" />
879                 <include name="gson*.jar" />
880                 <include name="rome*.jar" />
881                 <include name="jdom*.jar" />
882             </fileset>
883         </zip>
884     </target>
841651 885         
f6740d 886         
85c2e6 887     <!-- 
JM 888         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
889         Build the Gitblit Website
890         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
891     -->
892     <target name="buildSite" depends="compile" description="Build the Gitblit website">
893         
894         <echo>Building Gitblit Website ${gb.version}</echo>
895
dd7961 896         <!-- Build Site -->
85c2e6 897         <delete dir="${project.site.dir}" />
JM 898         <mkdir dir="${project.site.dir}" />
899         <copy todir="${project.site.dir}">
f13c4c 900             <!-- Copy selected Gitblit resources -->
5450d0 901             <fileset dir="${project.resources.dir}">
3cc6e2 902                 <include name="bootstrap/**/*" />
JM 903                 <include name="gitblit.css" />
8c5d72 904                 <include name="gitblt_25_white.png" />
dd7961 905                 <include name="gitblt-favicon.png" />
f90dc6 906                 <include name="lock_go_16x16.png" />
JM 907                 <include name="lock_pull_16x16.png" />
908                 <include name="shield_16x16.png" />
909                 <include name="cold_16x16.png" />
910                 <include name="bug_16x16.png" />
911                 <include name="book_16x16.png" />
912                 <include name="blank.png" />
831469 913                 <include name="federated_16x16.png" />
0aa6ec 914                 <include name="arrow_page.png" />
dd7961 915             </fileset>
a4d249 916
f90dc6 917             <!-- Copy Doc images -->
dd7961 918             <fileset dir="${basedir}/docs">
f90dc6 919                 <include name="*.png" />
f35a98 920                 <include name="*.gif" />
f90dc6 921                 <include name="*.js" />
JM 922             </fileset>
923         </copy>
a4d249 924
f90dc6 925         <!-- Copy Fancybox -->
85c2e6 926         <mkdir dir="${project.site.dir}/fancybox" />
JM 927         <copy todir="${project.site.dir}/fancybox">
a4d249 928             <fileset dir="${basedir}/docs/fancybox">
f90dc6 929                 <exclude name="thumbs.db" />
JM 930             </fileset>
931         </copy>
a4d249 932
230632 933         <!-- Copy google-code-prettify -->
JM 934         <mkdir dir="${basedir}/src/com/gitblit/wicket/pages/prettify" />
935         <copy todir="${project.site.dir}/prettify">
936             <fileset dir="${basedir}/src/com/gitblit/wicket/pages/prettify">
937                 <exclude name="thumbs.db" />
938             </fileset>
939         </copy>
940
24d08f 941         <!-- Generate thumbnails of screenshots -->
22fc5e 942         <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildThumbnails">
24d08f 943             <classpath refid="master-classpath" />
JM 944                 
945             <arg value="--sourceFolder" />
946             <arg value="${basedir}/docs/screenshots" />
947         
948             <arg value="--destinationFolder" />
85c2e6 949             <arg value="${project.site.dir}/thumbs" />
24d08f 950             
JM 951             <arg value="--maximumDimension" />
952             <arg value="250" />
953         </java>
a4d249 954
f90dc6 955         <!-- Copy screenshots -->
85c2e6 956         <mkdir dir="${project.site.dir}/screenshots" />
JM 957         <copy todir="${project.site.dir}/screenshots">
f90dc6 958             <fileset dir="${basedir}/docs/screenshots">
JM 959                 <include name="*.png" />
960             </fileset>
961         </copy>
962
a4d249 963         <!-- Build site pages -->
22fc5e 964         <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildSite">
dd7961 965             <classpath refid="master-classpath" />
JM 966             <arg value="--sourceFolder" />
967             <arg value="${basedir}/docs" />
a4d249 968
dd7961 969             <arg value="--outputFolder" />
85c2e6 970             <arg value="${project.site.dir}" />
dd7961 971
JM 972             <arg value="--pageHeader" />
81f881 973             <arg value="${basedir}/docs/site_header.html" />
e7a153 974             
dd7961 975             <arg value="--pageFooter" />
81f881 976             <arg value="${basedir}/docs/site_footer.html" />
a4d249 977
e7a153 978             <arg value="--analyticsSnippet" />
JM 979             <arg value="${basedir}/docs/site_analytics.html" />
980                 
981             <arg value="--adSnippet" />
982             <arg value="${basedir}/docs/site_ads.html" />
983
e0054b 984             <arg value="--alias" />
JM 985             <arg value="index=overview" />
424fe1 986
1f9dae 987             <arg value="--alias" />
4c835e 988             <arg value="properties=settings" />
a4d249 989
JM 990             <arg value="--substitute" />
991             <arg value="%VERSION%=${gb.version}" />
992
993             <arg value="--substitute" />
85c2e6 994             <arg value="%GO%=${distribution.zipfile}" />
JM 995
996             <arg value="--substitute" />
997             <arg value="%WAR%=${distribution.warfile}" />
a4d249 998
JM 999             <arg value="--substitute" />
f6740d 1000             <arg value="%FEDCLIENT%=${fedclient.zipfile}" />
JM 1001
1002             <arg value="--substitute" />
d65f71 1003             <arg value="%MANAGER%=${manager.zipfile}" />
773bb6 1004
JM 1005             <arg value="--substitute" />
1006             <arg value="%API%=${gbapi.zipfile}" />
841651 1007
JM 1008             <arg value="--substitute" />
b774de 1009             <arg value="%EXPRESS%=${express.zipfile}" />
JM 1010
1011             <arg value="--substitute" />
d39680 1012             <arg value="%BUILDDATE%=${gb.versionDate}" />
a4d249 1013
JM 1014             <arg value="--substitute" />
1015             <arg value="%JGIT%=${jgit.version}" />
1f9dae 1016
a3f474 1017             <arg value="--properties" />
1f9dae 1018             <arg value="%PROPERTIES%=${basedir}/distrib/gitblit.properties" />
230632 1019             
JM 1020             <arg value="--nomarkdown" />
1021             <arg value="%BEGINCODE%:%ENDCODE%" />
1022
1023             <arg value="--substitute" />
1024             <arg value="&quot;%BEGINCODE%=&lt;pre class='prettyprint lang-java'&gt;&quot;" />
1025
1026             <arg value="--substitute" />
1027             <arg value="%ENDCODE%=&lt;/pre&gt;" />
1f9dae 1028
5c563c 1029             <arg value="--regex" />
JM 1030             <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;" />
1031
a3f474 1032         </java>    
85c2e6 1033     </target>
b774de 1034
424fe1 1035
85c2e6 1036     <!--
JM 1037         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
1038         Compile from source, publish binaries, and build & deploy site
1039         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1040     -->
4ad1eb 1041     <target name="buildAll" depends="buildAuthority,buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary,buildSite">        
1f9dae 1042         <!-- Cleanup -->
2a7306 1043         <delete dir="${project.build.dir}" />
85c2e6 1044         <delete dir="${project.war.dir}" />
JM 1045         <delete dir="${project.deploy.dir}" />
b774de 1046         <delete dir="${project.express.dir}" />
5fe7df 1047     </target>
b774de 1048
746aaf 1049     
JM 1050     <!--
1051         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
1052         Update the gh-pages branch with the current site
1053         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1054     -->
1055     <target name="updateGhPages" depends="buildSite">
1056         <!-- Build gh-pages branch -->
1057         <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildGhPages">
1058             <classpath refid="master-classpath" />
1059             <arg value="--sourceFolder" />
1060             <arg value="${basedir}/site" />
1061
1062             <arg value="--repository" />
1063             <arg value="${basedir}" />
1064             
1065             <arg value="--obliterate" />
1066         </java>
1067     </target>
1068     
b774de 1069
85c2e6 1070     <!-- 
JM 1071         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1072         Publish binaries to Google Code
1073         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1074     -->
a48c33 1075     <target name="publishBinaries" depends="buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary" description="Publish the Gitblit binaries to Google Code">
b774de 1076
85c2e6 1077         <echo>Uploading Gitblit ${gb.version} binaries</echo>
b774de 1078
773bb6 1079         <!-- Upload Gitblit GO ZIP file -->
85c2e6 1080         <gcupload 
JM 1081              username="${googlecode.user}" 
1082              password="${googlecode.password}" 
1083              projectname="gitblit" 
1084              filename="${distribution.zipfile}" 
1085              targetfilename="gitblit-${gb.version}.zip"
ed21d2 1086              summary="Gitblit GO v${gb.version} (standalone, integrated Gitblit server)"
85c2e6 1087              labels="Featured, Type-Package, OpSys-All" />
b774de 1088
773bb6 1089         <!-- Upload Gitblit WAR file -->
85c2e6 1090         <gcupload 
JM 1091              username="${googlecode.user}" 
1092              password="${googlecode.password}" 
1093              projectname="gitblit" 
1094              filename="${distribution.warfile}" 
1095              targetfilename="gitblit-${gb.version}.war"
ed21d2 1096              summary="Gitblit WAR v${gb.version} (standard WAR webapp for servlet containers)"
85c2e6 1097              labels="Featured, Type-Package, OpSys-All" />
b774de 1098
773bb6 1099         <!-- Upload Gitblit FedClient -->
f6740d 1100         <gcupload 
JM 1101             username="${googlecode.user}" 
1102             password="${googlecode.password}" 
1103             projectname="gitblit" 
1104             filename="${fedclient.zipfile}" 
1105             targetfilename="fedclient-${gb.version}.zip"
1106             summary="Gitblit Federation Client v${gb.version} (command-line tool to clone data from federated Gitblit instances)"
1107             labels="Featured, Type-Package, OpSys-All" />
841651 1108
773bb6 1109         <!-- Upload Gitblit Manager -->
841651 1110         <gcupload 
JM 1111             username="${googlecode.user}" 
1112             password="${googlecode.password}" 
1113             projectname="gitblit" 
d65f71 1114             filename="${manager.zipfile}" 
JM 1115             targetfilename="manager-${gb.version}.zip"
a7a9f7 1116             summary="Gitblit Manager v${gb.version} (Swing tool to remotely administer a Gitblit server)"
4ad1eb 1117             labels="Featured, Type-Package, OpSys-All" />
JM 1118
773bb6 1119         <!-- Upload Gitblit API Library -->
JM 1120         <gcupload 
1121             username="${googlecode.user}" 
1122             password="${googlecode.password}" 
1123             projectname="gitblit" 
1124             filename="${gbapi.zipfile}" 
1125             targetfilename="gbapi-${gb.version}.zip"
1126             summary="Gitblit API Library v${gb.version} (JSON RPC library to integrate with your software)"
841651 1127             labels="Featured, Type-Package, OpSys-All" />
b774de 1128
JM 1129         <!-- Upload Gitblit Express for RedHat OpenShift -->
1130         <gcupload 
1131             username="${googlecode.user}" 
1132             password="${googlecode.password}" 
1133             projectname="gitblit" 
1134             filename="${express.zipfile}" 
1135             targetfilename="express-${gb.version}.zip"
1136             summary="Gitblit Express v${gb.version} (run Gitblit on RedHat's OpenShift cloud)"
1137             labels="Featured, Type-Package, OpSys-All" />
1138
5450d0 1139     </target>
JM 1140
b774de 1141
85c2e6 1142     <!--
JM 1143         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
b774de 1144         Publish site to site hosting service
85c2e6 1145         You must add ext/commons-net-1.4.0.jar to your ANT classpath.
JM 1146         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1147     -->
746aaf 1148     <target name="publishSite" depends="buildSite,updateGhPages" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)" >
b774de 1149
85c2e6 1150         <echo>Uploading Gitblit ${gb.version} website</echo>
b774de 1151
81f881 1152         <ftp server="${ftp.server}"
JM 1153             userid="${ftp.user}"
1154             password="${ftp.password}"
1155             remotedir="${ftp.dir}"
1156             passive="true"
1157             verbose="yes">
85c2e6 1158         <fileset dir="${project.site.dir}" />
81f881 1159         </ftp>
JM 1160     </target>
85c2e6 1161
b774de 1162
85c2e6 1163     <!--
JM 1164         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
1165         Compile from source, publish binaries, and build & deploy site
1166         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1167     -->
773bb6 1168     <target name="publishAll" depends="publishBinaries,publishSite">
85c2e6 1169         <!-- Cleanup -->
JM 1170         <delete dir="${project.build.dir}" />
1171         <delete dir="${project.war.dir}" />
1172         <delete dir="${project.deploy.dir}" />
1173     </target>
764d94 1174 </project>