source: jclic/trunk/fuentes/build.xml @ 3474

Last change on this file since 3474 was 3466, checked in by Juanma, 3 years ago

Updated to 3.2.1

File size: 32.8 KB
Line 
1<?xml version="1.0"?>
2<project name="JClic" basedir="." default="all">
3
4  <!-- =================================================================== -->
5  <!-- INIT                                                                -->
6  <!-- =================================================================== -->
7  <target name="init" 
8          description="Initialize variables and define patterns and filters."> 
9
10    <!-- Variables -->
11    <property name="name"           value="JClic" />   
12    <property name="year"           value="2004-15" />
13   
14    <!-- Set the appropiate values for your certificate keys here,
15         or write them on a text file called ".ant-global.properties",
16         placed in your home directory, using the form "variable=value" -->
17    <property file="${user.home}/.ant-global.properties" />
18    <property name="author" value="Test" />
19    <!-- Check the Java system to determine the appropiate
20         keystore format: Sun JKS (default) or GNU GKR -->
21    <condition property="keystore.format" value="-gkr" else="">
22      <contains string="${java.vm.name}" substring="gcj" casesensitive="false" />
23    </condition>
24    <property name="keystore.dir" location="keystore" />   
25    <property name="keystore.file" value="testcert${keystore.format}.keystore" />
26    <property name="keystore.alias" value="testcert" />
27    <property name="keystore.storepass" value="passwd" />
28    <property name="keystore.keypass" value="passwd" />
29    <property name="keystore.storetype" value="JKS" />
30
31    <property name="src.dir"          location="src" />
32    <property name="ext.dir"          location="extensions" />
33    <property name="lib.dir"          location="lib" />
34    <property name="build.dir"        location="build" />
35    <property name="dist.dir"         location="dist" />
36    <property name="dist.jclic.dir"   location="${dist.dir}/jclic" />
37    <property name="dist.reports.dir" location="${dist.dir}/reports" />
38    <property name="deploy.dir"       location="deploy" />
39    <property name="apidoc.dir"       location="apidoc" />
40
41    <property name="resource.path"    value="edu/xtec/resources" />
42   
43    <!-- JClic is currently targeted to JVM 1.6 -->
44    <property name="javac.source" value="1.6"/>
45    <property name="javac.target" value="1.6"/>
46
47    <!-- Check if "rt.jar" exists in lib/bootstrap/1.6  -->
48    <property name="bootstrap.file" value="${lib.dir}/bootstrap/${javac.target}/rt.jar"/>
49    <condition property="bootstrap.path"
50               value="${bootstrap.file}"
51               else="${java.home}/lib/rt.jar">
52       <available file="${bootstrap.file}"/>     
53    </condition>
54    <property name="bootstrap.arg" value="-Xbootclasspath:${bootstrap.path}"/>
55   
56    <!-- Other compiler options -->
57    <property name="debug"          value="on" />   
58    <property name="deprecation"    value="off" />   
59    <property name="optimize"       value="on" />
60    <property name="encoding"       value="UTF-8" />
61
62    <!-- Custom javac definition -->
63    <presetdef name="ext.javac">
64        <javac debug="${debug}"
65               deprecation="${deprecation}" 
66               optimize="${optimize}"
67               encoding="${encoding}"
68               source="${javac.source}"
69               target="${javac.target}"
70               bootclasspath="${bootstrap.path}"
71               includeAntRuntime="false" >
72               <compilerarg value="-Xlint:unchecked"/>
73               <compilerarg value="${bootstrap.arg}" />
74        </javac>
75    </presetdef>
76   
77    <!-- Custom javac definition - without warnings about generics -->
78    <presetdef name="ext.javac.nogenerics">
79        <javac debug="${debug}"
80               deprecation="${deprecation}" 
81               optimize="${optimize}"
82               encoding="${encoding}"
83               source="${javac.source}"
84               target="${javac.target}"
85               bootclasspath="${bootstrap.path}"
86               includeAntRuntime="false" >
87               <compilerarg value="${bootstrap.arg}" />
88        </javac>
89    </presetdef>
90
91    <!-- Patterns -->
92    <patternset id="images" >
93        <include name="**/*.gif"/>
94        <include name="**/*.jpg"/>
95        <include name="**/*.png"/>
96        <include name="**/*.ttf"/>
97        <include name="**/*.ico"/>
98    </patternset>
99    <patternset id="sounds" >
100        <include name="**/*.wav"/>
101        <include name="**/*.mp3"/>
102        <include name="**/*.au"/>
103        <include name="**/*.aif"/>
104        <include name="**/*.ogg"/>
105    </patternset>   
106    <patternset id="docs" >
107        <include name="**/*.html"/>
108        <include name="**/*.xml"/>
109        <include name="**/*.css"/>
110    </patternset>   
111    <patternset id="xmls" >
112        <include name="**/*.xml"/>
113    </patternset>   
114    <patternset id="props" >
115        <include name="**/*.properties"/>
116    </patternset>
117    <patternset id="serialized" >
118        <include name="**/*.ser"/>
119    </patternset>
120    <patternset id="spi.services" >
121        <include name="META-INF/services/javax.sound.sampled.spi.*"/>
122        <include name="META-INF/services/javax.sound.midi.spi.*"/>
123    </patternset>   
124
125    <!-- Filters -->
126    <filterset id="versionFilterSet">
127        <filtersfile file="project.properties"/>
128    </filterset>
129
130    <!-- Display info -->
131    <echo message="---------------------"/>
132    <echo message="JClic build"/>
133    <echo message="---------------------"/>       
134    <echo message="Using ${ant.version}, in ${ant.home}"/>
135    <echo message="Using Java ${java.version} by ${java.vendor} in ${java.home}"/>
136    <echo message="Generating code for Java ${javac.target}"/>
137    <echo message="Bootstrap: ${bootstrap.path}"/>
138       
139    <!-- Create dirs -->
140    <mkdir dir="${dist.dir}"/>
141    <mkdir dir="${build.dir}"/>
142  </target>
143
144  <!-- =================================================================== -->
145  <!-- MAIN                                                                -->
146  <!-- =================================================================== -->
147  <target name="all" 
148          depends="dist" 
149          description="Builds JClic JAR files">
150    <echo message="*** JClic has been successfully compiled!"/>
151    <echo message="Unsigned JAR files have been created in: ${dist.jclic.dir}"/>
152    <echo message="Run 'ant sign' to digitally sign the JAR files"/>
153    <echo message="Run 'ant webapp' to build the WAR and EAR files needed to run JClicReports as a servlet"/>
154    <echo message="Run 'ant javadoc' to build the JClic API docs"/>
155  </target>
156
157  <!-- =================================================================== -->
158  <!-- DIST                                                               -->
159  <!-- =================================================================== -->
160  <target name="dist" 
161          depends="jclicplayer,jclicauthor,jclicreports" 
162          description="Prepare distribution">
163 
164    <!-- Workaround to avoid "Modified in the future" warnings -->
165    <sleep seconds="2" />
166    <mkdir dir="${dist.jclic.dir}"/>
167    <copy todir="${dist.jclic.dir}">
168        <fileset dir="${build.dir}" includes="*.jar" />
169    </copy>       
170  </target>
171
172  <!-- =================================================================== -->
173  <!-- SIGN                                                               -->
174  <!-- =================================================================== -->
175  <target name="sign" 
176          depends="sign.with.tsa" 
177          unless="keystore.tsa"
178          description="Digital signature of the JAR files, without TSA">
179 
180    <echo message="Signing with key &quot;${keystore.alias}&quot; in ${keystore.dir}/${keystore.file}"/>
181
182    <!-- Signing the .jar files with ${keystore.dir}/${keystore.file}"  -->
183    <!-- See keystore/readme.txt -->
184    <signjar keystore="${keystore.dir}/${keystore.file}"
185             alias="${keystore.alias}" 
186             storepass="${keystore.storepass}"
187             storetype="${keystore.storetype}"
188             keypass="${keystore.keypass}"
189             lazy="true">
190        <fileset dir="${dist.jclic.dir}" includes="*.jar" />
191    </signjar>
192
193    <echo message="*** JClic files have been digitally signed with &quot;${keystore.alias}&quot;"/>
194    <echo message="Signed JAR files are located in: ${dist.jclic.dir}"/>
195
196  </target>
197
198  <target name="sign.with.tsa" 
199          depends="dist" 
200          if="keystore.tsa"
201          description="Digital signature of the JAR files using a TSA URL">
202
203    <echo message="Signing with key &quot;${keystore.alias}&quot; in ${keystore.dir}/${keystore.file}"/>
204    <signjar keystore="${keystore.dir}/${keystore.file}"
205             alias="${keystore.alias}" 
206             storepass="${keystore.storepass}"
207             storetype="${keystore.storetype}"
208             keypass="${keystore.keypass}"
209             tsaurl="${keystore.tsa}"
210             lazy="true">
211        <fileset dir="${dist.jclic.dir}" includes="*.jar" />
212    </signjar>
213    <echo message="*** JClic files have been digitally signed with &quot;${keystore.alias}&quot;"/>
214    <echo message="Signed JAR files are located in: ${dist.jclic.dir}"/>
215  </target>
216
217  <!-- =================================================================== -->
218  <!-- CLEAN                                                               -->
219  <!-- =================================================================== -->
220  <target name="clean" 
221          depends="init" 
222          description="Clean build dir">
223    <delete dir="${build.dir}" />
224    <echo message="*** Build dir cleared!"/>
225  </target>
226 
227  <!-- =================================================================== -->
228  <!-- LAUNCH PLAYER                                                       -->
229  <!-- =================================================================== -->
230  <target name="launchPlayer" 
231          depends="jclicplayer,dist" 
232          description="Launch JClic player">
233    <echo message="Launching JClicPlayer..."/>
234    <java jar="${dist.jclic.dir}/jclic.jar" fork="true" />
235    <echo message="JClicPlayer finished"/>
236  </target>
237
238  <!-- =================================================================== -->
239  <!-- LAUNCH AUTHOR                                                       -->
240  <!-- =================================================================== -->
241  <target name="launchAuthor" 
242          depends="jclicauthor,dist" 
243          description="Launch JClic author">
244    <echo message="Launching JClicAuthor..."/>
245    <java jar="${dist.jclic.dir}/jclicauthor.jar" fork="true" />
246    <echo message="JClicAuthor finished"/>
247  </target>
248
249  <!-- =================================================================== -->
250  <!-- LAUNCH REPORTS SERVER                                               -->
251  <!-- =================================================================== -->
252  <target name="launchReports" 
253          depends="jclicreports,dist" 
254          description="Launch JClic reports server">
255    <echo message="Launching JClic reports server..."/>
256    <java jar="${dist.jclic.dir}/jclicreports.jar" fork="true" />
257    <echo message="JClic reports server finished"/>
258  </target>
259
260  <!-- =================================================================== -->
261  <!-- JAVADOC                                                             -->
262  <!-- =================================================================== -->
263  <target name="javadoc" 
264          depends="all" 
265          description="Generate JClic JavaDoc">
266    <delete dir="${apidoc.dir}" />
267    <mkdir dir="${apidoc.dir}"/>
268    <javadoc packagenames="edu.xtec.*" 
269             destdir="${apidoc.dir}" 
270             author="true" 
271             version="true" 
272             use="true" 
273             splitindex="true" 
274             noindex="false" 
275             windowtitle="${name} API" 
276             doctitle="${name}">
277             <bottom><![CDATA[<p>Copyright &#169; ${year} Francesc Busquets (<a href="mailto:fbusquets@xtec.cat">fbusquets@xtec.cat</a>) &amp; Departament d'Educaci&oacute; de la Generalitat de Catalunya (<a href="mailto:info@xtec.cat">info@xtec.cat</a>)<br>Licensed under the terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</a>.</p>]]></bottom>
278             <sourcepath>
279               <pathelement location="${src.dir}/activities"/>
280               <pathelement location="${src.dir}/author"/>
281               <pathelement location="${src.dir}/core"/>
282               <pathelement location="${src.dir}/interface"/>
283               <pathelement location="${src.dir}/jclicApplet"/>
284               <pathelement location="${src.dir}/jclicPlayer"/>
285               <pathelement location="${src.dir}/player"/>
286               <pathelement location="${src.dir}/utilities"/>
287               <pathelement location="${src.dir}/shapers"/>
288               <pathelement location="${src.dir}/qt61"/>
289             </sourcepath>
290             <classpath>
291               <pathelement location="${build.dir}/jdom"/>
292               <pathelement location="${build.dir}/jdom2"/>
293               <pathelement location="${build.dir}/json"/>
294               <pathelement location="${build.dir}/dbconn"/>
295               <pathelement location="${build.dir}/soundspi"/>
296               <pathelement location="${build.dir}/image4j"/>
297               <pathelement location="${build.dir}/lib/jmf-api"/>
298               <pathelement location="${build.dir}/lib/qtjava-api"/>               
299             </classpath>
300             <excludepackage name="edu.xtec.resources.messages" />
301             <group title="Activities"
302                    packages="edu.xtec.jclic.activities*" />
303             <group title="Automation"
304                    packages="edu.xtec.jclic.automation*" />
305             <group title="Report system" >
306                    <package name="edu.xtec.jclic.report*"/>
307             </group>
308             <group title="Utilities" >
309                    <package name="edu.xtec.util*"/>
310                    <package name="edu.xtec.jclic.misc*"/>
311                    <package name="edu.xtec.jclic.beans*" />
312             </group>
313             <group title="Core" >
314                    <package name="edu.xtec.jclic*"/>
315             </group>
316             
317             <link href="http://docs.oracle.com/javase/1.6.0/docs/api/" />
318             <link href="http://docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/media/jmf/2.1.1/apidocs/" />
319             <link href="http://www.jdom.org/docs/apidocs.1.1/" />
320             <link href="http://image4j.sourceforge.net/javadoc/" />
321    </javadoc>
322
323    <echo message="*** JClic API documentation has been created in: ${apidoc.dir}"/>
324
325  </target>
326
327  <!-- =================================================================== -->
328  <!-- JDOM (was JCLICXML)                                                 -->
329  <!-- =================================================================== -->
330  <target name="jdom" 
331          depends="init"
332          description="Builds the JDOM library">
333    <mkdir dir="${build.dir}/jdom"/>
334
335    <!-- Compilation of JDOM 1.0 without XPATH-->
336    <ext.javac.nogenerics destdir="${build.dir}/jdom" >
337           <src path="${ext.dir}/xml/jdom-1.0/src" />
338           <src path="${ext.dir}/xml/customJdom-1.0/src" />
339           <exclude name="org/jdom/xpath/**/*"/>
340    </ext.javac.nogenerics>
341  </target>
342   
343  <!-- =================================================================== -->
344  <!-- JSON                                                              -->
345  <!-- =================================================================== -->
346  <target name="json" 
347          depends="init"
348          description="Builds the JSON-Java library">
349    <mkdir dir="${build.dir}/json"/>
350    <ext.javac.nogenerics srcdir="${ext.dir}/json/src" 
351               destdir="${build.dir}/json" />
352  </target>
353
354  <!-- =================================================================== -->
355  <!-- DBCONN                                                              -->
356  <!-- =================================================================== -->
357  <target name="dbconn" 
358          depends="init"
359          description="Builds a database connection pool interface">
360    <mkdir dir="${build.dir}/dbconn"/>
361    <ext.javac srcdir="${ext.dir}/dbconn/src" 
362               destdir="${build.dir}/dbconn" />
363  </target>
364 
365  <!-- =================================================================== -->
366  <!-- SOUNDSPI                                                            -->
367  <!-- =================================================================== -->
368  <target name="soundspi" 
369          depends="init"
370          description="Builds the sound library">
371    <mkdir dir="${build.dir}/soundspi"/>
372    <ext.javac.nogenerics destdir="${build.dir}/soundspi" >
373        <src path="${ext.dir}/soundspi/tritonus/src" />
374        <src path="${ext.dir}/soundspi/javalayer/src" />
375        <src path="${ext.dir}/soundspi/MpegAudioSPI/src" />
376        <src path="${ext.dir}/soundspi/jorbis/src" />     
377    </ext.javac.nogenerics>
378    <copy todir="${build.dir}/soundspi">
379        <fileset dir="${ext.dir}/soundspi/javalayer/src">
380            <patternset refid="serialized" />
381        </fileset>           
382        <fileset dir="${ext.dir}/soundspi/catalog">
383            <patternset refid="spi.services" />
384        </fileset>           
385    </copy>
386  </target> 
387 
388  <!-- =================================================================== -->
389  <!-- IMAGE4J                                                             -->
390  <!-- =================================================================== -->
391  <target name="image4j" 
392          depends="init"
393          description="Builds the image4j library">
394    <mkdir dir="${build.dir}/image4j"/>
395    <ext.javac srcdir="${ext.dir}/img/image4j/src" 
396               destdir="${build.dir}/image4j" />
397  </target>
398
399  <!-- =================================================================== -->
400  <!-- EXTRA                                                               -->
401  <!-- =================================================================== -->
402  <target name="extra" 
403          depends="init"
404          description="Builds a package with skins and other extra content, not used by the applet">
405    <mkdir dir="${build.dir}/extra"/>
406    <mkdir dir="${build.dir}/extra/${resource.path}"/>
407    <copy todir="${build.dir}/extra/${resource.path}">
408        <fileset dir="${src.dir}/extra/${resource.path}">
409            <patternset refid="images" />
410            <patternset refid="sounds" />
411            <patternset refid="docs" />
412            <patternset refid="props" />
413        </fileset>           
414    </copy>       
415  </target>
416 
417  <!-- =================================================================== -->
418  <!-- UTILITIES                                                           -->
419  <!-- =================================================================== -->
420  <target name="utilities" 
421          depends="jdom"
422          description="Builds the utilities">
423    <mkdir dir="${build.dir}/utilities"/>
424    <mkdir dir="${build.dir}/utilities/${resource.path}"/>
425    <copy todir="${build.dir}/utilities/${resource.path}">
426        <fileset dir="${src.dir}/utilities/${resource.path}">
427            <patternset refid="images" />
428            <patternset refid="sounds" />
429            <patternset refid="docs" />
430            <patternset refid="props" />
431        </fileset>           
432    </copy>       
433    <ext.javac srcdir="${src.dir}/utilities" 
434               destdir="${build.dir}/utilities" >
435        <classpath>
436            <pathelement location="${build.dir}/jdom" />
437            <pathelement location="${src.dir}/core" />
438        </classpath>
439    </ext.javac>
440  </target>
441 
442  <!-- =================================================================== -->
443  <!-- JMF-API                                                             -->
444  <!-- =================================================================== -->
445  <target name="jmf-api"
446          depends="init"
447          description="Builds an empty interface for Java Media Framework">
448    <mkdir dir="${build.dir}/lib/jmf-api"/>
449    <ext.javac srcdir="${lib.dir}/jmf-api/src" 
450               destdir="${build.dir}/lib/jmf-api" />
451  </target>
452 
453  <!-- =================================================================== -->
454  <!-- CORE                                                                -->
455  <!-- =================================================================== -->
456  <target name="core" 
457          depends="utilities,image4j,soundspi,jmf-api,qtjava-api,dbconn,json"
458          description="Builds the main component of JClic">
459    <mkdir dir="${build.dir}/jclic"/>
460
461    <mkdir dir="${build.dir}/jclic/${resource.path}"/>   
462    <copy todir="${build.dir}/jclic/${resource.path}">
463        <fileset dir="${src.dir}/core/${resource.path}">
464            <patternset refid="images" />
465            <patternset refid="sounds" />
466            <patternset refid="docs" />
467        </fileset>           
468        <fileset dir="${src.dir}/activities/${resource.path}">
469            <patternset refid="images" />
470            <patternset refid="sounds" />
471            <patternset refid="docs" />
472            <patternset refid="props" />
473        </fileset>           
474        <fileset dir="${src.dir}/player/${resource.path}">
475            <patternset refid="images" />
476            <patternset refid="sounds" />
477            <patternset refid="docs" />
478            <patternset refid="props" />
479        </fileset>           
480    </copy>
481
482    <copy todir="${build.dir}/jclic/${resource.path}">
483        <filterset refid="versionFilterSet"/>
484        <fileset dir="${src.dir}/core/${resource.path}">
485            <patternset refid="props" />
486        </fileset>           
487    </copy>   
488
489    <ext.javac destdir="${build.dir}/jclic" >
490        <src path="${src.dir}/core" />
491        <src path="${src.dir}/interface" />
492        <src path="${src.dir}/qt61"/>
493        <src path="${src.dir}/activities"/>
494        <src path="${src.dir}/player"/>
495        <classpath>
496            <pathelement location="${build.dir}/jdom"/>
497            <pathelement location="${build.dir}/json"/>
498            <pathelement location="${build.dir}/dbconn"/>
499            <pathelement location="${build.dir}/utilities"/>
500            <pathelement location="${build.dir}/image4j"/>
501            <pathelement location="${build.dir}/lib/jmf-api"/>
502            <pathelement location="${build.dir}/lib/qtjava-api"/>
503            <pathelement location="${build.dir}/soundspi"/>
504        </classpath>
505    </ext.javac>
506  </target>
507
508  <!-- =================================================================== -->
509  <!-- QTJAVA-API                                                          -->
510  <!-- =================================================================== -->
511  <target name="qtjava-api"
512          depends="init"
513          description="Builds an empty interface for QuickTime forJava 6.1">
514    <mkdir dir="${build.dir}/lib/qtjava-api"/>
515    <ext.javac srcdir="${lib.dir}/qtjava-api/src" 
516               destdir="${build.dir}/lib/qtjava-api" />
517  </target>
518       
519  <!-- =================================================================== -->
520  <!-- JCLIC PLAYER                                                        -->
521  <!-- =================================================================== -->
522  <target name="jclicplayer" 
523          depends="core,extra,jclicapplet"
524          description="Builds the jclic.jar component">
525
526    <mkdir dir="${build.dir}/jclicPlayer"/>
527    <mkdir dir="${build.dir}/jclicPlayer/${resource.path}"/>
528    <copy todir="${build.dir}/jclicPlayer/${resource.path}">
529        <fileset dir="${src.dir}/jclicPlayer/${resource.path}">
530            <patternset refid="images" />
531            <patternset refid="sounds" />
532            <patternset refid="docs" />
533            <patternset refid="props" />
534        </fileset>           
535    </copy>       
536
537    <ext.javac srcdir="${src.dir}/jclicPlayer" 
538               destdir="${build.dir}/jclicPlayer" >
539        <classpath>
540            <pathelement location="${build.dir}/jclic" />
541            <pathelement location="${build.dir}/utilities" />
542        </classpath>
543    </ext.javac>
544
545    <jar jarfile="${build.dir}/jclic.jar">
546        <manifest>
547            <attribute name="Built-By" 
548                       value="${user.name}"/>
549            <attribute name="Main-Class" 
550                       value="JClicPlayer"/>
551            <attribute name="Class-Path" 
552                       value="."/>
553            <attribute name="Permissions" 
554                       value="all-permissions"/>
555            <attribute name="Codebase" 
556                       value="*"/>
557            <attribute name="Application-Name" 
558                       value="JClic"/>
559        </manifest>
560         <fileset dir="${build.dir}/jclicPlayer" />
561         <fileset dir="${build.dir}/jclicApplet" />         
562         <fileset dir="${build.dir}/jclic" />
563         <fileset dir="${build.dir}/jdom" />
564         <fileset dir="${build.dir}/json" />
565         <fileset dir="${build.dir}/utilities" />
566         <fileset dir="${build.dir}/extra" />
567         <fileset dir="${build.dir}/dbconn" />         
568         <fileset dir="${build.dir}/soundspi" />
569         <fileset dir="${build.dir}/image4j" />
570    </jar>
571  </target> 
572 
573  <!-- =================================================================== -->
574  <!-- JCLICAPPLET                                                         -->
575  <!-- =================================================================== -->
576  <target name="jclicapplet" 
577          depends="core,soundspi"
578          description="Builds the JClic applet">
579    <mkdir dir="${build.dir}/jclicApplet"/>
580    <mkdir dir="${build.dir}/jclicApplet/${resource.path}"/>
581    <copy todir="${build.dir}/jclicApplet/${resource.path}">
582        <fileset dir="${src.dir}/jclicApplet/${resource.path}">
583            <patternset refid="images" />
584            <patternset refid="sounds" />
585            <patternset refid="docs" />
586            <patternset refid="props" />
587        </fileset>           
588    </copy>       
589
590    <ext.javac srcdir="${src.dir}/jclicApplet" 
591               destdir="${build.dir}/jclicApplet" >
592        <classpath>
593            <pathelement location="${build.dir}/jclic" />
594            <pathelement location="${build.dir}/utilities" />
595        </classpath>
596    </ext.javac>
597  </target>
598 
599  <!-- =================================================================== -->
600  <!-- JCLICAUTHOR                                                         -->
601  <!-- =================================================================== -->
602  <target name="jclicauthor" 
603          depends="jclicplayer"
604          description="Builds the jclicauthor.jar component">
605    <mkdir dir="${build.dir}/author"/>
606    <mkdir dir="${build.dir}/author/${resource.path}"/>
607    <copy todir="${build.dir}/author/${resource.path}">
608        <fileset dir="${src.dir}/author/${resource.path}">
609            <patternset refid="images" />
610            <patternset refid="sounds" />
611            <patternset refid="docs" />
612        </fileset>           
613        <fileset dir="${src.dir}/shapers/${resource.path}">
614            <patternset refid="images" />
615            <patternset refid="props" />
616        </fileset>           
617    </copy>       
618    <copy todir="${build.dir}/author/${resource.path}">
619        <filterset refid="versionFilterSet"/>
620        <fileset dir="${src.dir}/author/${resource.path}">
621            <patternset refid="props" />
622        </fileset>           
623    </copy>   
624
625    <ext.javac destdir="${build.dir}/author" >
626        <src path="${src.dir}/author"/>
627        <src path="${src.dir}/shapers"/>
628        <classpath>
629            <pathelement location="${build.dir}/jclic.jar"/>
630        </classpath>
631    </ext.javac>
632
633    <jar jarfile="${build.dir}/jclicauthor.jar">
634        <manifest>
635            <attribute name="Built-By" 
636                       value="${user.name}"/>
637            <attribute name="Main-Class" 
638                       value="JClicAuthor"/>
639            <attribute name="Class-Path" 
640                       value=". jclic.jar"/>
641            <attribute name="Permissions" 
642                       value="all-permissions"/>
643            <attribute name="Codebase" 
644                       value="*"/>
645            <attribute name="Application-Name" 
646                       value="JClic Author"/>
647        </manifest>
648        <fileset dir="${build.dir}/author" />
649    </jar>
650  </target>
651   
652  <!-- =================================================================== -->
653  <!-- SERVLET API                                                         -->
654  <!-- =================================================================== -->
655  <target name="servlet-api"
656          depends="init"
657          description="Builds the servlet API">
658    <mkdir dir="${build.dir}/lib/servlet-api"/>
659    <ext.javac srcdir="${lib.dir}/servlet-api/src" 
660               destdir="${build.dir}/lib/servlet-api" />
661  </target>
662
663  <!-- =================================================================== -->
664  <!-- JCLIC REPORTS                                                        -->
665  <!-- =================================================================== -->
666  <target name="jclicreports" 
667          depends="core,servlet-api"
668          description="Builds the autonomous JClic reports server">
669    <mkdir dir="${build.dir}/jclicreports"/>
670    <copy todir="${build.dir}/jclicreports">
671        <fileset dir="${src.dir}/report/reportServer">
672            <patternset refid="images" />
673            <patternset refid="docs" />
674        </fileset>           
675        <fileset dir="${src.dir}/report/reportServlets">
676            <patternset refid="images" />
677            <patternset refid="docs" />
678            <patternset refid="props" />
679        </fileset>           
680    </copy>       
681    <copy todir="${build.dir}/jclicreports">
682        <filterset refid="versionFilterSet"/>
683        <fileset dir="${src.dir}/report/reportServer">
684            <patternset refid="props" />
685        </fileset>           
686    </copy>       
687
688    <ext.javac destdir="${build.dir}/jclicreports" >
689        <src path="${src.dir}/report/reportServer"/>
690        <src path="${src.dir}/report/reportServlets"/>
691        <classpath>
692            <pathelement location="${build.dir}/utilities"/>
693            <pathelement location="${build.dir}/jclic"/>
694            <pathelement location="${build.dir}/lib/servlet-api"/>
695            <pathelement location="${build.dir}/jdom"/>
696            <pathelement location="${build.dir}/dbconn"/>
697        </classpath>
698    </ext.javac>
699
700    <jar jarfile="${build.dir}/jclicreports.jar">
701        <manifest>
702            <attribute name="Built-By" 
703                       value="${user.name}"/>
704            <attribute name="Main-Class" 
705                       value="ReportServer"/>
706            <attribute name="Class-Path" 
707                       value=". jclic.jar"/>
708            <attribute name="Permissions" 
709                       value="all-permissions"/>
710            <attribute name="Codebase" 
711                       value="*"/>
712            <attribute name="Application-Name" 
713                       value="JClic Reports"/>
714        </manifest>
715        <fileset dir="${build.dir}/jclicreports" />
716    </jar>
717  </target>
718
719  <!-- =================================================================== -->
720  <!-- JCLIC REPORTS WEB APP                                               -->
721  <!-- =================================================================== -->
722  <target name="webapp" 
723          depends="jclicreports"
724          description="Builds the WAR and EAR versions of the JClic reports server, suitable for Tomcat or other J2EE application server">
725    <mkdir dir="${dist.reports.dir}"/>
726    <mkdir dir="${build.dir}/webapp/WEB-INF/classes"/>
727    <copy todir="${build.dir}/webapp">
728        <fileset dir="${src.dir}/report/reportServlets/edu/xtec/resources/html">
729            <patternset refid="images" />
730            <patternset refid="docs" />
731        </fileset>
732    </copy> 
733    <copy file="${src.dir}/report/webApp/index.html" todir="${build.dir}/webapp"/>   
734
735    <ext.javac destdir="${build.dir}/webapp/WEB-INF/classes" >
736        <src path="${src.dir}/report/webApp/WEB-INF/classes"/>
737        <classpath>
738            <pathelement location="${build.dir}/jclicreports.jar"/>
739            <pathelement location="${build.dir}/jclic.jar"/>
740            <pathelement location="${build.dir}/lib/servlet-api"/>
741        </classpath>
742    </ext.javac>
743
744    <!-- workaround to avoid the 2-seconds granularity value set by the "war" ant task (see ant's manual)-->
745    <sleep seconds="3" />   
746    <war destfile="${dist.reports.dir}/jclicreports.war" 
747         basedir="${build.dir}/webapp"
748         webxml="${src.dir}/report/webApp/WEB-INF/web.xml" >
749        <manifest>
750            <attribute name="Built-By" 
751                       value="${user.name}"/>
752        </manifest>
753        <lib dir="${build.dir}">
754            <include name="jclicreports.jar" />
755            <include name="jclic.jar" />
756        </lib>
757    </war>
758    <sleep seconds="3" />   
759    <ear destfile="${dist.reports.dir}/jclicreports.ear" 
760         appxml="${deploy.dir}/reports/xml/application.xml">
761        <manifest>
762            <attribute name="Built-By" 
763                       value="${user.name}"/>
764        </manifest>
765        <fileset dir="${dist.reports.dir}" includes="*.war"/>
766    </ear>
767
768    <echo message="*** JClic WAR and EAR files have been created in: ${dist.reports.dir}"/>
769
770  </target>
771
772</project>
Note: See TracBrowser for help on using the repository browser.