]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-52_1/build.xml
Clean up imports.
[Dictionary.git] / jars / icu4j-52_1 / build.xml
1 <!--
2 *******************************************************************************
3 * Copyright (C) 1997-2013, International Business Machines Corporation and    *
4 * others. All Rights Reserved.                                                *
5 *******************************************************************************
6 -->
7 <project name="icu4j" default="jar" basedir=".">
8     <property file="build-local.properties"/>
9     <property file="build.properties"/>
10
11     <property name="shared.dir" value="main/shared"/>
12     <import file="${shared.dir}/build/common-targets.xml"/>
13
14     <property environment="env"/>
15
16     <!-- icu4j binaries -->
17     <property name="icu4j.jar.file" value="icu4j.jar"/>
18     <property name="icu4jtests.jar.file" value="icu4jtests.jar"/>
19     <property name="icu4j-charset.jar.file" value="icu4j-charset.jar"/>
20     <property name="icu4j-localespi.jar.file" value="icu4j-localespi.jar"/>
21
22     <property name="icu4jdemos.jar.file" value="icu4jdemos.jar"/>
23
24     <!-- icu4j API doc jar file -->
25     <property name="icu4jdocs.jar.file" value="icu4j-docs.jar"/>
26
27     <!-- icu4j src jar files -->
28     <property name="icu4j-src.jar.file" value="icu4j-src.jar"/>
29     <property name="icu4j-charset-src.jar.file" value="icu4j-charset-src.jar"/>
30     <property name="icu4j-localespi-src.jar.file" value="icu4j-localespi-src.jar"/>
31
32     <!-- icu4j source package archive files -->
33     <property name="icu4jsrc.zip.file" value="icu4j.zip"/>
34     <property name="icu4jsrc.tgz.file" value="icu4j.tgz"/>
35
36     <!-- icu4j versioned release files -->
37     <property name="icu4j.jar.versioned.file" value="icu4j-${release.file.ver}.jar"/>
38     <property name="icu4j-charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}.jar"/>
39     <property name="icu4j-localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}.jar"/>
40
41     <property name="icu4j-src.jar.versioned.file" value="icu4j-${release.file.ver}-src.jar"/>
42     <property name="icu4j-charset-src.jar.versioned.file" value="icu4j-charset-${release.file.ver}-src.jar"/>
43     <property name="icu4j-localespi-src.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-src.jar"/>
44
45     <property name="icu4jdocs.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/>
46
47     <!-- <property name="icu4jsrc.zip.versioned.file" value="icu4j-${release.file.ver}.zip"/> -->
48     <property name="icu4jsrc.tgz.versioned.file" value="icu4j-${release.file.ver}.tgz"/>
49
50     <!-- API doc -->
51     <property name="icu4j.api.doc.title" value="ICU4J ${api.doc.version} API Specification"/>
52     <property name="icu4j.api.doc.window.title" value="ICU4J ${api.doc.version}"/>
53     <property name="icu4j.api.doc.header" value="ICU4J ${api.doc.version}"/>
54     <property name="icu4j.api.doc.jdk.link" value="http://docs.oracle.com/javase/7/docs/api/"/>
55
56     <!-- directories -->
57     <property name="release.dir" value="release"/>
58     <property name="doc.dir" value="doc"/>
59     <property name="cldr.util.out.dir" value="${out.dir}/cldr_util"/>
60     <property name="cldr.release.dir" value="release_cldr"/>
61
62     <!-- Java version check -->
63     <condition property="is.java6.plus">
64         <or>
65             <contains string="${java.version}" substring="1.6."/>
66             <contains string="${java.version}" substring="1.7."/>
67             <contains string="${java.version}" substring="1.8."/>
68         </or>
69     </condition>
70     <condition property="is.java5">
71         <contains string="${java.version}" substring="1.5."/>
72     </condition>
73     <fail message="The JDK version is too old or unknown.">
74         <condition>
75             <not>
76                 <or>
77                     <isset property="is.java6.plus"/>
78                     <isset property="is.java5"/>
79                 </or>
80              </not>
81         </condition>
82     </fail>
83
84     <condition property="is.java7.plus">
85         <or>
86             <contains string="${java.version}" substring="1.7."/>
87             <contains string="${java.version}" substring="1.8."/>
88         </or>
89     </condition>
90
91     <!-- Build environment info -->
92     <property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/>
93     <target name="info" description="Display the build environment information">
94         <echo message="----- Build Environment Information -------------------"/>
95         <echo message="Java Home:    ${java.home}"/>
96         <echo message="Java Version: ${java.version}"/>
97         <echo message="Ant Home:     ${ant.home}"/>
98         <echo message="Ant Version:  ${ant.version}"/>
99         <echo message="OS:           ${os.name}"/>
100         <echo message="OS Version:   ${os.version}"/>
101         <echo message="OS Arch:      ${os.arch}"/>
102         <echo message="Host:         ${env.COMPUTERNAME}"/>
103         <echo message="-------------------------------------------------------"/>
104     </target>
105
106     <target name="clean" description="Clean up build outputs">
107         <ant dir="${icu4j.core.dir}" target="clean" inheritAll="false"/>
108         <ant dir="${icu4j.collate.dir}" target="clean" inheritAll="false"/>
109         <ant dir="${icu4j.charset.dir}" target="clean" inheritAll="false"/>
110         <ant dir="${icu4j.currdata.dir}" target="clean" inheritAll="false"/>
111         <ant dir="${icu4j.langdata.dir}" target="clean" inheritAll="false"/>
112         <ant dir="${icu4j.localespi.dir}" target="clean" inheritAll="false"/>
113         <ant dir="${icu4j.regiondata.dir}" target="clean" inheritAll="false"/>
114         <ant dir="${icu4j.translit.dir}" target="clean" inheritAll="false"/>
115         <ant dir="${icu4j.test-framework.dir}" target="clean" inheritAll="false"/>
116         <ant dir="${icu4j.core-tests.dir}" target="clean" inheritAll="false"/>
117         <ant dir="${icu4j.collate-tests.dir}" target="clean" inheritAll="false"/>
118         <ant dir="${icu4j.charset-tests.dir}" target="clean" inheritAll="false"/>
119         <ant dir="${icu4j.localespi-tests.dir}" target="clean" inheritAll="false"/>
120         <ant dir="${icu4j.packaging-tests.dir}" target="clean" inheritAll="false"/>
121         <ant dir="${icu4j.translit-tests.dir}" target="clean" inheritAll="false"/>
122         <ant dir="${icu4j.build-tools.dir}" target="clean" inheritAll="false"/>
123         <ant dir="${icu4j.tools.dir}" target="clean" inheritAll="false"/>
124         <ant dir="${icu4j.demos.dir}" target="clean" inheritAll="false"/>
125         <ant dir="${icu4j.samples.dir}" target="clean" inheritAll="false"/>
126         <ant dir="${icu4j.perf.dir}" target="clean" inheritAll="false"/>
127
128         <!-- delete all .jar files root directory -->
129         <delete>
130             <fileset dir="." includes="icu4j*.jar"/>
131         </delete>
132
133         <delete dir="${release.dir}"/>
134         <delete dir="${doc.dir}"/>
135         <delete dir="${out.dir}"/>
136         <delete dir="${module.dir}"/>
137         <delete dir="${cldr.release.dir}"/>
138
139         <available file="eclipse-build" type="dir" property="eclipse-build.dir.present"/>
140         <antcall target="_clean.eclipse-build"/>
141     </target>
142
143     <target name="_clean.eclipse-build" if="eclipse-build.dir.present">
144         <ant dir="eclipse-build" target="clean" inheritAll="false"/>
145     </target>
146
147     <!-- meta build targets -->
148     <target name="all" depends="info, main, tests, build-tools, tools, demos, samples, perf, jar, docs" description="Build all primary targets"/>
149     <target name="main" depends="info, core, collate, charset, currdata, langdata, regiondata, translit, localespi" description="Build ICU4J runtime library classes"/>
150     <target name="tests" depends="info, core-tests, charset-tests, collate-tests, packaging-tests, translit-tests, localespi-tests" description="Build ICU4J test classes"/>
151
152     <target name="secure" depends="icu4jJar" description="(Deprecated)Build ICU4J API and test classes for running the ICU4J test suite with Java security manager enabled"/>
153     
154     <!-- Check to see if JVM_OPTIONS enviroment variable is set. This can be use to set the heap size. -->
155     <property name="env.JVM_OPTIONS" value=""/>
156     <property name="jvm_options" value="${env.JVM_OPTIONS}"/>
157     <target name="check" description="Run the standard ICU4J test suite">
158         <antcall target="_runCheck">
159             <param name="runcheck.arg" value="-n"/>
160             <param name="runcheck.jvmarg" value="${jvm_options} -ea"/>
161         </antcall>
162     </target>
163
164     <target name="exhaustiveCheck" description="Run the standard ICU4J test suite in exhaustive mode">
165         <antcall target="_runCheck">
166             <param name="runcheck.arg" value="-n -e10"/>
167             <param name="runcheck.jvmarg" value="${jvm_options} -ea"/>
168         </antcall>
169     </target>
170
171     <target name="timeZoneCheck" description="Run the complete test for TimeZoneRoundTripAll">
172         <antcall target="_runCheck">
173             <param name="runcheck.arg" value="-n -prop:TimeZoneRoundTripAll=true Core/Format/DateFormat/TimeZoneFormatTest -v"/>
174             <param name="runcheck.jvmarg" value="${jvm_options}"/>
175         </antcall>
176     </target>
177
178     <target name="jdktzCheck" description="Run the standard ICU4J test suite with JDK TimeZone">
179         <antcall target="_runCheck">
180             <param name="runcheck.arg" value="-n"/>
181             <param name="runcheck.jvmarg" value="${jvm_options} -Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=JDK"/>
182         </antcall>
183     </target>
184
185     <target name="_runCheck" depends="main, tests">
186         <echo message="JVM argument:   ${runcheck.jvmarg} -Djava.awt.headless=true"/>
187         <echo message="Test argument:   ${runcheck.arg}"/>
188
189         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
190             <arg line="${runcheck.arg}"/>
191             <jvmarg line="${runcheck.jvmarg} -Djava.awt.headless=true"/>
192             <classpath>
193                 <pathelement path="${icu4j.core.jar}"/>
194                 <pathelement path="${icu4j.collate.jar}"/>
195                 <pathelement path="${icu4j.charset.jar}"/>
196                 <pathelement path="${icu4j.currdata.jar}"/>
197                 <pathelement path="${icu4j.langdata.jar}"/>
198                 <pathelement path="${icu4j.regiondata.jar}"/>
199                 <pathelement path="${icu4j.translit.jar}"/>
200                 <pathelement path="${icu4j.test-framework.jar}"/>
201                 <pathelement path="${icu4j.core-tests.jar}"/>
202                 <pathelement path="${icu4j.collate-tests.jar}"/> 
203                 <pathelement path="${icu4j.charset-tests.jar}"/>
204                 <pathelement path="${icu4j.translit-tests.jar}"/>
205             </classpath>
206         </java>
207     </target>
208
209     <target name="_runTestArgCheck" unless="testarg">
210         <echo message="No test arguments are supplied. Using the default argument '-n'."/>
211         <echo message="For specifying test arguments, use '-Dtestarg=[test args]' as"/>
212         <echo message="ant command line argument. For example:"/>
213         <echo message="  &#x3E;ant runTest -Dtestarg=&#x22;Core/Format -e10&#x22;"/>
214         <echo message="for running ICU4J core format test suite in exhaustive mode."/>
215         <property name="testarg" value="-n"/>
216     </target>
217
218     <target name="runTest" depends="_runTestArgCheck" description="Run a ICU4J test case, without calling any other build targets">
219         <echo message="JVM argument:   ${jvm_options} -Djava.awt.headless=true"/>
220         <echo message="Test argument:   ${testarg}"/>
221
222         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
223             <arg line="${testarg}"/>
224             <jvmarg line="${jvm_options} -Djava.awt.headless=true"/>
225             <classpath>
226                 <pathelement path="${icu4j.core.jar}"/>
227                 <pathelement path="${icu4j.collate.jar}"/>
228                 <pathelement path="${icu4j.charset.jar}"/>
229                 <pathelement path="${icu4j.currdata.jar}"/>
230                 <pathelement path="${icu4j.langdata.jar}"/>
231                 <pathelement path="${icu4j.regiondata.jar}"/>
232                 <pathelement path="${icu4j.translit.jar}"/>
233                 <pathelement path="${icu4j.test-framework.jar}"/>
234                 <pathelement path="${icu4j.core-tests.jar}"/>
235                 <pathelement path="${icu4j.collate-tests.jar}"/> 
236                 <pathelement path="${icu4j.charset-tests.jar}"/>
237                 <pathelement path="${icu4j.translit-tests.jar}"/>
238             </classpath>
239         </java>
240     </target>
241
242     <target name="packagingCheck" depends="info, core, packaging-tests" description="Run packaging tests">
243         <!-- region data but no language data -->
244         <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
245             <arg line="-n -w"/>
246             <classpath>
247                 <pathelement path="${icu4j.core.jar}"/>
248                 <pathelement path="${icu4j.charset.jar}"/>
249                 <pathelement path="${icu4j.test-framework.jar}"/>
250                 <pathelement path="${icu4j.packaging-tests.jar}"/>
251                 <pathelement path="${icu4j.regiondata.jar}"/>
252             </classpath>
253         </java>
254         <!-- language data but no region data -->
255         <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
256             <arg line="-n -w"/>
257             <classpath>
258                 <pathelement path="${icu4j.core.jar}"/>
259                 <pathelement path="${icu4j.charset.jar}"/>
260                 <pathelement path="${icu4j.test-framework.jar}"/>
261                 <pathelement path="${icu4j.packaging-tests.jar}"/>
262                 <pathelement path="${icu4j.langdata.jar}"/>
263             </classpath>
264         </java>
265         <!-- neither region nor language data -->
266         <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
267             <arg line="-n -w"/>
268             <classpath>
269                 <pathelement path="${icu4j.core.jar}"/>
270                 <pathelement path="${icu4j.charset.jar}"/>
271                 <pathelement path="${icu4j.test-framework.jar}"/>
272                 <pathelement path="${icu4j.packaging-tests.jar}"/>
273             </classpath>
274         </java>
275     </target>
276
277     <target name="coreCheck" depends="info, core, currdata, langdata, regiondata, core-tests" description="Run only the core tests">
278         <java classname="com.ibm.icu.dev.test.TestAllCore" fork="yes" failonerror="true">
279             <arg line="-n"/>
280             <classpath>
281                 <pathelement path="${icu4j.core.jar}"/>
282                 <pathelement path="${icu4j.currdata.jar}"/>
283                 <pathelement path="${icu4j.langdata.jar}"/>
284                 <pathelement path="${icu4j.regiondata.jar}"/>
285                 <pathelement path="${icu4j.test-framework.jar}"/>
286                 <pathelement path="${icu4j.core-tests.jar}"/>
287             </classpath>
288         </java>
289     </target>
290
291     <target name="collateCheck" depends="info, core, collate, currdata, langdata, regiondata, core-tests, collate-tests" description="Run only the collation tests">
292         <java classname="com.ibm.icu.dev.test.TestAllCollate" fork="yes" failonerror="true">
293             <arg line="-n"/>
294             <classpath>
295                 <pathelement path="${icu4j.core.jar}"/>
296                 <pathelement path="${icu4j.collate.jar}"/>
297                 <pathelement path="${icu4j.test-framework.jar}"/>
298                 <pathelement path="${icu4j.collate-tests.jar}"/>
299
300                 <!-- for now, collateCheck needs currdata, langdata and regiondata, because of GlobalizationPreferencesTest" -->
301                 <pathelement path="${icu4j.currdata.jar}"/>
302                 <pathelement path="${icu4j.langdata.jar}"/>
303                 <pathelement path="${icu4j.regiondata.jar}"/>
304                 <pathelement path="${icu4j.core-tests.jar}"/>
305             </classpath>
306         </java>
307     </target>
308
309     <target name="translitCheck" depends="info, core, translit, translit-tests" description="Run the ICU4J Translit test suite">
310         <java classname="com.ibm.icu.dev.test.TestAllTranslit" fork="yes" failonerror="true">
311             <arg line="-n"/>
312             <classpath>
313                 <pathelement path="${icu4j.core.jar}"/>
314                 <pathelement path="${icu4j.translit.jar}"/>
315                 <pathelement path="${icu4j.test-framework.jar}"/>
316                 <pathelement path="${icu4j.translit-tests.jar}"/>
317             </classpath>
318         </java>
319     </target>
320
321     <target name="localespiCheck" if="is.java6.plus" depends="info" description="Run the ICU4J Locale SPI test suite">
322         <antcall target="_runLocalespiCheck"/>
323     </target>
324
325     <target name="_runLocalespiCheck" depends="localespi, localespi-tests">
326         <java classname="com.ibm.icu.dev.test.localespi.TestAll" fork="yes" failonerror="true">
327             <jvmarg line="-Djava.ext.dirs=${icu4j.core.dir}/${jar.dir}${path.separator}${icu4j.localespi.dir}/${jar.dir}${path.separator}${icu4j.collate.dir}/${jar.dir}${path.separator}${icu4j.currdata.dir}/${jar.dir}${path.separator}${icu4j.langdata.dir}/${jar.dir}${path.separator}${icu4j.regiondata.dir}/${jar.dir}${path.separator}${java.ext.dirs}"/>
328             <arg value="-n"/>
329             <classpath>
330                 <pathelement path="${icu4j.localespi-tests.jar}"/>
331                 <pathelement path="${icu4j.test-framework.jar}"/>
332             </classpath>
333         </java>
334     </target>
335
336     <target name="secureCheck" depends="main, jar, icu4jtestsJar" description="Run the secure (applet-like) ICU4J test suite">
337         <property name="securecheck.arg" value="-n -w"/>
338         <property name="securecheck.jvmarg"
339                 value="${jvm_options} -Djava.security.manager -Djava.security.policy=${shared.dir}/data/security.policy -Djava.awt.headless=true"/>
340
341         <echo message="JVM argument:   ${securecheck.jvmarg}"/>
342         <echo message="Test argument:  ${securecheck.arg}"/>
343
344         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
345             <arg line="${securecheck.arg}"/>
346             <jvmarg line="${securecheck.jvmarg}"/>
347             <classpath>
348                 <pathelement path="${icu4j.jar.file}"/>
349                 <pathelement path="${icu4j-charset.jar.file}"/>
350                 <pathelement path="${icu4jtests.jar.file}"/>
351             </classpath>
352         </java>
353     </target>
354
355     <!-- jar targets -->
356     <target name="jar" depends="icu4jJar, charset, localespi" description="Build ICU4J runtime library jar files">
357         <copy file="${icu4j.charset.jar}" tofile="${icu4j-charset.jar.file}"/>
358         <copy file="${icu4j.localespi.jar}" tofile="${icu4j-localespi.jar.file}" failonerror="false"/>
359     </target>
360
361     <target name="icu4jJar" depends="info, core, collate, currdata, langdata, regiondata, translit" description="Build ICU4J all-in-one core jar">
362         <mkdir dir="${out.dir}"/>
363
364         <!-- manifest -->
365         <copy file="manifest.stub" todir="${out.dir}">
366             <filterset>
367                 <filter token="SPECVERSION" value="${jar.spec.version}"/>
368                 <filter token="IMPLVERSION" value="${jar.impl.version}"/>
369                 <filter token="COPYRIGHT" value="${jar.copyright.info}"/>
370                 <filter token="EXECENV" value="${jar.exec.env}"/>
371             </filterset>
372         </copy>
373
374         <!-- jar -->
375         <jar jarfile="${icu4j.jar.file}"
376                 compress="true"
377                 manifest="${out.dir}/manifest.stub">
378             <fileset dir="${icu4j.core.dir}/${bin.dir}" includes="**/*"/>
379             <fileset dir="${icu4j.collate.dir}/${bin.dir}" includes="**/*"/>
380             <fileset dir="${icu4j.currdata.dir}/${bin.dir}" includes="**/*"/>
381             <fileset dir="${icu4j.langdata.dir}/${bin.dir}" includes="**/*"/>
382             <fileset dir="${icu4j.regiondata.dir}/${bin.dir}" includes="**/*"/>
383             <fileset dir="${icu4j.translit.dir}/${bin.dir}" includes="**/*"/>
384             <fileset dir="${shared.dir}/licenses">
385                 <include name="license.html"/>
386             </fileset>
387         </jar>
388     </target>
389
390         <target name="icu4jSrcJar" description="Build icu4j-src.jar">
391         <jar jarfile="${icu4j-src.jar.file}"
392                 compress="true">
393             <fileset dir="${icu4j.core.dir}/${src.dir}" includes="**/*.java"/>
394             <fileset dir="${icu4j.collate.dir}/${src.dir}" includes="**/*.java"/>
395             <fileset dir="${icu4j.currdata.dir}/${src.dir}" includes="**/*.java"/>
396             <fileset dir="${icu4j.langdata.dir}/${src.dir}" includes="**/*.java"/>
397             <fileset dir="${icu4j.regiondata.dir}/${src.dir}" includes="**/*.java"/>
398             <fileset dir="${icu4j.translit.dir}/${src.dir}" includes="**/*.java"/>
399             <fileset dir="${shared.dir}/licenses">
400                 <include name="license.html"/>
401             </fileset>
402         </jar>
403         </target>
404
405     <target name="icu4jtestsJar" depends="info, tests" description="Build ICU4J all-in-one test jar">
406         <jar jarfile="${icu4jtests.jar.file}"
407                 compress="true">
408             <fileset dir="${icu4j.test-framework.dir}/${bin.dir}" includes="**/*"/>
409             <fileset dir="${icu4j.core-tests.dir}/${bin.dir}" includes="**/*"/>
410             <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}" includes="**/*"/>
411             <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}" includes="**/*"/>
412             <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}" includes="**/*"/>
413         </jar>
414     </target>
415
416     <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file">
417         <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/>
418     </target>
419
420
421     <!-- release targets -->
422     <target name="releaseVer" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz"
423             description="Build all ICU4J release files for distribution with versioned file names">
424         <!-- binaries -->
425         <move file="${release.dir}/${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.versioned.file}"/>
426         <move file="${release.dir}/${icu4j-charset.jar.file}" tofile="${release.dir}/${icu4j-charset.jar.versioned.file}"/>
427         <move file="${release.dir}/${icu4j-localespi.jar.file}" tofile="${release.dir}/${icu4j-localespi.jar.versioned.file}"/>
428
429         <!-- source jars -->
430         <move file="${release.dir}/${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.versioned.file}"/>
431         <move file="${release.dir}/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.versioned.file}"/>
432         <move file="${release.dir}/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.versioned.file}"/>
433
434         <!-- docs -->
435         <move file="${release.dir}/${icu4jdocs.jar.file}" tofile="${release.dir}/${icu4jdocs.jar.versioned.file}"/>
436
437         <!-- package archive -->
438         <move file="${release.dir}/${icu4jsrc.tgz.file}" tofile="${release.dir}/${icu4jsrc.tgz.versioned.file}"/>
439
440         <!-- md5 checksum file -->
441         <mkdir dir="${out.dir}/checksum"/>
442         <delete dir="${out.dir}/checksum" includes="**/*"/>
443
444         <checksum todir="${out.dir}/checksum" format="MD5SUM">
445             <fileset dir="${release.dir}">
446                 <include name="*.jar"/>
447                 <include name="*.tgz"/>
448             </fileset>
449         </checksum>
450
451         <concat destfile="${release.dir}/icu4j-${release.file.ver}.md5">
452             <fileset dir="${out.dir}/checksum" includes="*"/>
453             <filterchain>
454                 <fixcrlf eol="lf"/>
455             </filterchain>
456         </concat>
457     </target>
458
459     <target name="release" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz" description="Build all ICU4J release files for distribution">
460         <mkdir dir="${out.dir}/checksum"/>
461         <delete dir="${out.dir}/checksum" includes="**/*"/>
462
463         <checksum todir="${out.dir}/checksum" format="MD5SUM">
464             <fileset dir="${release.dir}">
465                 <include name="*.jar"/>
466                 <include name="*.tgz"/>
467             </fileset>
468         </checksum>
469
470         <concat destfile="${release.dir}/icu4j.md5">
471             <fileset dir="${out.dir}/checksum" includes="*"/>
472             <filterchain>
473                 <fixcrlf eol="lf"/>
474             </filterchain>
475         </concat>
476     </target>
477
478     <target name="releaseBinaries" depends="icu4jJar, charset, localespi" description="Build ICU4J binary files for distribution">
479         <mkdir dir="${release.dir}"/>
480         <copy file="${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.file}"/>
481         <copy file="${icu4j.charset.jar}" tofile="${release.dir}/${icu4j-charset.jar.file}"/>
482         <copy file="${icu4j.localespi.jar}" tofile="${release.dir}/${icu4j-localespi.jar.file}"/>
483     </target>
484
485     <target name="releaseSrcJars" depends="icu4jSrcJar" description="Build ICU4J src jar files for distribution">
486         <mkdir dir="${release.dir}"/>
487
488         <!-- icu4j src-jar -->
489         <copy file="${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.file}"/>
490
491         <!-- charset/localespi src-jar -->
492         <ant dir="${icu4j.charset.dir}" target="src-jar" inheritAll="false"/>
493         <ant dir="${icu4j.localespi.dir}" target="src-jar" inheritAll="false"/>
494
495         <copy file="${icu4j.charset.dir}/${out.dir}/lib/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.file}"/>
496         <copy file="${icu4j.localespi.dir}/${out.dir}/lib/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.file}"/>
497     </target>
498
499
500     <target name="releaseDocs" depends="docs" description="Build ICU4J API reference doc jar file for distribution">
501         <mkdir dir="${release.dir}"/>
502         <jar jarfile="${release.dir}/${icu4jdocs.jar.file}" compress="true" basedir="${doc.dir}"/>
503     </target>
504
505     <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/>
506
507     <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)">
508         <delete dir="${src.release.wrk.dir}"/>
509         <delete file="${icu4jsrc.zip.file}"/>
510
511         <mkdir dir="${src.release.wrk.dir}"/>
512
513         <fixcrlf srcdir="."
514                 destdir="${src.release.wrk.dir}"
515                 encoding="UTF-8"
516                 eol="crlf">
517             <include name="demos/**/*"/>
518             <include name="main/**/*"/>
519             <include name="perf-tests/**/*"/>
520             <include name="samples/**/*"/>
521             <include name="tools/**/*"/>
522             <include name="*.html"/>
523             <include name="*.xml"/>
524             <include name="*.properties"/>
525             <include name="*.css"/>
526             <include name="*.stub"/>
527             <exclude name="**/out/**/*"/>
528             <exclude name="**/*.jar"/>
529             <exclude name="**/build-local.properties"/>
530             <exclude name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
531             <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
532             <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
533             <exclude name="tools/build/icu4j*.api*.gz"/>
534         </fixcrlf>
535
536         <mkdir dir="${release.dir}"/>
537         <zip destfile="${release.dir}/${icu4jsrc.zip.file}">
538             <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
539             <fileset dir="${basedir}">
540                 <include name="main/shared/data/*.jar"/>
541                 <include name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
542                 <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
543                 <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
544                 <include name="tools/build/icu4j*.api*.gz"/>
545             </fileset>
546         </zip>
547
548         <delete dir="${src.release.wrk.dir}"/>
549     </target>
550
551     <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)">
552         <delete dir="${src.release.wrk.dir}"/>
553         <delete file="${icu4jsrc.tgz.file}"/>
554
555         <mkdir dir="${src.release.wrk.dir}"/>
556
557         <fixcrlf srcdir="."
558                 destdir="${src.release.wrk.dir}"
559                 encoding="UTF-8"
560                 eol="lf">
561             <include name="demos/**/*"/>
562             <include name="main/**/*"/>
563             <include name="perf-tests/**/*"/>
564             <include name="samples/**/*"/>
565             <include name="tools/**/*"/>
566             <include name="*.html"/>
567             <include name="*.xml"/>
568             <include name="*.properties"/>
569             <include name="*.css"/>
570             <include name="*.stub"/>
571             <exclude name="**/out/**/*"/>
572             <exclude name="**/*.jar"/>
573             <exclude name="**/build-local.properties"/>
574             <exclude name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
575             <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
576             <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
577             <exclude name="tools/build/icu4j*.api*.gz"/>
578         </fixcrlf>
579
580         <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/>
581
582         <tar destfile="${icu4jsrc.tar}" longfile="gnu">
583             <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
584             <fileset dir="${basedir}">
585                 <include name="main/shared/data/*.jar"/>
586                 <include name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
587                 <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
588                 <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
589                 <include name="tools/build/icu4j*.api*.gz"/>
590             </fileset>
591         </tar>
592
593         <mkdir dir="${release.dir}"/>
594         <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/>
595
596         <delete dir="${src.release.wrk.dir}"/>
597         <delete file="${icu4jsrc.tar}"/>
598     </target>
599
600     <!-- findbugs targets -->
601
602     <target name="findbugs" description="Run FindBugs on all library sub projects.">
603         <property name="findbugs.out.dir" value="${out.dir}/findbugs"/>
604         <mkdir dir="${findbugs.out.dir}"/>
605
606         <ant dir="${icu4j.core.dir}" inheritAll="false" target="findbugs"/>
607         <copy file="${icu4j.core.dir}/${out.dir}/fb-core.html" todir="${findbugs.out.dir}"/>
608
609         <ant dir="${icu4j.collate.dir}" inheritAll="false" target="findbugs"/>
610         <copy file="${icu4j.collate.dir}/${out.dir}/fb-collate.html" todir="${findbugs.out.dir}"/>
611
612         <ant dir="${icu4j.currdata.dir}" inheritAll="false" target="findbugs"/>
613         <copy file="${icu4j.currdata.dir}/${out.dir}/fb-currdata.html" todir="${findbugs.out.dir}"/>
614
615         <ant dir="${icu4j.langdata.dir}" inheritAll="false" target="findbugs"/>
616         <copy file="${icu4j.langdata.dir}/${out.dir}/fb-langdata.html" todir="${findbugs.out.dir}"/>
617
618         <ant dir="${icu4j.regiondata.dir}" inheritAll="false" target="findbugs"/>
619         <copy file="${icu4j.regiondata.dir}/${out.dir}/fb-regiondata.html" todir="${findbugs.out.dir}"/>
620
621         <ant dir="${icu4j.translit.dir}" inheritAll="false" target="findbugs"/>
622         <copy file="${icu4j.translit.dir}/${out.dir}/fb-translit.html" todir="${findbugs.out.dir}"/>
623
624
625         <ant dir="${icu4j.charset.dir}" inheritAll="false" target="findbugs"/>
626         <copy file="${icu4j.charset.dir}/${out.dir}/fb-charset.html" todir="${findbugs.out.dir}"/>
627
628         <ant dir="${icu4j.localespi.dir}" inheritAll="false" target="findbugs"/>
629         <copy file="${icu4j.localespi.dir}/${out.dir}/fb-localespi.html" todir="${findbugs.out.dir}"/>
630     </target>
631
632     <!-- compile targets -->
633     <target name="core" description="Build core classes">
634         <ant dir="${icu4j.core.dir}" inheritAll="false"/>
635     </target>
636
637     <target name="collate" depends="core" description="Build collation classes">
638         <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
639     </target>
640
641     <target name="charset" depends="core" description="Build charset classes">
642         <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
643     </target>
644
645     <target name="currdata" depends="core" description="Build currency data classes">
646         <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
647     </target>
648
649     <target name="langdata" depends="core" description="Build language data classes">
650         <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
651     </target>
652
653     <target name="localespi" if="is.java6.plus" description="Build Locale SPI classes">
654         <antcall target="_build-localespi"/>
655     </target>
656
657     <target name="_build-localespi" depends="core, collate, currdata, langdata, regiondata">
658         <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
659     </target>
660
661     <target name="regiondata" depends="core" description="Build region data classes">
662         <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
663     </target>
664
665     <target name="translit" depends="core" description="Build translit classes">
666         <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
667     </target>
668
669     <target name="test-framework" depends="core" description="Build test framework classes">
670         <ant dir="${icu4j.test-framework.dir}" inheritAll="false"/>
671     </target>
672
673     <target name="core-tests" depends="core, test-framework" description="Build core tests">
674         <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/>
675     </target>
676
677     <target name="collate-tests" depends="collate, test-framework" description="Build core tests">
678         <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/>
679     </target>
680
681     <target name="charset-tests" depends="charset, test-framework" description="Build charset tests">
682         <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/>
683     </target>
684
685     <target name="localespi-tests" if="is.java6.plus" description="Build Locale SPI tests">
686         <antcall target="_build-localespi-tests"/>
687     </target>
688
689     <target name="_build-localespi-tests" depends="localespi, test-framework">
690         <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/>
691     </target>
692
693     <target name="packaging-tests" depends="test-framework" description="Build packaging tests">
694         <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/>
695     </target>
696
697     <target name="translit-tests" depends="translit, test-framework" description="Build translit tests">
698         <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/>
699     </target>
700
701     <target name="demos" depends="core, charset, translit" description="Build demo classes">
702         <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
703     </target>
704
705     <target name="samples" depends="core, charset, collate, translit" description="Build sample classes">
706         <ant dir="${icu4j.samples.dir}" inheritAll="false"/>
707     </target>
708
709     <target name="build-tools" description="Build build-tool classes">
710         <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
711     </target>
712
713     <target name="tools" depends="core, core-tests, collate, translit, translit-tests" description="Build tool classes">
714         <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
715     </target>
716     <target name="perf" depends="core, charset, collate, tools" description="Build performance test classes">
717         <ant dir="${icu4j.perf.dir}" inheritAll="false"/>
718     </target>
719
720     <!-- doc targets -->
721     <target name="docs" depends="info, build-tools, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/>
722
723     <target name="_checkJCite" if="env.JCITE_DIR">
724         <fileset dir="${env.JCITE_DIR}" id="jcite.files">
725             <include name="build/*.jar"/>
726             <include name="lib/*.jar"/>
727         </fileset>
728         <pathconvert property="jcite.libs" refid="jcite.files"/>
729
730         <dirset dir="${basedir}" id="jcite.src.dirs">
731             <include name="samples/src"/>
732             <include name="demos/src"/>
733             <include name="main/tests/*/src"/>
734         </dirset>
735         <pathconvert property="jcite.addl.src" refid="jcite.src.dirs"/>
736     </target>
737
738     <target name="_docsStyleSheet">
739         <condition property="docs.style.sheet" value="stylesheet7.css" else="stylesheet.css">
740             <isset property="is.java7.plus"/>
741         </condition>
742     </target>
743
744     <target name="_docsWithJCite" depends="_docsStyleSheet" if="jcite.libs">
745         <echo message="JCite library path:             ${jcite.libs}"/>
746         <echo message="JCite additional source path:   ${jcite.addl.src}"/>
747         <echo message="Custom stylesheet:              ${docs.style.sheet}"/>
748         <javadoc
749                 destdir="${doc.dir}"
750                 nodeprecatedlist="true"
751                 windowtitle="${icu4j.api.doc.window.title}"
752                 doctitle="${icu4j.api.doc.title}"
753                 header="${icu4j.api.doc.header}"
754                 encoding="${java.src.encoding}"
755                 docencoding="UTF-8"
756                 charset="UTF-8"
757                 bottom="&lt;font size=-1&gt;Copyright (c) ${current.year} IBM Corporation and others.&lt;/font&gt;"
758                 additionalparam="-breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
759                 link="${icu4j.api.doc.jdk.link}"
760                 source="1.5"
761                 stylesheetfile="${docs.style.sheet}">
762             <packageset dir="${icu4j.core.dir}/src">
763                 <include name="com/ibm/icu/lang/**"/>
764                 <include name="com/ibm/icu/math/**"/>
765                 <include name="com/ibm/icu/text/**"/>
766                 <include name="com/ibm/icu/util/**"/>
767             </packageset>
768             <packageset dir="${icu4j.collate.dir}/src">
769                 <include name="com/ibm/icu/text/**"/>
770             </packageset>
771             <packageset dir="${icu4j.translit.dir}/src">
772                 <include name="com/ibm/icu/text/**"/>
773             </packageset>
774             <packageset dir="${icu4j.charset.dir}/src">
775                 <include name="com/ibm/icu/charset/**"/>
776             </packageset>
777         </javadoc>
778     </target>
779
780     <target name="_docsWithoutJCite" unless="jcite.libs">
781         <javadoc
782                 destdir="${doc.dir}"
783                 nodeprecatedlist="true"
784                 windowtitle="${icu4j.api.doc.window.title}"
785                 doctitle="${icu4j.api.doc.title}"
786                 header="${icu4j.api.doc.header}"
787                 encoding="${java.src.encoding}"
788                 docencoding="UTF-8"
789                 charset="UTF-8"
790                 bottom="&lt;font size=-1&gt;Copyright (c) ${current.year} IBM Corporation and others.&lt;/font&gt;"
791                 additionalparam="-breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet"
792                 link="${icu4j.api.doc.jdk.link}"
793                 source="1.5">
794             <packageset dir="${icu4j.core.dir}/src">
795                 <include name="com/ibm/icu/lang/**"/>
796                 <include name="com/ibm/icu/math/**"/>
797                 <include name="com/ibm/icu/text/**"/>
798                 <include name="com/ibm/icu/util/**"/>
799             </packageset>
800             <packageset dir="${icu4j.collate.dir}/src">
801                 <include name="com/ibm/icu/text/**"/>
802             </packageset>
803             <packageset dir="${icu4j.translit.dir}/src">
804                 <include name="com/ibm/icu/text/**"/>
805             </packageset>
806             <packageset dir="${icu4j.charset.dir}/src">
807                 <include name="com/ibm/icu/charset/**"/>
808             </packageset>
809         </javadoc>
810     </target>
811
812     <!-- Code coverage target -->
813     <property name="clover.out.dir" value="${out.dir}/clover"/>
814     <property name="clover.jar" location="${env.CLOVER_DIR}/clover.jar"/>
815     <taskdef resource="cloverlib.xml" classpath="${clover.jar}" onerror="ignore"/>
816
817     <target name="codeCoverage" depends="clean" description="Generate code coverage report with clover">
818         <!-- Set up clover -->
819         <mkdir dir="${clover.out.dir}"/>
820         <clover-setup initstring="${clover.out.dir}/clover.db">
821             <files>
822                 <exclude name="**/dev/**/*.java"/>
823             </files>
824             <methodContext name="API" regexp="(.* )?public .*"/>
825         </clover-setup>
826
827         <!-- Build components with clover instrumentation -->
828         <ant dir="${icu4j.core.dir}" inheritAll="false" inheritRefs="true">
829             <property name="build.compiler" value="${build.compiler}"/>
830         </ant>
831         <ant dir="${icu4j.collate.dir}" inheritAll="false" inheritRefs="true">
832             <property name="build.compiler" value="${build.compiler}"/>
833         </ant>
834         <ant dir="${icu4j.charset.dir}" inheritAll="false" inheritRefs="true">
835             <property name="build.compiler" value="${build.compiler}"/>
836         </ant>
837         <ant dir="${icu4j.currdata.dir}" inheritAll="false" inheritRefs="true">
838             <property name="build.compiler" value="${build.compiler}"/>
839         </ant>
840         <ant dir="${icu4j.langdata.dir}" inheritAll="false" inheritRefs="true">
841             <property name="build.compiler" value="${build.compiler}"/>
842         </ant>
843         <ant dir="${icu4j.regiondata.dir}" inheritAll="false" inheritRefs="true">
844             <property name="build.compiler" value="${build.compiler}"/>
845         </ant>
846         <ant dir="${icu4j.translit.dir}" inheritAll="false" inheritRefs="true">
847             <property name="build.compiler" value="${build.compiler}"/>
848         </ant>
849         <ant dir="${icu4j.test-framework.dir}" inheritAll="false" inheritRefs="true">
850             <property name="build.compiler" value="${build.compiler}"/>
851         </ant>
852         <ant dir="${icu4j.core-tests.dir}" inheritAll="false" inheritRefs="true">
853             <property name="build.compiler" value="${build.compiler}"/>
854         </ant>
855         <ant dir="${icu4j.collate-tests.dir}" inheritAll="false" inheritRefs="true">
856             <property name="build.compiler" value="${build.compiler}"/>
857         </ant>
858         <ant dir="${icu4j.charset-tests.dir}" inheritAll="false" inheritRefs="true">
859             <property name="build.compiler" value="${build.compiler}"/>
860         </ant>
861         <ant dir="${icu4j.translit-tests.dir}" inheritAll="false" inheritRefs="true">
862             <property name="build.compiler" value="${build.compiler}"/>
863         </ant>
864
865         <!-- Run the test suites -->
866         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
867             <arg value="-n"/>
868             <classpath>
869                 <pathelement path="${icu4j.core.jar}"/>
870                 <pathelement path="${icu4j.collate.jar}"/>
871                 <pathelement path="${icu4j.charset.jar}"/>
872                 <pathelement path="${icu4j.currdata.jar}"/>
873                 <pathelement path="${icu4j.langdata.jar}"/>
874                 <pathelement path="${icu4j.regiondata.jar}"/>
875                 <pathelement path="${icu4j.translit.jar}"/>
876                 <pathelement path="${icu4j.test-framework.jar}"/>
877                 <pathelement path="${icu4j.core-tests.jar}"/>
878                 <pathelement path="${icu4j.collate-tests.jar}"/>
879                 <pathelement path="${icu4j.charset-tests.jar}"/>
880                 <pathelement path="${icu4j.translit-tests.jar}"/>
881                 <pathelement path="${clover.jar}"/>
882             </classpath>
883         </java>
884
885         <!-- Generate HTML coverage report -->
886         <!-- <clover-html-report outdir="${clover.out.dir}/html" title="ICU4J Code Coverage"/> -->
887         <clover-report>
888             <current outfile="${clover.out.dir}/html" title="ICU4J Code Coverage">
889                 <format type="html" filter="assert" />
890             </current>
891         </clover-report>
892     </target>
893
894     <!-- Release management targets -->
895     <target name="checktags" depends="info, build-tools" description="Check API tags before release">
896         <javadoc source="1.5"
897                  encoding="${java.src.encoding}">
898             <packageset dir="${icu4j.core.dir}/src">
899                 <include name="com/ibm/icu/lang/**"/>
900                 <include name="com/ibm/icu/math/**"/>
901                 <include name="com/ibm/icu/text/**"/>
902                 <include name="com/ibm/icu/util/**"/>
903             </packageset>
904             <packageset dir="${icu4j.collate.dir}/src">
905                 <include name="com/ibm/icu/**"/>
906             </packageset>
907             <packageset dir="${icu4j.charset.dir}/src">
908                 <include name="com/ibm/icu/charset/**"/>
909             </packageset>
910             <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
911         </javadoc>
912     </target>
913
914     <target name="gatherapi" depends="info, build-tools" description="Run API database generator tool">
915         <mkdir dir="${out.dir}"/>
916         <javadoc source="1.5"
917                  encoding="${java.src.encoding}">
918             <packageset dir="${icu4j.core.dir}/src">
919                 <include name="com/ibm/icu/lang/**"/>
920                 <include name="com/ibm/icu/math/**"/>
921                 <include name="com/ibm/icu/text/**"/>
922                 <include name="com/ibm/icu/util/**"/>
923             </packageset>
924             <packageset dir="${icu4j.collate.dir}/src">
925                 <include name="com/ibm/icu/text/**"/>
926                 <include name="com/ibm/icu/util/**"/>
927             </packageset>
928             <packageset dir="${icu4j.charset.dir}/src">
929                 <include name="com/ibm/icu/charset/**"/>
930             </packageset>
931             <packageset dir="${icu4j.translit.dir}/src">
932                 <include name="com/ibm/icu/text/**"/>
933             </packageset>
934             <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${icu4j.build-tools.jar}">
935                 <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
936                 <param name="-output" value="${out.dir}/icu4j${api.report.version}.api2"/>
937                 <param name="-internal"/>
938                 <param name="-version"/>
939                 <param name="-gzip"/>
940             </doclet>
941         </javadoc>
942     </target>
943
944     <target name="apireport" depends="info, gatherapi" description="Run API report generator tool">
945         <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
946                 classpath="${icu4j.build-tools.jar}"
947                 failonerror="true">
948             <arg value="-old:" />
949             <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api2.gz" />
950             <arg value="-new:" />
951             <arg value="${out.dir}/icu4j${api.report.version}.api2.gz" />
952             <arg value="-html" />
953             <arg value="-out:" />
954             <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
955         </java>
956     </target>
957
958     <target name="gatherapiOld" depends="info, build-tools" description="Run API database generator tool (Pre Java 5 style)">
959         <mkdir dir="${out.dir}"/>
960         <javadoc source="1.5"
961                  encoding="${java.src.encoding}">
962             <packageset dir="${icu4j.core.dir}/src">
963                 <include name="com/ibm/icu/lang/**"/>
964                 <include name="com/ibm/icu/math/**"/>
965                 <include name="com/ibm/icu/text/**"/>
966                 <include name="com/ibm/icu/util/**"/>
967             </packageset>
968             <packageset dir="${icu4j.collate.dir}/src">
969                 <include name="com/ibm/icu/text/**"/>
970                 <include name="com/ibm/icu/util/**"/>
971             </packageset>
972             <packageset dir="${icu4j.charset.dir}/src">
973                 <include name="com/ibm/icu/charset/**"/>
974             </packageset>
975             <packageset dir="${icu4j.translit.dir}/src">
976                 <include name="com/ibm/icu/text/**"/>
977             </packageset>
978             <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIDataOld" path="${icu4j.build-tools.jar}">
979                 <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
980                 <param name="-output" value="${out.dir}/icu4j${api.report.version}.api"/>
981                 <param name="-internal"/>
982                 <param name="-gzip"/>
983             </doclet>
984         </javadoc>
985     </target>
986
987     <target name="apireportOld" depends="info, gatherapiOld" description="Run API report generator tool (Pre Java 5 Style)">
988         <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
989                 classpath="${icu4j.build-tools.jar}"
990                 failonerror="true">
991             <arg value="-old:" />
992             <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api.gz" />
993             <arg value="-new:" />
994             <arg value="${out.dir}/icu4j${api.report.version}.api.gz" />
995             <arg value="-html" />
996             <arg value="-internal" />
997             <arg value="-out:" />
998             <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
999         </java>
1000     </target>
1001
1002     <target name="draftAPIs" depends="info, gatherapi" description="Run API collector tool and generate draft API report">
1003         <java classname="com.ibm.icu.dev.tool.docs.CollectAPI"
1004                 classpath="${icu4j.build-tools.jar}"
1005                 failonerror="true">
1006             <arg value="-f"/>
1007             <arg value="Draft"/>
1008             <arg value="-o"/>
1009             <arg value="${out.dir}/draftAPIs.html"/>
1010             <arg value="${out.dir}/icu4j${api.report.version}.api2.gz" />
1011         </java>
1012     </target>
1013
1014     <target name="swatDeprecated" depends="build-tools" description="Convert @deprecated @draft tags to @provisional">
1015         <antcall target="_runSwatDeprecated">
1016             <param name="swat.deprecated.opt" value="-dep"/>
1017         </antcall>
1018     </target>
1019
1020     <target name="swatProvisional" depends="build-tools" description="Convert @provisional tags to @deprecated @draft">
1021         <antcall target="_runSwatDeprecated">
1022             <param name="swat.deprecated.opt" value="-prov"/>
1023         </antcall>
1024     </target>
1025
1026     <target name="_runSwatDeprecated">
1027         <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
1028                 classpath="${icu4j.build-tools.jar}"
1029                 failonerror="true">
1030             <arg value="${swat.deprecated.opt}"/>
1031             <arg value="-src"/>
1032             <arg value="${icu4j.core.dir}/src"/>
1033             <arg value="-dst"/>
1034             <arg value="${icu4j.core.dir}/src"/>
1035             <arg value="-overwrite"/>
1036             <arg value="-verbose"/>
1037         </java>
1038         <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
1039                 classpath="${icu4j.build-tools.jar}"
1040                 failonerror="true">
1041             <arg value="${swat.deprecated.opt}"/>
1042             <arg value="-src"/>
1043             <arg value="${icu4j.charset.dir}/src"/>
1044             <arg value="-dst"/>
1045             <arg value="${icu4j.charset.dir}/src"/>
1046             <arg value="-overwrite"/>
1047             <arg value="-verbose"/>
1048         </java>
1049     </target>
1050
1051     <target name="serialTestData" depends="main, tests">
1052         <property name="serial.test.data.dir" value="${out.dir}/serialTestData"/>
1053         <delete dir="${serial.test.data.dir}"/>
1054         <mkdir dir="${serial.test.data.dir}"/>
1055         <java classname="com.ibm.icu.dev.test.serializable.SerializableWriter" fork="yes" failonerror="true">
1056             <arg line="${serial.test.data.dir}"/>
1057             <classpath>
1058                 <pathelement path="${icu4j.core.jar}"/>
1059                 <pathelement path="${icu4j.collate.jar}"/>
1060                 <pathelement path="${icu4j.charset.jar}"/>
1061                 <pathelement path="${icu4j.currdata.jar}"/>
1062                 <pathelement path="${icu4j.langdata.jar}"/>
1063                 <pathelement path="${icu4j.regiondata.jar}"/>
1064                 <pathelement path="${icu4j.translit.jar}"/>
1065                 <pathelement path="${icu4j.test-framework.jar}"/>
1066                 <pathelement path="${icu4j.core-tests.jar}"/>
1067             </classpath>
1068         </java>
1069         <echo message="Note: The serialization compatibility test data files were"/>
1070         <echo message="created in ${serial.test.data.dir}. Once you confirm"/>
1071         <echo message="the test runs clean, you should copy the data file directory to"/>
1072         <echo message="main/tests/core/src/com/ibm/icu/dev/test/serializable/data."/>
1073     </target>
1074
1075     <!-- Special packaging targets -->
1076     <target name="translitIMEJar" depends="info" description="Build transliterator IME 'icutransime.jar' jar file">
1077         <property name="translit.ime.out.dir" value="${out.dir}/translit_ime"/>
1078  
1079         <mkdir dir="${translit.ime.out.dir}/bin"/>
1080         <javac destdir="${translit.ime.out.dir}/bin"
1081                 source="${javac.source}"
1082                 target="${javac.target}"
1083                 encoding="${java.src.encoding}"
1084                 debug="on" deprecation="off">
1085             <src path="${icu4j.core.dir}/src"/>
1086             <src path="${icu4j.translit.dir}/src"/>
1087             <src path="${icu4j.tools.dir}/src"/>
1088             <include name="com/ibm/icu/dev/tool/ime/translit/*.java"/>
1089         </javac>
1090
1091         <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/Transliterator.properties"
1092                 todir="${translit.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/translit"/>
1093
1094         <mkdir dir="${translit.ime.out.dir}/lib"/>
1095         <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar"
1096                 compress="true"
1097                 basedir="${translit.ime.out.dir}/bin"
1098                 includes="com/ibm/icu/dev/tool/ime/translit/**/*"
1099                 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/manifest.stub">
1100             <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit" includes="services/*" />
1101         </jar>
1102     </target>
1103
1104     <target name="indicIMEJar" depends="info" description="Build indic IME 'icuindicime.jar' jar file">
1105         <property name="indic.ime.out.dir" value="${out.dir}/indic_ime"/>
1106  
1107         <mkdir dir="${indic.ime.out.dir}/bin"/>
1108         <javac destdir="${indic.ime.out.dir}/bin"
1109                 source="${javac.source}"
1110                 target="${javac.target}"
1111                 encoding="${java.src.encoding}"
1112                 debug="on" deprecation="off">
1113             <src path="${icu4j.core.dir}/src"/>
1114             <src path="${icu4j.tools.dir}/src"/>
1115             <include name="com/ibm/icu/dev/tool/ime/indic/*.java"/>
1116         </javac>
1117
1118         <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/DisplayNames.properties"
1119                 todir="${indic.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/indic"/>
1120
1121         <mkdir dir="${indic.ime.out.dir}/lib"/>
1122         <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar"
1123                 compress="true"
1124                 basedir="${indic.ime.out.dir}/bin"
1125                 includes="com/ibm/icu/dev/tool/ime/indic/**/*"
1126                 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/manifest.stub">
1127             <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic" includes="services/*" />
1128         </jar>
1129     </target>
1130
1131     <target name="cldrUtil" depends="icu4jJar" description="Build Utilities for CLDR tooling">
1132         <mkdir dir="${cldr.util.out.dir}/bin"/>
1133         <javac destdir="${cldr.util.out.dir}/bin"
1134                 source="${javac.source}"
1135                 target="${javac.target}"
1136                 encoding="${java.src.encoding}"
1137                 debug="on" deprecation="off"
1138                 classpath="${icu4j.jar.file}">
1139
1140             <src path="${icu4j.tools.dir}/src"/>
1141             <src path="${icu4j.translit-tests.dir}/src"/>
1142             <src path="${icu4j.test-framework.dir}/src"/>
1143
1144             <include name="com/ibm/icu/dev/test/TestFmwk.java" />
1145             <include name="com/ibm/icu/dev/util/*.java" />
1146             <include name="com/ibm/icu/dev/tool/UOption.java" />
1147         </javac>
1148
1149         <mkdir dir="${cldr.util.out.dir}/lib"/>
1150         <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar"
1151                 compress="true"
1152                 basedir="${cldr.util.out.dir}/bin">
1153             <include name="com/ibm/icu/dev/test/*.class"/>
1154             <include name="com/ibm/icu/dev/util/*.class"/>
1155             <include name="com/ibm/icu/dev/tool/UOption*.class"/>
1156         </jar>
1157     </target>
1158
1159         <target name="releaseCLDR" depends="icu4jJar,icu4jSrcJar,cldrUtil" description="Build release files for CLDR tooling">
1160                 <mkdir dir="${cldr.release.dir}"/>
1161                 <!-- icu4j.jar -->
1162                 <copy file="${icu4j.jar.file}" todir="${cldr.release.dir}"/>
1163                 <!-- icu4j-src.jar -->
1164                 <copy file="${icu4j-src.jar.file}" todir="${cldr.release.dir}"/>
1165                 <!-- utilities.jar -->
1166                 <copy file="${cldr.util.out.dir}/lib/utilities.jar" todir="${cldr.release.dir}"/>
1167                 <!-- utilities-src.jar -->
1168         <jar jarfile="${cldr.release.dir}/utilities-src.jar"
1169                 compress="true">
1170             <fileset dir="${icu4j.test-framework.dir}/${src.dir}">
1171                 <filename name="com/ibm/icu/dev/test/TestFmwk.java"/>
1172                 <filename name="com/ibm/icu/dev/test/*Log*.java"/>
1173                 <filename name="com/ibm/icu/dev/test/TestUtil.java"/>
1174                 <filename name="com/ibm/icu/dev/test/UTF16Util.java"/>
1175             </fileset>
1176             <fileset dir="${icu4j.test-framework.dir}/${src.dir}" includes="com/ibm/icu/dev/util/*.java"/>
1177             <fileset dir="${icu4j.translit-tests.dir}/${src.dir}" includes="com/ibm/icu/dev/util/*.java"/>
1178             <fileset dir="${icu4j.tools.dir}/${src.dir}" includes="com/ibm/icu/dev/tool/UOption.java"/>
1179        </jar>
1180         </target>
1181
1182     <target name="xliff" description="Build xliff converter tool">
1183         <property name="xliff.out.dir" value="${out.dir}/xliff"/>
1184
1185         <mkdir dir="${xliff.out.dir}/bin"/>
1186         <javac destdir="${xliff.out.dir}/bin"
1187                 source="1.3"
1188                 target="1.3"
1189                 encoding="${java.src.encoding}"
1190                 debug="on" deprecation="off">
1191             <src path="${icu4j.tools.dir}/src"/>
1192             <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
1193             <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
1194             <include name="com/ibm/icu/dev/tool/UOption.java"/>
1195        </javac>
1196
1197         <mkdir dir="${xliff.out.dir}/lib"/>
1198
1199         <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar"
1200                 compress="true"
1201                 basedir="${icu4j.tools.dir}/src">
1202             <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
1203             <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
1204             <include name="com/ibm/icu/dev/tool/UOption.java"/>
1205         </jar>
1206
1207         <jar jarfile="${xliff.out.dir}/lib/xliff.jar"
1208                 compress="true"
1209                 basedir="${xliff.out.dir}/bin"
1210                 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/>
1211     </target>
1212
1213
1214     <!-- ICU4J modularization targets -->
1215     <property name="module.dir" value="${out.dir}/module"/>
1216     <property name="module.bin.dir" value="${module.dir}/bin"/>
1217     <property name="module.tests.dir" value="${module.dir}/tests"/>
1218     <property name="module.jar.dir" value="${module.dir}/lib"/>
1219     <property name="module.jar" value="${module.jar.dir}/icu4j-module.jar"/>
1220
1221     <target name="moduleJar" description="Create a ICU4J module jar file">
1222         <mkdir dir="${module.jar.dir}"/>
1223         <jar jarfile="${module.jar}"
1224                 compress="true"
1225                 basedir="${module.bin.dir}">
1226             <manifest>
1227                 <attribute name="Built-By" value="${corp}" />
1228                 <section name="com/ibm/icu">
1229                     <attribute name="Specification-Title" value="ICU4J Modularized Build" />
1230                     <attribute name="Specification-Version" value="${jar.spec.version}" />
1231                     <attribute name="Specification-Vendor" value="ICU" />
1232                     <attribute name="Implementation-Title" value=" ICU for Java Module" />
1233                     <attribute name="Implementation-Version" value="${jar.impl.version}" />
1234                     <attribute name="Implementation-Vendor" value="${corp}" />
1235                     <attribute name="Implementation-Vendor-Id" value="com.ibm" />
1236                     <attribute name="Copyright-Info" value="${jar.copyright.info}" />
1237                     <attribute name="Sealed" value="false" />
1238                 </section>
1239             </manifest>
1240         </jar>
1241         <copy file="${module.jar}" tofile="icu4j.jar"/>
1242     </target>
1243
1244     <target name="moduleCheck" description="Run tests for a ICU4J module jar">
1245         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
1246             <arg value="-nothrow"/>
1247             <arg value="-nodata"/>
1248             <classpath>
1249                 <pathelement path="${module.jar}"/>
1250                 <pathelement location="${module.tests.dir}"/>
1251             </classpath>
1252         </java>
1253     </target>
1254
1255     <patternset id="common.test.sources">
1256         <include name="com/ibm/icu/dev/test/TestFmwk.java"/>
1257         <include name="com/ibm/icu/dev/test/TestLog.java"/>
1258         <include name="com/ibm/icu/dev/test/TestUtil.java"/>
1259         <include name="com/ibm/icu/dev/test/UTF16Util.java"/>
1260         <include name="com/ibm/icu/dev/test/TestAll.java"/>
1261         <include name="com/ibm/icu/dev/test/TestAllCore.java"/>
1262     </patternset>
1263
1264     <!-- Break Iterator -->
1265     <target name="breakIterator" depends="_copyFullPropsData" description="Modular build of break iterator services">
1266         <mkdir dir="${module.bin.dir}"/>
1267         <javac srcdir="${icu4j.core.dir}/src"
1268                 destdir="${module.bin.dir}"
1269                 source="${javac.source}"
1270                 target="${javac.target}"
1271                 encoding="${java.src.encoding}"
1272                 debug="on" deprecation="off">
1273             <include name="com/ibm/icu/impl/UCharacterName.java"/>
1274             <include name="com/ibm/icu/impl/data/*Break*.java"/>
1275             <include name="com/ibm/icu/lang/**/*.java"/>
1276             <include name="com/ibm/icu/text/*BreakIterator*.java"/>
1277             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1278         </javac>
1279     </target>
1280
1281     <target name="breakIteratorTests" depends="breakIterator" description="Modular build of break iterator test suite">
1282         <mkdir dir="${module.tests.dir}"/>
1283         <javac destdir="${module.tests.dir}"
1284                 source="${javac.source}"
1285                 target="${javac.target}"
1286                 encoding="${java.src.encoding}"
1287                 classpath="${module.bin.dir}"
1288                 debug="on" deprecation="off">
1289             <src path="${icu4j.core.dir}/src"/>
1290             <src path="${icu4j.test-framework.dir}/src"/>
1291             <src path="${icu4j.core-tests.dir}/src"/>
1292
1293             <patternset refid="common.test.sources"/>
1294             <include name="com/ibm/icu/dev/test/rbbi/**/*.java"/>
1295         </javac>
1296
1297         <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt"
1298                 todir="${module.tests.dir}/com/ibm/icu/dev/test/rbbi"/>
1299     </target>
1300
1301     <!-- Calendar -->
1302     <target name="calendar" description="Modular build of calendar services">
1303         <mkdir dir="${module.bin.dir}"/>
1304         <javac srcdir="${icu4j.core.dir}/src"
1305                 destdir="${module.bin.dir}"
1306                 source="${javac.source}"
1307                 target="${javac.target}"
1308                 encoding="${java.src.encoding}"
1309                 debug="on" deprecation="off">
1310             <include name="com/ibm/icu/impl/data/*Holiday*.java"/>
1311             <include name="com/ibm/icu/impl/TimeZoneNames*.java"/>
1312             <include name="com/ibm/icu/lang/UCharacter.java"/>
1313             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1314             <include name="com/ibm/icu/text/NumberFormatServiceShim.java"/>
1315             <include name="com/ibm/icu/util/*Calendar*.java"/>
1316         </javac>
1317
1318         <!-- Calendar does not require Collation data, BreakIterator data -->
1319         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1320             <patternset>
1321                 <include name="**/pnames.icu" />
1322                 <include name="**/ucase.icu" />
1323                 <include name="**/unorm.icu" />
1324                 <include name="**/uprops.icu" />
1325                 <include name="**/unames.icu" />
1326                 <include name="**/*.res" />
1327                 <exclude name="**/coll/*.res" />
1328                 <exclude name="**/translit/*.res" />
1329             </patternset>
1330         </unjar>
1331         <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
1332             <patternset>
1333                 <include name="**/*.res" />
1334             </patternset>
1335         </unjar>
1336     </target>
1337
1338     <target name="calendarTests" depends="calendar" description="Modular build of calendar test suite">
1339         <mkdir dir="${module.tests.dir}"/>
1340         <javac destdir="${module.tests.dir}"
1341                 source="${javac.source}"
1342                 target="${javac.target}"
1343                 encoding="${java.src.encoding}"
1344                 classpath="${module.bin.dir}"
1345                 debug="on" deprecation="off">
1346             <src path="${icu4j.core.dir}/src"/>
1347             <src path="${icu4j.test-framework.dir}/src"/>
1348             <src path="${icu4j.core-tests.dir}/src"/>
1349
1350             <patternset refid="common.test.sources"/>
1351             <include name="com/ibm/icu/dev/test/calendar/**/*.java" />
1352         </javac>
1353
1354         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1355             <patternset>
1356                 <include name="**/calendar.res"/>
1357             </patternset>
1358         </unjar>
1359     </target>
1360
1361     <!-- Collator -->
1362     <!-- this module will soon be obsolete, use the collate jar -->
1363     <target name="collator" description="Modular build of collator services">
1364         <mkdir dir="${module.bin.dir}"/>
1365         <javac  destdir="${module.bin.dir}"
1366                 source="${javac.source}"
1367                 target="${javac.target}"
1368                 encoding="${java.src.encoding}"
1369                 debug="on" deprecation="off">
1370             <src path="${icu4j.core.dir}/src"/>
1371             <src path="${icu4j.collate.dir}/src"/>
1372
1373             <include name="com/ibm/icu/impl/data/*Break*.java"/>
1374             <include name="com/ibm/icu/text/*BreakIterator*.java"/>
1375             <include name="com/ibm/icu/text/*Collation*.java"/>
1376             <include name="com/ibm/icu/text/*Collator*.java"/>
1377             <include name="com/ibm/icu/text/Normalizer.java"/>
1378             <include name="com/ibm/icu/text/Replaceable.java"/>
1379             <include name="com/ibm/icu/text/ReplaceableString.java"/>
1380             <include name="com/ibm/icu/text/UnicodeFilter.java"/>
1381             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1382             <include name="com/ibm/icu/text/UTF16.java"/>
1383         </javac>
1384
1385         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1386             <patternset>
1387                 <include name="**/*.icu"/>
1388                 <include name="**/coll/*.res"/>
1389                 <include name="**/*.brk"/>
1390                 <include name="**/*.nrm"/>
1391                 <include name="**/icudt${icu4j.data.version}b/res_index.res"/>
1392             </patternset>
1393         </unjar>
1394     </target>
1395
1396     <target name="collatorTests" depends="collator" description="Modular build of collator test suite">
1397         <mkdir dir="${module.tests.dir}"/>
1398         <javac destdir="${module.tests.dir}"
1399                 source="${javac.source}"
1400                 target="${javac.target}"
1401                 encoding="${java.src.encoding}"
1402                 classpath="${module.bin.dir}"
1403                 debug="on" deprecation="off">
1404             <src path="${icu4j.core.dir}/src"/>
1405             <src path="${icu4j.test-framework.dir}/src"/>
1406             <src path="${icu4j.collate-tests.dir}/src"/>
1407
1408             <patternset refid="common.test.sources"/>
1409             <include name="com/ibm/icu/dev/test/TestAllCollate.java"/>
1410             <include name="com/ibm/icu/dev/test/collator/**/*.java"/>
1411             <include name="java,com/ibm/icu/dev/test/search/**/*.java"/>
1412             <exclude name="com/ibm/icu/dev/test/collator/AlphabeticIndexTest.java"/>
1413             <exclude name="com/ibm/icu/dev/test/collator/RandomCollator.java"/>
1414             <exclude name="com/ibm/icu/dev/test/collator/IndexCharactersTest.java"/>
1415         </javac>
1416
1417         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1418             <patternset>
1419                 <include name="**/DataDrivenCollationTest.res"/>
1420             </patternset>
1421         </unjar>
1422         <copy todir="${module.tests.dir}">
1423             <fileset dir="${icu4j.collate-tests.dir}/src">
1424                 <include name="com/ibm/icu/dev/data/riwords.txt"/>
1425                 <include name="com/ibm/icu/dev/data/CollationTest_*.txt"/>
1426             </fileset>
1427         </copy>
1428     </target>
1429
1430     <!-- Compression -->
1431     <target name="compression" description="Modular build of compression services">
1432         <mkdir dir="${module.bin.dir}"/>
1433         <javac srcdir="${icu4j.core.dir}/src"
1434                 destdir="${module.bin.dir}"
1435                 source="${javac.source}"
1436                 target="${javac.target}"
1437                 encoding="${java.src.encoding}"
1438                 debug="on" deprecation="off">
1439             <include name="com/ibm/icu/text/SCSU.java"/>
1440             <include name="com/ibm/icu/text/UnicodeCompressor.java"/>
1441             <include name="com/ibm/icu/text/UnicodeDecompressor.java"/>
1442         </javac>
1443     </target>
1444
1445     <target name="compressionTests" depends="compression" description="Modular build of compression test suite">
1446         <mkdir dir="${module.tests.dir}"/>
1447         <javac destdir="${module.tests.dir}"
1448                 source="${javac.source}"
1449                 target="${javac.target}"
1450                 encoding="${java.src.encoding}"
1451                 classpath="${module.bin.dir}"
1452                 debug="on" deprecation="off">
1453             <src path="${icu4j.core.dir}/src"/>
1454             <src path="${icu4j.test-framework.dir}/src"/>
1455             <src path="${icu4j.core-tests.dir}/src"/>
1456
1457             <patternset refid="common.test.sources"/>
1458             <include name="com/ibm/icu/dev/test/compression/**/*.java"/>
1459         </javac>
1460     </target>
1461
1462     <!-- Format -->
1463     <target name="format" description="Modular build of format services">
1464         <mkdir dir="${module.bin.dir}"/>
1465         <javac srcdir="${icu4j.core.dir}/src"
1466                 destdir="${module.bin.dir}"
1467                 source="${javac.source}"
1468                 target="${javac.target}"
1469                 encoding="${java.src.encoding}"
1470                 debug="on" deprecation="off">
1471             <include name="com/ibm/icu/impl/TimeZoneNames*.java"/>
1472             <include name="com/ibm/icu/lang/UCharacter.java"/>
1473             <include name="com/ibm/icu/text/BreakIteratorFactory.java"/>
1474             <include name="com/ibm/icu/text/*Collator*.java"/>
1475             <include name="com/ibm/icu/text/*Format*.java"/>
1476             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1477             <include name="com/ibm/icu/util/CalendarServiceShim.java"/>
1478         </javac>
1479
1480         <javac srcdir="${icu4j.regiondata.dir}/src"
1481                 destdir="${module.bin.dir}"
1482                 source="${javac.source}"
1483                 target="${javac.target}"
1484                 encoding="${java.src.encoding}"
1485                 debug="on" deprecation="off"/>
1486
1487         <javac srcdir="${icu4j.currdata.dir}/src"
1488                 destdir="${module.bin.dir}"
1489                 source="${javac.source}"
1490                 target="${javac.target}"
1491                 encoding="${java.src.encoding}"
1492                 debug="on" deprecation="off"/>
1493
1494         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1495             <patternset>
1496                 <include name="**/*.icu"/>
1497                 <include name="**/*.brk"/>
1498                 <include name="**/*.res"/>
1499                 <exclude name="**/translit/*.res"/>
1500             </patternset>
1501         </unjar>
1502         <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
1503             <patternset>
1504                 <include name="**/*.res" />
1505             </patternset>
1506         </unjar>
1507     </target>
1508
1509     <target name="formatTests" depends="format" description="Modular build of format test suite">
1510         <mkdir dir="${module.tests.dir}"/>
1511         <javac destdir="${module.tests.dir}"
1512                 source="${javac.source}"
1513                 target="${javac.target}"
1514                 encoding="${java.src.encoding}"
1515                 classpath="${module.bin.dir}"
1516                 debug="on" deprecation="off">
1517             <src path="${icu4j.core.dir}/src"/>
1518             <src path="${icu4j.test-framework.dir}/src"/>
1519             <src path="${icu4j.core-tests.dir}/src"/>
1520
1521             <patternset refid="common.test.sources"/>
1522             <include name="com/ibm/icu/dev/test/format/**/*.java"/>
1523             <exclude name="com/ibm/icu/dev/test/format/GlobalizationPreferencesTest.java"/>
1524         </javac>
1525
1526         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1527             <patternset>
1528                 <include name="**/format.res"/>
1529             </patternset>
1530         </unjar>
1531
1532         <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/test/format/NumberFormatTestCases.txt"
1533                 todir="${module.tests.dir}/com/ibm/icu/dev/test/format"/>
1534
1535     </target>
1536
1537     <!-- Normalizer -->
1538     <target name="normalizer" description="Modular build of normalizer services">
1539         <mkdir dir="${module.bin.dir}"/>
1540         <javac srcdir="${icu4j.core.dir}/src"
1541                 destdir="${module.bin.dir}"
1542                 source="${javac.source}"
1543                 target="${javac.target}"
1544                 encoding="${java.src.encoding}"
1545                 debug="on" deprecation="off">
1546             <include name="com/ibm/icu/lang/**/*"/>
1547             <include name="com/ibm/icu/text/CanonicalIterator.java"/>
1548             <include name="com/ibm/icu/text/Normalizer.java"/>
1549             <include name="com/ibm/icu/text/Replaceable.java"/>
1550             <include name="com/ibm/icu/text/ReplaceableString.java"/>
1551             <include name="com/ibm/icu/text/UCharacterIterator.java"/>
1552             <include name="com/ibm/icu/text/UForwardCharacterIterator.java"/>
1553             <include name="com/ibm/icu/text/UnicodeFilter.java"/>
1554             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1555             <include name="com/ibm/icu/text/UTF16.java"/>
1556         </javac>
1557
1558         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1559             <patternset>
1560                 <include name="**/ubidi.icu"/>
1561                 <include name="**/ucase.icu"/>
1562                 <include name="**/unorm.icu"/>
1563                 <include name="**/uprops.icu"/>
1564                 <include name="**/pnames.icu"/>
1565                 <include name="**/unames.icu"/>
1566                 <include name="**/*.nrm"/>
1567             </patternset>
1568         </unjar>
1569     </target>
1570
1571     <target name="normalizerTests" depends="normalizer" description="Modular build of normalizer test suite">
1572         <mkdir dir="${module.tests.dir}"/>
1573         <javac destdir="${module.tests.dir}"
1574                 source="${javac.source}"
1575                 target="${javac.target}"
1576                 encoding="${java.src.encoding}"
1577                 classpath="${module.bin.dir}"
1578                 debug="on" deprecation="off">
1579             <src path="${icu4j.core.dir}/src"/>
1580             <src path="${icu4j.test-framework.dir}/src"/>
1581             <src path="${icu4j.core-tests.dir}/src"/>
1582
1583             <patternset refid="common.test.sources"/>
1584             <include name="com/ibm/icu/dev/test/normalizer/**/*.java"/>
1585             <exclude name="com/ibm/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java"/>
1586         </javac>
1587
1588         <copy todir="${module.tests.dir}">
1589             <fileset dir="${icu4j.core-tests.dir}/src">
1590                 <include name="com/ibm/icu/dev/data/unicode/*.txt"/>
1591                 <exclude name="com/ibm/icu/dev/data/unicode/ucdterms.txt"/>
1592             </fileset>
1593         </copy>
1594
1595         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1596             <patternset>
1597                 <include name="**/testnorm.nrm"/>
1598             </patternset>
1599         </unjar>
1600
1601     </target>
1602
1603     <!-- Character Properties -->
1604     <target name="_copyBasicPropsData">
1605         <mkdir dir="${module.bin.dir}"/>
1606         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1607             <patternset>
1608                 <include name="**/unorm.icu"/>
1609                 <include name="**/uprops.icu"/>
1610                 <include name="**/ubidi.icu"/>
1611                 <include name="**/ucase.icu"/>
1612                 <include name="**/pnames.icu"/>
1613                 <include name="**/unames.icu"/>
1614                 <include name="**/*.nrm"/>
1615             </patternset>
1616         </unjar>
1617     </target>
1618
1619     <target name="_copyFullPropsData">
1620         <mkdir dir="${module.bin.dir}"/>
1621         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1622             <patternset>
1623                 <include name="**/unorm.icu"/>
1624                 <include name="**/uprops.icu"/>
1625                 <include name="**/ubidi.icu"/>
1626                 <include name="**/ucase.icu"/>
1627                 <include name="**/unames.icu"/>
1628                 <include name="**/pnames.icu"/>
1629                 <include name="**/*.res"/>
1630                 <include name="**/*.brk"/>
1631                 <include name="**/*.dict"/>
1632                 <include name="**/*.nrm"/>
1633                 <exclude name="**/coll/*.res"/>
1634                 <exclude name="**/translit/*.res"/>
1635                 <exclude name="**/rbnf/*.res"/>
1636             </patternset>
1637         </unjar>
1638         <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
1639             <patternset>
1640                 <include name="**/*.res" />
1641             </patternset>
1642         </unjar>
1643     </target>
1644
1645     <target name="_propertiesClasses">
1646         <mkdir dir="${module.bin.dir}"/>
1647         <javac srcdir="${icu4j.core.dir}/src"
1648                 destdir="${module.bin.dir}"
1649                 source="${javac.source}"
1650                 target="${javac.target}"
1651                 encoding="${java.src.encoding}"
1652                 debug="on" deprecation="off">
1653             <include name="com/ibm/icu/impl/data/*Break*.java"/>
1654             <include name="com/ibm/icu/lang/**/*"/>
1655             <include name="com/ibm/icu/text/*BreakDictionary*.java"/>
1656             <include name="com/ibm/icu/text/*BreakIterator*.java"/>
1657             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1658         </javac>
1659     </target>
1660
1661     <target name="_propertiesTests">
1662         <mkdir dir="${module.tests.dir}"/>
1663         <javac destdir="${module.tests.dir}"
1664                 source="${javac.source}"
1665                 target="${javac.target}"
1666                 encoding="${java.src.encoding}"
1667                 classpath="${module.bin.dir}"
1668                 debug="on" deprecation="off">
1669             <src path="${icu4j.core.dir}/src"/>
1670             <src path="${icu4j.test-framework.dir}/src"/>
1671             <src path="${icu4j.core-tests.dir}/src"/>
1672
1673             <patternset refid="common.test.sources"/>
1674             <include name="com/ibm/icu/dev/test/lang/**/*.java"/>
1675             <exclude name="com/ibm/icu/dev/test/lang/TestUScriptRun.java"/>
1676         </javac>
1677
1678         <copy todir="${module.tests.dir}">
1679             <fileset dir="${icu4j.core-tests.dir}/src">
1680                 <include name="com/ibm/icu/dev/data/unicode/SpecialCasing.txt"/>
1681                 <include name="com/ibm/icu/dev/data/unicode/UnicodeData.txt"/>
1682             </fileset>
1683         </copy>
1684     </target>
1685
1686     <target name="propertiesBasic" depends="_propertiesClasses, _copyBasicPropsData" description="Modular build of basic character properties"/>
1687
1688     <target name="propertiesBasicTests" depends="propertiesBasic, _propertiesTests" description="Modular build of basic character properties test suite"/>
1689
1690     <target name="propertiesFull" depends="_propertiesClasses, _copyFullPropsData" description="Modular build of full character properties"/>
1691
1692     <target name="propertiesFullTests" depends="propertiesFull, _propertiesTests" description="Modular build of full character properties test suite"/>
1693
1694     <!-- Transliterator -->
1695     <!-- this module will soon be obsolete, use the translit jar -->
1696     <target name="transliterator" depends="_propertiesClasses" description="Modular build of transliterator services">
1697         <mkdir dir="${module.bin.dir}"/>
1698         <javac  destdir="${module.bin.dir}"
1699                 source="${javac.source}"
1700                 target="${javac.target}"
1701                 encoding="${java.src.encoding}"
1702                 debug="on" deprecation="off">
1703             <src path="${icu4j.core.dir}/src"/>
1704             <src path="${icu4j.translit.dir}/src"/>
1705
1706             <include name="com/ibm/icu/impl/*Iterator*.java"/>
1707             <include name="com/ibm/icu/impl/*Property*.java"/>
1708             <include name="com/ibm/icu/impl/data/ResourceReader.java"/>
1709             <include name="com/ibm/icu/impl/UtilityExtensions.java"/>
1710             <include name="com/ibm/icu/text/*Transliterator*.java"/>
1711             <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1712             <include name="com/ibm/icu/text/BreakIteratorFactory.java"/>
1713         </javac>
1714
1715         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1716             <patternset>
1717                 <include name="**/unorm.icu"/>
1718                 <include name="**/uprops.icu"/>
1719                 <include name="**/ubidi.icu"/>
1720                 <include name="**/ucase.icu"/>
1721                 <include name="**/unames.icu"/>
1722                 <include name="**/pnames.icu"/>
1723                 <include name="**/*.brk"/>
1724                 <include name="**/*.dict"/>
1725                 <include name="**/*.nrm"/>
1726                 <include name="**/brkitr/*.res"/>
1727                 <include name="**/translit/*.res"/>
1728             </patternset>
1729         </unjar>
1730     </target>
1731
1732     <target name="transliteratorTests" depends="transliterator" description="Modular build of transliterator test suite">
1733         <mkdir dir="${module.tests.dir}"/>
1734         <javac destdir="${module.tests.dir}"
1735                 source="${javac.source}"
1736                 target="${javac.target}"
1737                 encoding="${java.src.encoding}"
1738                 classpath="${module.bin.dir}"
1739                 debug="on" deprecation="off">
1740             <src path="${icu4j.core.dir}/src"/>
1741             <src path="${icu4j.test-framework.dir}/src"/>
1742             <src path="${icu4j.translit-tests.dir}/src"/>
1743
1744             <patternset refid="common.test.sources"/>
1745             <include name="com/ibm/icu/dev/test/TestAllTranslit.java"/>
1746             <include name="com/ibm/icu/dev/test/translit/**/*.java"/>
1747             <exclude name="com/ibm/icu/dev/test/translit/UnicodeFilterLogic*.java"/>
1748         </javac>
1749
1750         <copy file="${icu4j.translit-tests.dir}/src/com/ibm/icu/dev/test/translit/langtagRegex.txt"
1751                 todir="${module.tests.dir}/com/ibm/icu/dev/test/translit"/>
1752     </target>
1753
1754     <!-- StringPrep -->
1755     <target name="stringPrep" depends="normalizer" description="Modular build of stringprep services">
1756         <mkdir dir="${module.bin.dir}"/>
1757         <javac srcdir="${icu4j.core.dir}/src"
1758                 destdir="${module.bin.dir}"
1759                 source="${javac.source}"
1760                 target="${javac.target}"
1761                 encoding="${java.src.encoding}"
1762                 debug="on" deprecation="off">
1763             <include name="com/ibm/icu/impl/*StringPrep*.java"/>
1764             <include name="com/ibm/icu/text/*IDNA*.java"/>
1765             <include name="com/ibm/icu/text/*StringPrep*.java"/>
1766         </javac>
1767
1768         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1769             <patternset>
1770                 <include name="**/*.spp"/>
1771                 <include name="**/ubidi.icu"/>
1772                 <include name="**/ucase.icu"/>
1773                 <include name="**/unorm.icu"/>
1774                 <include name="**/uprops.icu"/>
1775                 <include name="**/pnames.icu"/>
1776                 <include name="**/unames.icu"/>
1777             </patternset>
1778         </unjar>
1779     </target>
1780
1781     <target name="stringPrepTests" depends="stringPrep" description="Modular build of stringprep test suite">
1782         <mkdir dir="${module.tests.dir}"/>
1783         <javac destdir="${module.tests.dir}"
1784                 source="${javac.source}"
1785                 target="${javac.target}"
1786                 encoding="${java.src.encoding}"
1787                 classpath="${module.bin.dir}"
1788                 debug="on" deprecation="off">
1789             <src path="${icu4j.core.dir}/src"/>
1790             <src path="${icu4j.test-framework.dir}/src"/>
1791             <src path="${icu4j.core-tests.dir}/src"/>
1792
1793             <patternset refid="common.test.sources"/>
1794             <include name="com/ibm/icu/dev/test/stringprep/**/*.java"/>
1795         </javac>
1796
1797         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1798             <patternset>
1799                 <include name="**/*.spp"/>
1800                 <include name="**/idna_rules.res"/>
1801             </patternset>
1802         </unjar>
1803
1804         <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/data/IDNATestInput.txt"
1805                 todir="${module.tests.dir}/com/ibm/icu/dev/data"/>
1806     </target>
1807
1808     <target name="publishToMavenRepo" depends="releaseVer">
1809         <!--
1810             Publish libraries to Maven repositories, snapshot or release depending on current
1811             version in pom.xml.
1812
1813             Prerequisites
1814             
1815             1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks
1816             2) GnuPG
1817             3) Put build-local.properties to specify followings
1818             
1819                 maven-ant-tasks.jar = [location of maven ant tasks jar file]
1820                 gpg.user = ICU Project
1821                 gpg.passphrase = [passprase for ICU Project's PGP key]
1822
1823             4) Maven configuration file ~/.m2/settings.xml
1824                 <settings>
1825                     <servers>
1826                         <server>
1827                             <id>icu4j-releases</id>
1828                             <username>[your JIRA/Nexus ID]</username>
1829                             <password>[your JIRA/Nexus password]</password>
1830                         </server>
1831                         <server>
1832                             <id>icu4j-snapshots</id>
1833                             <username>[your JIRA/Nexus ID]</username>
1834                             <password>[your JIRA/Nexus password]</password>
1835                         </server>
1836                     </servers>
1837                 </settings>
1838
1839             Note: For now, charset.jar and localespi.jar are excluded.
1840         -->
1841         <fail message="Maven Ant Tasks are required to publish libraries. Set maven-ant-tasks.jar property. Maven Ant Tasks URL: http://maven.apache.org/ant-tasks/" unless="maven-ant-tasks.jar"/>
1842         <condition property="no_maven-ant-tasks">
1843             <available file="${maven-ant-tasks.jar}"/>
1844         </condition>
1845         <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/>
1846
1847         <path id="maven-ant-tasks.classpath" path="${maven-ant-tasks.jar}"/>
1848         <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
1849             classpathref="maven-ant-tasks.classpath"/>
1850
1851         <xmlproperty file="pom.xml" prefix="pom.xml"/>
1852
1853         <!-- copy release files -->
1854         <property name="maven.release.dir" value="${release.dir}/maven"/>
1855
1856         <property name="maven.icu4j.jar.versioned.file" value="icu4j-${pom.xml.project.version}.jar"/>
1857         <property name="maven.icu4j-src.jar.versioned.file" value="icu4j-${pom.xml.project.version}-src.jar"/>
1858         <property name="maven.icu4jdocs.jar.file" value="icu4j-${pom.xml.project.version}-javadoc.jar"/>
1859
1860         <mkdir dir="${maven.release.dir}"/>
1861
1862         <copy file="${release.dir}/${icu4j.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4j.jar.versioned.file}"/>
1863         <copy file="${release.dir}/${icu4j-src.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}"/>
1864         <copy file="${release.dir}/${icu4jdocs.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4jdocs.jar.file}"/>
1865
1866         <copy file="pom.xml" todir="${maven.release.dir}"/>
1867
1868         <!-- sign release files-->
1869         <macrodef name="gpg">
1870             <attribute name="file"/>
1871             <sequential>
1872                 <delete file="@{file}.asc" failonerror="false"/>
1873                 <exec executable="gpg">
1874                     <arg value="-u"/>
1875                     <arg value="${gpg.user}"/>
1876                     <arg value="-ab"/>
1877                     <arg value="--passphrase"/>
1878                     <arg value="${gpg.passphrase}"/>
1879                     <arg value="-o"/>
1880                     <arg value="@{file}.asc"/>
1881                     <arg value="@{file}"/>
1882                 </exec>
1883             </sequential>
1884         </macrodef>
1885
1886         <gpg file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}"/>
1887         <gpg file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}"/>
1888         <gpg file="${maven.release.dir}/${maven.icu4jdocs.jar.file}"/>
1889
1890         <gpg file="${maven.release.dir}/pom.xml"/>
1891
1892         <!-- deploy files to the repository -->
1893         <deploy xmlns="urn:maven-artifact-ant" file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}">
1894             <pom file="${maven.release.dir}/pom.xml"/>
1895             <attach file="${maven.release.dir}/pom.xml.asc" type="pom.asc"/>
1896
1897             <attach file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}.asc" type="jar.asc"/>
1898             <attach file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}" classifier="sources"/>
1899             <attach file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}.asc" classifier="sources" type="jar.asc"/>
1900             <attach file="${maven.release.dir}/${maven.icu4jdocs.jar.file}" classifier="javadoc"/>
1901             <attach file="${maven.release.dir}/${maven.icu4jdocs.jar.file}.asc" classifier="javadoc" type="jar.asc"/>
1902         </deploy>
1903     </target>
1904
1905 </project>