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