James Moger
2013-06-26 f3a9d8bdbe5e2bfcf23ede30c8ebdb112ce49ba9
commit | author | age
5fe7df 1 <?xml version="1.0" encoding="UTF-8"?>
f6b200 2 <project name="gitblit" default="compile" xmlns:mx="antlib:org.moxie">
5fe7df 3
ff3015 4     <!--
JM 5         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f6b200 6         Retrieve Moxie Toolkit
f38c90 7         
JM 8         documentation @ http://gitblit.github.io/moxie
ff3015 9         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 10     -->
32ada7 11     <property name="moxie.version" value="0.7.4" />
a4c680 12     <property name="moxie.url" value="http://gitblit.github.io/moxie/maven" />
f6b200 13     <property name="moxie.jar" value="moxie-toolkit-${moxie.version}.jar" />
JM 14     <property name="moxie.dir" value="${user.home}/.moxie" />
5450d0 15     
f6b200 16     <!-- Download Moxie from it's Maven repository to user.home -->
8e2b99 17     <mkdir dir="${moxie.dir}" />
f6b200 18     <get src="${moxie.url}/org/moxie/moxie-toolkit/${moxie.version}/${moxie.jar}"
JM 19         dest="${moxie.dir}" skipexisting="true" verbose="true" />
20     
21     <!-- Register Moxie tasks -->
22     <taskdef uri="antlib:org.moxie">
23         <classpath location="${moxie.dir}/${moxie.jar}" />
24     </taskdef>
25     
26     <!-- Project directories -->
27     <property name="project.src.dir" value="${basedir}/src/main/java" />    
28     <property name="project.resources.dir" value="${basedir}/src/main/resources" />    
29     <property name="project.distrib.dir" value="${basedir}/src/main/distrib" />
85c2e6 30     
JM 31     <!--
32         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f6b200 33         Initialize Moxie and setup build properties
85c2e6 34         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 35     -->
f6b200 36     <target name="prepare">
5450d0 37     
f6b200 38         <!-- Setup Ant build from build.moxie and resolve dependencies.
358545 39              If it exists, build.properties is automatically loaded.
JM 40              Explicitly set mxroot allowing CI servers to override the default. -->
41         <mx:init verbose="no" mxroot="${moxie.dir}" />
f6b200 42                 
JM 43         <!-- Set Ant project properties -->
44         <property name="distribution.zipfile" value="gitblit-${project.version}.zip" />
45         <property name="distribution.tgzfile" value="gitblit-${project.version}.tar.gz" />
46         <property name="distribution.warfile" value="gitblit-${project.version}.war" />
47         <property name="fedclient.zipfile" value="fedclient-${project.version}.zip" />
48         <property name="manager.zipfile" value="manager-${project.version}.zip" />
49         <property name="authority.zipfile" value="authority-${project.version}.zip" />
50         <property name="gbapi.zipfile" value="gbapi-${project.version}.zip" />
51         <property name="express.zipfile" value="express-${project.version}.zip" />
93d506 52         
f6b200 53         <!-- Download links -->
JM 54         <property name="gc.url" value="http://code.google.com/p/gitblit/downloads/detail?name=" />
55     </target>
56
57     
58     <!--
59         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60         Cleanup all build artifacts and directories
61         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62     -->
63     <target name="clean" depends="prepare" description="Cleanup all build artifacts and directories">
64         <!-- cleanup legacy build structure -->
65         <!-- this can be eliminated after 1.3.0 release -->
93d506 66         <delete>
JM 67             <fileset dir="${basedir}">
68                 <include name="*.zip" />
69                 <include name="*.war" />
70                 <include name="*.jar" />
71             </fileset>
72         </delete>
f6b200 73         <delete dir="${basedir}/deploy" failonerror="false" />
JM 74         <delete dir="${basedir}/express" failonerror="false" />
75         <delete dir="${basedir}/jar" failonerror="false" />
76         <delete dir="${basedir}/javadoc" failonerror="false" />
77         <delete dir="${basedir}/site" failonerror="false" />
78         <delete dir="${basedir}/temp" failonerror="false" />
79         <delete dir="${basedir}/war" failonerror="false" />
93d506 80         
f6b200 81         <!-- Clean build and target directories -->
JM 82         <mx:clean />
83
84     </target>
85
86     
87     <!--
88         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89         Setup
90         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91     -->
92     <target name="setup" depends="prepare" description="Setup up project">
93
94         <!-- copy distrib/data to project data directory -->
93d506 95         <mkdir dir="${basedir}/data" />
JM 96         <copy todir="${basedir}/data" overwrite="false">
f6b200 97             <fileset dir="${project.distrib.dir}/data" />
f98825 98         </copy>
d8a0f1 99         
b9afce 100         <!-- copy gitblit.properties to the source directory.
f6b200 101              this file is only used for parsing setting descriptions. -->
b9afce 102         <copy tofile="${project.src.dir}/reference.properties" overwrite="true"
f6b200 103             file="${project.distrib.dir}/data/gitblit.properties" />
ffbf03 104
JM 105         <!-- copy clientapps.json to the source directory.
106              this file is only used if a local file is not provided. -->
107         <copy tofile="${project.src.dir}/clientapps.json" overwrite="true"
108             file="${project.distrib.dir}/data/clientapps.json" />
93d506 109         
f6b200 110         <!-- 
JM 111             upgrade existing workspace to data directory
112             this code can be eliminated after 1.3.0 release
113          -->
93d506 114         <move todir="${basedir}/data" overwrite="true" failonerror="false">
JM 115             <fileset dir="${basedir}">
116                 <include name="users.conf" />
117                 <include name="projects.conf" />
118                 <include name="gitblit.properties" />
119                 <include name="serverKeyStore.jks" />
120                 <include name="serverTrustStore.jks" />
121             </fileset>
122         </move>
123         <move todir="${basedir}/data/certs" overwrite="true" failonerror="false">
124             <fileset dir="${basedir}/certs" />
125         </move>
126         <move todir="${basedir}/data/git" overwrite="true" failonerror="false">
127             <fileset dir="${basedir}/git" />
128         </move>
129         <move todir="${basedir}/data/proposals" overwrite="true" failonerror="false">
130             <fileset dir="${basedir}/proposals" />
131         </move>
85c2e6 132     </target>
JM 133
f6b200 134
JM 135     <!--
136         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137         Compile
138         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139     -->
140     <target name="compile" depends="setup" description="compiles Gitblit from source">
141         
142         <!-- Generate the Keys class from the properties file -->
143         <mx:keys propertiesfile="${project.distrib.dir}/data/gitblit.properties"
144                  outputclass="com.gitblit.Keys"
145                  todir="${project.src.dir}" />
146
433190 147         <!-- Compile project -->
JM 148         <mx:javac scope="compile" clean="true" />
f6b200 149         
JM 150     </target>
151
152         
153     <!--
154         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
155         Report the compile dependencies on the console
156         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157     -->
158     <target name="report" depends="prepare" description="generate dependency report">
159         
160         <!-- Report compile dependencies to the console -->
161         <mx:report scope="compile" destfile="${project.targetDirectory}/dependencies.txt" />
162         
163     </target>
164
165     
166     <!--
167         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
168         Test
169         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170     -->
171     <target name="test" depends="compile" description="compiles Gitblit from source and runs unit tests">
172         
173         <!-- Compile unit tests -->
174         <mx:javac scope="test" />
175         
176         <!-- Run unit tests -->
177         <mx:test failonerror="true" />
178         
179     </target>
180
181
182     <!--
183         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
184         Run Gitblit GO
185         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186     -->
187     <target name="run" depends="compile" description="Run Gitblit GO">
188         
189         <!-- run the mainclass in a separate JVM -->
190         <mx:run fork="true" />
191         
192     </target>            
193             
85c2e6 194     
JM 195     <!--
196         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197         Build Gitblit GO
198         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
199     -->
f6b200 200     <target name="buildGO" depends="compile" description="Build Gitblit GO distribution">
85c2e6 201         
f6b200 202         <echo>Building Gitblit GO ${project.version}</echo>
85c2e6 203
f6b200 204         <local name="go.dir" />
JM 205         <property name="go.dir" value="${project.outputDirectory}/go" />    
206         <delete dir="${go.dir}" />
85c2e6 207
f6b200 208         <prepareDataDirectory toDir="${go.dir}/data" />
JM 209         
210         <!-- Build jar -->
211         <mx:jar destfile="${go.dir}/gitblit.jar" includeresources="true">
212             <mainclass name="com.gitblit.GitBlitServer" />
213             <launcher paths="ext" />
214         </mx:jar>
215
216         <!-- Generate the docs for the GO build -->
217         <generateDocs toDir="${go.dir}/docs" />
218         
219         <!-- Create GO Windows Zip deployment -->
220         <mx:zip basedir="${go.dir}">
221             <!-- LICENSE and NOTICE -->
222             <fileset dir="${basedir}" >
7c643b 223                 <include name="LICENSE" />
JM 224                 <include name="NOTICE" />
93d506 225             </fileset>
dbf594 226             <!-- Windows distrib files -->
f6b200 227             <zipfileset dir="${project.distrib.dir}/win" />
dbf594 228             <!-- Gitblit Authority data -->
JM 229             <zipfileset dir="${project.distrib.dir}/data/certs" prefix="data/certs" />
f6b200 230             <!-- include all dependencies -->
JM 231             <dependencies prefix="ext" />
232         </mx:zip>
5fe7df 233
f6b200 234         <!-- Create GO Linux/OSX tar.gz deployment -->
JM 235         <mx:tar basedir="${go.dir}" longfile="gnu" compression="gzip">
236             <!-- LICENSE and NOTICE -->
237             <fileset dir="${basedir}" >
238                 <include name="LICENSE" />
239                 <include name="NOTICE" />
9be337 240             </fileset>
dbf594 241             <!-- Linux/OSX distrib files -->
f6b200 242             <tarfileset dir="${project.distrib.dir}/linux" filemode="755" />
dbf594 243             <!-- Gitblit Authority data -->
JM 244             <zipfileset dir="${project.distrib.dir}/data/certs" prefix="data/certs" />
f6b200 245             <!-- include all dependencies -->
JM 246             <dependencies prefix="ext" />
247         </mx:tar>        
85c2e6 248
JM 249     </target>
250     
251     
252     <!--
253         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
254         Build Gitblit WAR
255         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
256     -->
257     <target name="buildWAR" depends="compile" description="Build Gitblit WAR">
258         
f6b200 259         <echo>Building Gitblit WAR ${project.version}</echo>
85c2e6 260
f6b200 261         <local name="war.dir" />
JM 262         <property name="war.dir" value="${project.outputDirectory}/war" />
263         <delete dir="${war.dir}" />
85c2e6 264         
f6b200 265         <local name="webinf" />
JM 266         <property name="webinf" value="${war.dir}/WEB-INF" />
fa54be 267
f6b200 268         <!-- Generate the docs for the WAR build -->
JM 269         <generateDocs toDir="${webinf}/docs" />
93d506 270
f6b200 271         <!-- Prepare the data directory -->
JM 272         <prepareDataDirectory toDir="${webinf}/data" />
fa54be 273
f6b200 274         <!-- Build the WAR web.xml from the prototype web.xml -->
9985ed 275         <mx:webxml sourcefile="${project.src.dir}/WEB-INF/web.xml" destfile="${webinf}/web.xml">
JM 276             <replace token="@gb.version@" value="${project.version}" />
277         </mx:webxml>
85c2e6 278
b9afce 279         <!-- Gitblit jar -->
JM 280         <mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true">
281             <!-- Specify all web.xml servlets and filters -->
282             <class name="com.gitblit.GitBlit" />
283             <class name="com.gitblit.DownloadZipFilter" />
284             <class name="com.gitblit.DownloadZipServlet" />
285             <class name="com.gitblit.EnforceAuthenticationFilter" />
286             <class name="com.gitblit.FederationServlet" />
287             <class name="com.gitblit.GitFilter" />
e32979 288             <class name="com.gitblit.git.GitServlet" />
b9afce 289             <class name="com.gitblit.PagesFilter" />
JM 290             <class name="com.gitblit.PagesServlet" />
291             <class name="com.gitblit.RobotsTxtServlet" />
292             <class name="com.gitblit.RpcFilter" />
293             <class name="com.gitblit.RpcServlet" />
294             <class name="com.gitblit.SyndicationFilter" />
295             <class name="com.gitblit.SyndicationServlet" />
a2147f 296             <class name="com.gitblit.SparkleShareInviteServlet" />
b9afce 297             <class name="com.gitblit.wicket.GitBlitWebApp" />
302df6 298             <!-- Manually include alternative User Services -->
JM 299             <class name="com.gitblit.LdapUserService" />
300             <class name="com.gitblit.RedmineUserService" />
724da5 301             <class name="com.gitblit.SalesforceUserService" />
73c76b 302             <class name="com.gitblit.WindowsUserService" />
b9afce 303         </mx:genjar>
JM 304
85c2e6 305         <!-- Build the WAR file -->
f6b200 306         <mx:zip basedir="${war.dir}" destfile="${project.targetDirectory}/${distribution.warfile}" compress="true" >
JM 307             <!-- Resources in root -->
6534b7 308             <fileset dir="${project.resources.dir}">
LM 309                 <exclude name="thumbs.db" />
f6b200 310                 <exclude name="*.mkd" />
6534b7 311             </fileset>
f6b200 312             <!-- WEB-INF directory -->
JM 313             <zipfileset prefix="WEB-INF" dir="${basedir}" >
314                 <include name="LICENSE" />
315                 <include name="NOTICE" />
316             </zipfileset>
d9c9fe 317             <zipfileset prefix="WEB-INF" file="${project.compileOutputDirectory}/WEB-INF/weblogic.xml" />
f6b200 318             <!-- include "war" tagged dependencies -->
JM 319             <dependencies prefix="WEB-INF/lib" tag="war" />
320         </mx:zip>
85f639 321     </target>
LM 322
323
f6740d 324     <!-- 
JM 325         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
326         Build the stand-alone, command-line Gitblit Federation Client
327         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
328     -->
329     <target name="buildFederationClient" depends="compile" description="Builds the stand-alone Gitblit federation client">
f6b200 330         <echo>Building Gitblit Federation Client ${project.version}</echo>
f6740d 331     
f6b200 332         <!-- generate jar by traversing the class hierarchy of the specified
JM 333              classes, exclude any classes in classpath jars -->
b9afce 334         <mx:genjar tag="" includeresources="false" excludeClasspathJars="true"
f6b200 335             destfile="${project.targetDirectory}/fedclient.jar">
JM 336             <mainclass name="com.gitblit.FederationClient" />
337             <launcher paths="ext" />
338             <resource file="${project.compileOutputDirectory}/log4j.properties" />
339         </mx:genjar>
f6740d 340         
JM 341         <!-- Build the federation client zip file -->
f6b200 342         <mx:zip destfile="${project.targetDirectory}/${fedclient.zipfile}">
f6740d 343             <fileset dir="${basedir}">
d65f71 344                 <include name="LICENSE" />
JM 345                 <include name="NOTICE" />
93d506 346             </fileset>
f6b200 347             <fileset dir="${project.targetDirectory}">
93d506 348                 <include name="fedclient.jar" />
f6740d 349             </fileset>
f6b200 350             <fileset dir="${project.distrib.dir}">
773bb6 351                 <include name="federation.properties" />
f6740d 352             </fileset>
f6b200 353             <!-- include "fedclient" tagged dependencies -->
JM 354             <dependencies prefix="ext" tag="fedclient" />
355         </mx:zip>
93d506 356         
JM 357         <!-- Cleanup -->
f6b200 358         <delete file="${project.targetDirectory}/fedclient.jar" />
JM 359         
f6740d 360     </target>
JM 361
841651 362
JM 363     <!-- 
364         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f6b200 365         Build a Gitblit filesystem for deployment to RedHat OpenShift Express
b774de 366         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 367     -->
9be337 368     <target name="buildExpress" depends="compile" description="Build exploded WAR file suitable for deployment to OpenShift Express">
f6b200 369         <echo>Building Gitblit Express for RedHat OpenShift ${project.version}</echo>
b774de 370         
f6b200 371         <local name="express.dir" />
JM 372         <property name="express.dir" value="${project.outputDirectory}/express" />        
373         <delete dir="${express.dir}" />
b774de 374         
JM 375         <!-- Create the OpenShift filesystem -->
f6b200 376         <local name="deployments.root" />
JM 377         <property name="deployments.root" value="${express.dir}/deployments/ROOT.war"/>
b774de 378         <mkdir dir="${deployments.root}" />
f6b200 379         <touch file="${express.dir}/deployments/ROOT.war.dodeploy" />
b774de 380
f6b200 381         <local name="webinf" />
JM 382         <property name="webinf" value="${deployments.root}/WEB-INF" />
b774de 383
f6b200 384         <!-- Prepare the data directory -->
JM 385         <prepareDataDirectory toDir="${webinf}/data" />
93d506 386                     
f6b200 387         <!-- Build the Express web.xml from the prototype web.xml and gitblit.properties -->
b774de 388         <!-- THIS FILE IS NOT OVERRIDDEN ONCE IT IS BUILT!!! -->
f6b200 389         <mx:webxml sourcefile="${project.src.dir}/WEB-INF/web.xml" destfile="${webinf}/web.xml"
9985ed 390             propertiesFile="${project.distrib.dir}/data/gitblit.properties"
JM 391             skip="server.*">
392             <replace token="@gb.version@" value="${project.version}" />
393         </mx:webxml>
b774de 394
JM 395         <!-- Gitblit classes -->
b9afce 396         <mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true">
5a7680 397             <!-- Specify all web.xml servlets and filters -->
JM 398             <class name="com.gitblit.GitBlit" />
399             <class name="com.gitblit.DownloadZipFilter" />
400             <class name="com.gitblit.DownloadZipServlet" />
401             <class name="com.gitblit.EnforceAuthenticationFilter" />
402             <class name="com.gitblit.FederationServlet" />
403             <class name="com.gitblit.GitFilter" />
e32979 404             <class name="com.gitblit.git.GitServlet" />
5a7680 405             <class name="com.gitblit.PagesFilter" />
JM 406             <class name="com.gitblit.PagesServlet" />
407             <class name="com.gitblit.RobotsTxtServlet" />
408             <class name="com.gitblit.RpcFilter" />
409             <class name="com.gitblit.RpcServlet" />
410             <class name="com.gitblit.SyndicationFilter" />
411             <class name="com.gitblit.SyndicationServlet" />
a2147f 412             <class name="com.gitblit.SparkleShareInviteServlet" />
5a7680 413             <class name="com.gitblit.wicket.GitBlitWebApp" />
302df6 414             <!-- Manually include alternative User Services -->
JM 415             <class name="com.gitblit.LdapUserService" />
416             <class name="com.gitblit.RedmineUserService" />
724da5 417             <class name="com.gitblit.SalesforceUserService" />
73c76b 418             <class name="com.gitblit.WindowsUserService" />
5a7680 419         </mx:genjar>
b774de 420
JM 421         <!-- Build Express Zip file -->
f6b200 422         <mx:zip basedir="${express.dir}" destfile="${project.targetDirectory}/${express.zipfile}">
JM 423             <fileset dir="${basedir}">
424                 <include name="LICENSE" />
425                 <include name="NOTICE" />
426             </fileset>
427             <!-- README -->
428             <zipfileset fullpath="README.gitblit" file="${project.siteSourceDirectory}/openshift.mkd" />
429             <!-- resources -->
430             <zipfileset prefix="deployments/ROOT.war" dir="${project.resources.dir}">
431                 <exclude name="thumbs.db" />
432                 <exclude name="*.mkd" />
433             </zipfileset>
434             <!-- include "war" tagged dependencies -->
435             <dependencies prefix="deployments/ROOT.war/WEB-INF/lib" tag="war" />
436         </mx:zip>
b774de 437
JM 438     </target>
439
440
441     <!-- 
442         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a7a9f7 443         Build the stand-alone, Gitblit Manager
841651 444         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 445     -->
a7a9f7 446     <target name="buildManager" depends="compile" description="Builds the stand-alone Gitblit Manager">
f6b200 447         <echo>Building Gitblit Manager ${project.version}</echo>
b774de 448
f6b200 449         <!-- generate jar by traversing the class hierarchy of the specified
JM 450              classes, exclude any classes in classpath jars -->
b9afce 451         <mx:genjar tag="" includeResources="false" excludeClasspathJars="true"
f6b200 452             destfile="${project.targetDirectory}/manager.jar">
JM 453             <resource file="${project.src.dir}/com/gitblit/client/splash.png" />
454             <resource file="${project.resources.dir}/gitblt-favicon.png" />
455             <resource file="${project.resources.dir}/gitweb-favicon.png" />
456             <resource file="${project.resources.dir}/git-orange-16x16.png" />
457             <resource file="${project.resources.dir}/user_16x16.png" />
458             <resource file="${project.resources.dir}/users_16x16.png" />
459             <resource file="${project.resources.dir}/settings_16x16.png" />
460             <resource file="${project.resources.dir}/lock_go_16x16.png" />
461             <resource file="${project.resources.dir}/lock_pull_16x16.png" />
462             <resource file="${project.resources.dir}/shield_16x16.png" />
463             <resource file="${project.resources.dir}/federated_16x16.png" />
464             <resource file="${project.resources.dir}/cold_16x16.png" />
465             <resource file="${project.resources.dir}/book_16x16.png" />
466             <resource file="${project.resources.dir}/bug_16x16.png" />
467             <resource file="${project.resources.dir}/health_16x16.png" />
468             <resource file="${project.resources.dir}/feed_16x16.png" />
469             <resource file="${project.resources.dir}/bullet_feed.png" />
470             <resource file="${project.resources.dir}/search-icon.png" />
471             <resource file="${project.resources.dir}/commit_changes_16x16.png" />
472             <resource file="${project.resources.dir}/commit_merge_16x16.png" />
473             <resource file="${project.resources.dir}/commit_divide_16x16.png" />
474             <resource file="${project.resources.dir}/star_16x16.png" />
475             <resource file="${project.resources.dir}/blank.png" />
476             <resource file="${project.src.dir}/log4j.properties" />
477             <resource>
478                 <!-- inlcude all translations -->
479                 <fileset dir="${project.src.dir}/com/gitblit/wicket">
480                     <include name="*.properties" />
481                 </fileset>
482             </resource>
b774de 483
f6b200 484             <mainclass name="com.gitblit.client.GitblitManagerLauncher" />
841651 485             <manifest>
JM 486                 <attribute name="SplashScreen-Image" value="splash.png" />
487             </manifest>
f6b200 488         </mx:genjar>
b774de 489
d65f71 490         <!-- Build Manager Zip file -->
f6b200 491         <mx:zip destfile="${project.targetDirectory}/${manager.zipfile}">
d65f71 492             <fileset dir="${basedir}">
JM 493                 <include name="LICENSE" />
494                 <include name="NOTICE" />
495             </fileset>
f6b200 496             <fileset dir="${project.targetDirectory}">
JM 497                 <include name="manager.jar" />
93d506 498             </fileset>
f6b200 499             <!-- include "manager" tagged dependencies -->
JM 500             <dependencies prefix="ext" tag="manager" />
501         </mx:zip>
93d506 502         
JM 503         <!-- Cleanup -->
f6b200 504         <delete file="${project.targetDirectory}/manager.jar" />
841651 505     </target>
773bb6 506     
4ad1eb 507     
773bb6 508     <!-- 
4ad1eb 509         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 510         Build the stand-alone, Gitblit Authority
511         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
512     -->
513     <target name="buildAuthority" depends="compile" description="Builds the stand-alone Gitblit Authority">
f6b200 514         <echo>Building Gitblit Authority ${project.version}</echo>
4ad1eb 515
f6b200 516         <!-- generate jar by traversing the class hierarchy of the specified
JM 517              classes, exclude any classes in "authority" classpath jars -->
518         <mx:genjar tag="authority" excludeClasspathJars="true" 
519             destfile="${project.targetDirectory}/authority.jar">
520             <resource file="${project.src.dir}/com/gitblit/client/splash.png" />
521             <resource file="${project.resources.dir}/gitblt-favicon.png" />
522             <resource file="${project.resources.dir}/user_16x16.png" />
523             <resource file="${project.resources.dir}/users_16x16.png" />
524             <resource file="${project.resources.dir}/rosette_16x16.png" />
525             <resource file="${project.resources.dir}/rosette_32x32.png" />
526             <resource file="${project.resources.dir}/vcard_16x16.png" />
527             <resource file="${project.resources.dir}/settings_16x16.png" />
528             <resource file="${project.resources.dir}/settings_32x32.png" />
529             <resource file="${project.resources.dir}/search-icon.png" />
530             <resource file="${project.resources.dir}/mail_16x16.png" />
531             <resource file="${project.resources.dir}/script_16x16.png" />
532             <resource file="${project.resources.dir}/blank.png" />
533             <resource file="${project.resources.dir}/bullet_green.png" />
534             <resource file="${project.resources.dir}/bullet_orange.png" />
535             <resource file="${project.resources.dir}/bullet_red.png" />
536             <resource file="${project.resources.dir}/bullet_white.png" />
537             <resource file="${project.resources.dir}/bullet_delete.png" />
538             <resource file="${project.resources.dir}/bullet_key.png" />
539             <resource file="${project.src.dir}/log4j.properties" />
540             <resource>
541                 <!-- inlcude all translations -->
542                 <fileset dir="${project.src.dir}/com/gitblit/wicket">
543                     <include name="*.properties" />
544                 </fileset>
545             </resource>
4ad1eb 546
f6b200 547             <mainclass name="com.gitblit.authority.Launcher" />
4ad1eb 548             <manifest>
JM 549                 <attribute name="SplashScreen-Image" value="splash.png" />
550             </manifest>
f6b200 551         </mx:genjar>
4ad1eb 552
JM 553         <!-- Build Authority Zip file -->
f6b200 554         <mx:zip destfile="${project.targetDirectory}/${authority.zipfile}">
4ad1eb 555             <fileset dir="${basedir}">
JM 556                 <include name="LICENSE" />
557                 <include name="NOTICE" />
558             </fileset>
f6b200 559             <fileset dir="${project.targetDirectory}">
JM 560                 <include name="authority.jar" />
93d506 561             </fileset>
f6b200 562             <zipfileset dir="${project.distrib.dir}/data" prefix="data">
JM 563                 <include name="users.conf" />
564                 <include name="gitblit.properties" />
565             </zipfileset>
dbf594 566             <!-- Gitblit Authority data -->
JM 567             <zipfileset dir="${project.distrib.dir}/data/certs" prefix="data/certs" />
f6b200 568             <!-- include "authority" tagged dependencies -->
JM 569             <dependencies prefix="ext" tag="authority" />
570         </mx:zip>
571                 
572         <!-- Cleanup -->
573         <delete file="${project.targetDirectory}/authority.jar" />
4ad1eb 574     </target>
JM 575                     
576     <!-- 
577         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
578         Build the Gitblit API client library
579         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
580     -->
581     <target name="buildApiLibrary" depends="compile" description="Builds the Gitblit RPC client library">
f6b200 582         <echo>Building Gitblit API Library ${project.version}</echo>
4ad1eb 583     
f6b200 584         <local name="javadoc.dir" />
JM 585         <property name="javadoc.dir" value="${project.outputDirectory}/javadoc" />
586         <delete dir="${javadoc.dir}" />
587
4ad1eb 588         <!-- Build API Library jar -->
b9afce 589         <mx:genjar tag="" includeResources="false" excludeClasspathJars="true"
f6b200 590             destfile="${project.targetDirectory}/gbapi-${project.version}.jar">
4ad1eb 591             <class name="com.gitblit.Keys" />
JM 592             <class name="com.gitblit.client.GitblitClient" />
4bef08 593             <class name="com.gitblit.models.FederationModel" />
JM 594             <class name="com.gitblit.models.FederationProposal" />
595             <class name="com.gitblit.models.FederationSet" />            
f6b200 596         </mx:genjar>
773bb6 597         
4ad1eb 598         <!-- Build API sources jar -->
f6b200 599         <zip destfile="${project.targetDirectory}/gbapi-${project.version}-sources.jar">
JM 600             <fileset dir="${project.src.dir}" defaultexcludes="yes">
4ad1eb 601                 <include name="com/gitblit/Constants.java"/>
JM 602                 <include name="com/gitblit/GitBlitException.java"/>
603                 <include name="com/gitblit/Keys.java"/>
604                   <include name="com/gitblit/client/**/*.java"/>
605                   <include name="com/gitblit/models/**/*.java"/>
606                   <include name="com/gitblit/utils/**/*.java"/>                      
607             </fileset>
608         </zip>
609         
610         <!-- Build API JavaDoc jar -->
f6b200 611         <mx:javadoc destdir="${javadoc.dir}" redirect="true">
JM 612             <fileset dir="${project.src.dir}" defaultexcludes="yes">
4ad1eb 613                 <include name="com/gitblit/Constants.java"/>
JM 614                 <include name="com/gitblit/GitBlitException.java"/>
615                 <include name="com/gitblit/Keys.java"/>
616                   <include name="com/gitblit/client/**/*.java"/>
617                   <include name="com/gitblit/models/**/*.java"/>
618                   <include name="com/gitblit/utils/**/*.java"/>                      
619             </fileset>
f6b200 620         </mx:javadoc>
JM 621                       
622         <zip destfile="${project.targetDirectory}/gbapi-${project.version}-javadoc.jar">
623             <fileset dir="${javadoc.dir}" />
4ad1eb 624         </zip>
JM 625         
626         <!-- Build the API library zip file -->
f6b200 627         <mx:zip destfile="${project.targetDirectory}/${gbapi.zipfile}">
4ad1eb 628             <fileset dir="${basedir}">
93d506 629                 <include name="LICENSE" />
JM 630                 <include name="NOTICE" />
631             </fileset>
f6b200 632             <fileset dir="${project.targetDirectory}">
JM 633                 <include name="gbapi-${project.version}.jar" />
634                 <include name="gbapi-${project.version}-sources.jar" />
635                 <include name="gbapi-${project.version}-javadoc.jar" />
4ad1eb 636             </fileset>
f6b200 637             <!-- include "api" tagged dependencies -->
JM 638             <dependencies prefix="ext" tag="api" />
639         </mx:zip>
93d506 640         
JM 641         <!-- Cleanup -->
642         <delete>
f6b200 643             <fileset dir="${project.targetDirectory}">
93d506 644                 <include name="javadoc/**" />
f6b200 645                 <include name="gbapi-${project.version}.jar" />
JM 646                 <include name="gbapi-${project.version}-sources.jar" />
647                 <include name="gbapi-${project.version}-javadoc.jar" />
93d506 648         </fileset>
JM 649         </delete>
4ad1eb 650     </target>
841651 651         
f6740d 652         
85c2e6 653     <!-- 
JM 654         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
655         Build the Gitblit Website
656         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
657     -->
f6b200 658     <target name="buildSite" depends="prepare" description="Build the Gitblit website">
85c2e6 659         
f6b200 660         <echo>Building Gitblit Website ${project.version}</echo>
JM 661
662         <property name="releaselog" value="${basedir}/releases.moxie" />
85c2e6 663
dd7961 664         <!-- Build Site -->
f6b200 665         <mx:doc    googleplusid="114464678392593421684" googleanalyticsid="UA-24377072-1"
JM 666             googlePlusOne="true" minify="true" customless="custom.less">
667             <structure>
668                 <menu name="about">
669                     <page name="overview" src="siteindex.mkd" out="index.html" headerLinks="false" />
670                     <page name="features" src="features.mkd" />
671                     <page name="screenshots" src="screenshots.mkd" />
672                 </menu>
673                 <menu name="documentation">
674                     <page name="setup" src="setup.mkd" />
675                     <page name="federation" src="federation.mkd" />
676                     <divider />
677                     <page name="settings" src="properties.mkd" />
678                     <page name="faq" src="faq.mkd" />
679                     <divider />
680                     <page name="design" src="design.mkd" />
681                     <page name="rpc" src="rpc.mkd" />
682                 </menu>
683                 
684                 <menu name="releases">
685                     <page name="release notes" out="releasenotes.html">
686                         <template src="releasecurrent.ftl" data="${releaselog}" />
687                     </page>
688                     <page name="release history" out="releases.html">
689                         <template src="releasehistory.ftl" data="${releaselog}" />
690                     </page>
691                     <divider />
692                     <page name="roadmap" src="roadmap.mkd" />                    
693                 </menu>
694                 
695                 <menu name="downloads">
696                     <link name="Gitblit GO (Windows)" src="${gc.url}gitblit-${project.releaseVersion}.zip" />
697                     <link name="Gitblit GO (Linux/OSX)" src="${gc.url}gitblit-${project.releaseVersion}.tar.gz" />
698                     <link name="Gitblit WAR" src="${gc.url}gitblit-${project.releaseVersion}.war" />
699                     <link name="Gitblit Express" src="${gc.url}express-${project.releaseVersion}.zip" />
700                     <divider />
701                     <link name="Gitblit Manager" src="${gc.url}manager-${project.releaseVersion}.zip" />
702                     <link name="Federation Client" src="${gc.url}fedclient-${project.releaseVersion}.zip" />
703                     <divider />
704                     <link name="API Library" src="${gc.url}gbapi-${project.releaseVersion}.zip" />
705                 </menu>
706                 
707                 <menu name="links">
724da5 708                     <link name="Gitblit Demo (RELEASE)" src="https://demo-gitblit.rhcloud.com" />
JM 709                     <link name="Gitblit Next (SNAPSHOT)" src="https://next-gitblit.rhcloud.com" />
f6b200 710                     <divider />
JM 711                     <link name="Github" src="${project.scmUrl}" />
712                     <link name="Issues" src="${project.issuesUrl}" />
713                     <link name="Discussion" src="${project.forumUrl}" />
714                     <link name="Google+" src="${project.socialNetworkUrl}" />
715                     <link name="Ohloh" src="http://www.ohloh.net/p/gitblit" />
716                 </menu>
717                 <divider />
718             </structure>
719             
720             <replace token="%GCURL%" value="${gc.url}" />
721             
722             <properties token="%PROPERTIES%" file="${project.distrib.dir}/data/gitblit.properties" />
723             
724             <regex searchPattern="\b(issue)(\s*[#]?|-){0,1}(\d+)\b" replacePattern="&lt;a href='http://code.google.com/p/gitblit/issues/detail?id=$3'&gt;issue $3&lt;/a&gt;" />
725             
726             <!-- Set the logo from the mx:doc resources -->
727             <logo file="${project.resources.dir}/gitblt_25_white.png" />
728             <favicon file="${project.resources.dir}/gitblt-favicon.png" />
729             
730             <resource>
731                 <fileset dir="${project.resources.dir}">
732                     <include name="lock_go_16x16.png" />
733                     <include name="lock_pull_16x16.png" />
734                     <include name="shield_16x16.png" />
735                     <include name="cold_16x16.png" />
736                     <include name="bug_16x16.png" />
737                     <include name="book_16x16.png" />
738                     <include name="blank.png" />
739                     <include name="federated_16x16.png" />
740                     <include name="arrow_page.png" />
741                 </fileset>
742             </resource>
743         </mx:doc>        
a4d249 744
f90dc6 745         <!-- Copy Fancybox -->
f6b200 746         <mkdir dir="${project.siteTargetDirectory}/fancybox" />
JM 747         <copy todir="${project.siteTargetDirectory}/fancybox">
748             <fileset dir="${project.siteSourceDirectory}/fancybox">
230632 749                 <exclude name="thumbs.db" />
JM 750             </fileset>
751         </copy>
752
24d08f 753         <!-- Generate thumbnails of screenshots -->
f6b200 754         <mx:thumbs input="png" output="png" maximumDimension="250" 
JM 755             sourceDir="${project.siteSourceDirectory}/screenshots"
756             destDir="${project.siteTargetDirectory}/thumbs" />
a4d249 757
f90dc6 758         <!-- Copy screenshots -->
f6b200 759         <mkdir dir="${project.siteTargetDirectory}/screenshots" />
JM 760         <copy todir="${project.siteTargetDirectory}/screenshots">
761             <fileset dir="${project.siteSourceDirectory}/screenshots">
f90dc6 762                 <include name="*.png" />
JM 763             </fileset>
764         </copy>
765
85c2e6 766     </target>
b774de 767
424fe1 768
85c2e6 769     <!--
JM 770         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
f6b200 771         Build all binaries and site
85c2e6 772         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JM 773     -->
f6b200 774     <target name="buildAll" depends="buildAuthority,buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary,buildSite" />        
b774de 775
746aaf 776     
JM 777     <!--
778         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
779         Update the gh-pages branch with the current site
780         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
781     -->
782     <target name="updateGhPages" depends="buildSite">
783         <!-- Build gh-pages branch -->
f6b200 784         <mx:ghpages repositorydir="${basedir}" obliterate="true" />
746aaf 785     </target>
JM 786     
b774de 787
85c2e6 788     <!-- 
JM 789         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
790         Publish binaries to Google Code
791         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
792     -->
f6b200 793     <target name="publishBinaries" depends="clean,buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary" description="Publish the Gitblit binaries to Google Code">
b774de 794
f6b200 795         <echo>Uploading Gitblit ${project.version} binaries</echo>
b774de 796
f6b200 797         <!-- Upload Gitblit GO Windows ZIP file -->
JM 798         <mx:gcupload 
799              sourceFile="${distribution.zipfile}" 
800              targetFile="gitblit-${project.version}.zip"
801              description="Gitblit GO v${project.version} (standalone, integrated Gitblit server for Windows)" />
802
803         <!-- Upload Gitblit GO Linux/Unix tar.gz file -->
804         <mx:gcupload
805              sourceFile="${distribution.tgzfile}" 
806              targetFile="gitblit-${project.version}.tar.gz"
807              description="Gitblit GO v${project.version} (standalone, integrated Gitblit server for Linux/Unix)" />
b774de 808
773bb6 809         <!-- Upload Gitblit WAR file -->
f6b200 810         <mx:gcupload 
JM 811              sourceFile="${distribution.warfile}" 
812              targetFile="gitblit-${project.version}.war"
813              description="Gitblit WAR v${project.version} (standard WAR webapp for servlet containers)" />
b774de 814
773bb6 815         <!-- Upload Gitblit FedClient -->
f6b200 816         <mx:gcupload 
JM 817             sourceFile="${fedclient.zipfile}" 
818             targetFile="fedclient-${project.version}.zip"
819             description="Gitblit Federation Client v${project.version} (command-line tool to clone data from federated Gitblit instances)" />
841651 820
773bb6 821         <!-- Upload Gitblit Manager -->
f6b200 822         <mx:gcupload
JM 823             sourceFile="${manager.zipfile}" 
824             targetFile="manager-${project.version}.zip"
825             description="Gitblit Manager v${project.version} (Swing tool to remotely administer a Gitblit server)" />
4ad1eb 826
773bb6 827         <!-- Upload Gitblit API Library -->
f6b200 828         <mx:gcupload
JM 829             sourceFile="${gbapi.zipfile}" 
830             targetFile="gbapi-${project.version}.zip"
831             description="Gitblit API Library v${project.version} (JSON RPC library to integrate with your software)" />
b774de 832
JM 833         <!-- Upload Gitblit Express for RedHat OpenShift -->
f6b200 834         <mx:gcupload 
JM 835             sourceFile="${express.zipfile}" 
836             targetFile="express-${project.version}.zip"
837             description="Gitblit Express v${project.version} (run Gitblit on RedHat's OpenShift cloud)" />
b774de 838
5450d0 839     </target>
JM 840
b774de 841
85c2e6 842     <!--
JM 843         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
b774de 844         Publish site to site hosting service
85c2e6 845         You must add ext/commons-net-1.4.0.jar to your ANT classpath.
JM 846         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
847     -->
f6b200 848     <target name="publishSite" depends="clean,buildSite,updateGhPages" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)" >
b774de 849
f6b200 850         <echo>Uploading Gitblit ${project.version} website</echo>
b774de 851
81f881 852         <ftp server="${ftp.server}"
JM 853             userid="${ftp.user}"
854             password="${ftp.password}"
855             remotedir="${ftp.dir}"
856             passive="true"
857             verbose="yes">
f6b200 858             <fileset dir="${project.siteTargetDirectory}" />
81f881 859         </ftp>
JM 860     </target>
85c2e6 861
b774de 862
85c2e6 863     <!--
JM 864         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
865         Compile from source, publish binaries, and build & deploy site
866         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
867     -->
f6b200 868     <target name="publishAll" depends="publishBinaries,publishSite" />
JM 869
870     
871     <!--
872         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
873         Tag a new version and prepare for the next development cycle.
874         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
875     -->
876     <target name="tagRelease" depends="prepare">
877         <!-- release -->
878         <property name="dryrun" value="false" />
879         <mx:version stage="release" dryrun="${dryrun}" />        
880         <!-- commit build.moxie & releases.moxie (automatic) -->
881         <mx:commit showtitle="no">
882             <message>Prepare ${project.version} release</message>
883             <tag name="v${project.version}">
884                 <message>${project.name} ${project.version} release</message>
885             </tag>
886         </mx:commit>
887
888         <!-- next cycle -->
889         <mx:version stage="snapshot" incrementNumber="incremental" dryrun="${dryrun}" />
890         <mx:commit showtitle="no">
891             <message>Reset build identifiers for next development cycle</message>
892         </mx:commit>
85c2e6 893     </target>
f6b200 894
JM 895         
896     <!--
897         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
898         Build Gitblit Docs
899         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
900     -->
901     <macrodef name="generateDocs">
902         <attribute name="toDir"/>
903         <sequential>
904             <mx:doc toDir="@{toDir}" minify="true" customless="custom.less">
905                 <structure>
906                     <menu name="about">
907                         <page name="overview" src="siteindex.mkd" out="index.html" headerLinks="false" />
908                         <page name="features" src="features.mkd" />
909                     </menu>
910                     <menu name="documentation">
911                         <page name="setup" src="setup.mkd" />
912                         <page name="federation" src="federation.mkd" />
913                         <divider />
914                         <page name="faq" src="faq.mkd" />
915                         <page name="settings" src="properties.mkd" />
916                         <divider />
917                         <page name="design" src="design.mkd" />
918                         <page name="rpc" src="rpc.mkd" />
919                     </menu>
920                     <menu name="changelog">
921                         <page name="current release" src="releasecurrent.mkd" />
922                         <page name="older releases" src="releasehistory.mkd" />
923                     </menu>
924                     <menu name="links">
724da5 925                         <link name="Gitblit Demo (RELEASE)" src="https://demo-gitblit.rhcloud.com" />
JM 926                         <link name="Gitbilt Next (SNAPSHOT)" src="https://next-gitblit.rhcloud.com" />
f6b200 927                         <divider />
JM 928                         <link name="Github" src="${project.scmUrl}" />
929                         <link name="Issues" src="${project.issuesUrl}" />
930                         <link name="Discussion" src="${project.forumUrl}" />
931                         <link name="Google+" src="${project.socialNetworkUrl}" />
932                         <link name="Ohloh" src="http://www.ohloh.net/p/gitblit" />
933                     </menu>
934                 </structure>
935                 
936                 <properties token="%PROPERTIES%" file="${project.distrib.dir}/data/gitblit.properties" />
937                 
938                 <regex searchPattern="\b(issue)(\s*[#]?|-){0,1}(\d+)\b" replacePattern="&lt;a href='http://code.google.com/p/gitblit/issues/detail?id=$3'&gt;issue $3&lt;/a&gt;" />
939                 
940                 <!-- Set the logo from the mx:doc resources -->
941                 <logo file="${project.resources.dir}/gitblt_25_white.png" />
942                 <favicon file="${project.resources.dir}/gitblt-favicon.png" />
943                 
944                 <resource>
945                     <fileset dir="${project.resources.dir}">
946                         <include name="lock_go_16x16.png" />
947                         <include name="lock_pull_16x16.png" />
948                         <include name="shield_16x16.png" />
949                         <include name="cold_16x16.png" />
950                         <include name="bug_16x16.png" />
951                         <include name="book_16x16.png" />
952                         <include name="blank.png" />
953                         <include name="federated_16x16.png" />
954                         <include name="arrow_page.png" />
955                     </fileset>
956                 </resource>
957             </mx:doc>
958         </sequential>
959     </macrodef>
960     
961     <!--
962         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
963         Macro to create a pristine data directory for the target build
964         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
965     -->
966     <macrodef name="prepareDataDirectory">
967         <attribute name="toDir"/>
968         <sequential>
969             <mkdir dir="@{toDir}" />
970             <copy todir="@{toDir}" overwrite="false">
971                 <fileset dir="${project.distrib.dir}/data">
972                     <include name="users.conf" />
973                     <include name="projects.conf" />
4fb6af 974                     <include name="gitblit.properties" />                    
f6b200 975                 </fileset>
JM 976             </copy>
977             <mkdir dir="@{toDir}/groovy" />
978             <copy todir="@{toDir}/groovy">
979                 <fileset dir="${project.distrib.dir}/data/groovy">                    
980                     <include name="sendmail.groovy" />
981                     <include name="sendmail-html.groovy" />
982                     <include name="jenkins.groovy" />
983                     <include name="protect-refs.groovy" />
984                     <include name="fogbugz.groovy" />
985                     <include name="thebuggenie.groovy" />
986                 </fileset>
987             </copy>
988       </sequential>
989     </macrodef>
990     
991     <!--
992         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
993         Macro to upload binaries to GoogleCode
994         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
995     -->
996     <macrodef name="googleUpload">
997         <attribute name="sourceFile"/>
998         <attribute name="targetFile"/>
999         <attribute name="description"/>
1000         <sequential>
1001             <gcupload 
1002                 username="${googlecode.user}" 
1003                 password="${googlecode.password}" 
1004                 projectname="gitblit" 
1005                 filename="${project.targetDirectory}/@{sourceFile}" 
1006                 targetfilename="@{targetFile}"
1007                 summary="@{description}"
1008                 labels="Featured, Type-Package, OpSys-All" />        
1009          </sequential>
1010     </macrodef>
1011
1012
1013     <!--
1014         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1015         Install Gitblit JAR for usage as Maven module
1016         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1017     -->
1018     <target name="installMaven" depends="compile" description="Install Gitblit JAR as Maven module">
1019         <local name="project.jar" />
1020         <property name="project.jar" value="${project.outputDirectory}/gitblit.jar" />
358545 1021         <property name="resourceFolderPrefix" value="" />
JM 1022         <mx:jar destfile="${project.jar}" includeresources="true" resourceFolderPrefix="${resourceFolderPrefix}" />
f6b200 1023
JM 1024         <exec executable="mvn">
1025             <arg value="install:install-file" />
1026             <arg value="-Dfile=${project.jar}" />
1027             <arg value="-DpomFile=${basedir}/pom.xml" />
1028             <arg value="-DcreateChecksum=true" />
1029         </exec>
1030     </target>
1031
1032     <!--
1033         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1034         Upload Gitblit JAR to remote Maven repository
1035         
1036         build.properties:
1037            project.maven.repo.url = http://whatever.com/maven2
1038            project.maven.repo.id = whateverId
1039         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1040     -->
1041     <target name="uploadMaven" depends="compile" description="Upload Gitblit JAR to remote Maven repository">
1042         <local name="project.jar" />
1043         <property name="project.jar" value="${project.outputDirectory}/gitblit.jar" />
1044         <mx:jar destfile="${project.jar}" includeresources="true" />
1045
1046         <exec executable="mvn">
1047             <arg value="deploy:deploy-file" />
1048             <arg value="-Dfile=${project.jar}" />
1049             <arg value="-DpomFile=${basedir}/pom.xml" />
1050             <arg value="-Durl=${project.maven.repo.url}" />
1051             <arg value="-DrepositoryId=${project.maven.repo.id}" />
1052             <arg value="-DcreateChecksum=true" />
1053         </exec>
1054     </target>                    
764d94 1055 </project>