2 *******************************************************************************
3 * Copyright (C) 1997-2011, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
7 <project name="icu4j" default="jar" basedir=".">
8 <property file="build-local.properties"/>
9 <property file="build.properties"/>
11 <property name="shared.dir" value="main/shared"/>
12 <import file="${shared.dir}/build/common-targets.xml"/>
14 <property environment="env"/>
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"/>
22 <property name="icu4jdemos.jar.file" value="icu4jdemos.jar"/>
24 <!-- icu4j release files -->
25 <property name="icu4j.jar.versioned.file" value="icu4j-${release.file.ver}.jar"/>
26 <property name="icu4j-charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}.jar"/>
27 <property name="icu4j-localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}.jar"/>
29 <property name="icu4j-src.jar.versioned.file" value="icu4j-${release.file.ver}-src.jar"/>
30 <property name="icu4j-charset-src.jar.versioned.file" value="icu4j-charset-${release.file.ver}-src.jar"/>
31 <property name="icu4j-localespi-src.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-src.jar"/>
33 <property name="icu4jsrc.zip.file" value="icu4j-${release.file.ver}.zip"/>
34 <property name="icu4jsrc.tgz.file" value="icu4j-${release.file.ver}.tgz"/>
36 <property name="icu4jdocs.jar.file" value="icu4j-${release.file.ver}-docs.jar"/>
39 <property name="release.dir" value="release"/>
40 <property name="doc.dir" value="doc"/>
42 <!-- Java version check -->
43 <condition property="is.java6.plus">
45 <contains string="${java.version}" substring="1.6."/>
46 <contains string="${java.version}" substring="1.7."/>
49 <condition property="is.java5">
50 <contains string="${java.version}" substring="1.5."/>
52 <fail message="The JDK version is too old or unknown.">
56 <isset property="is.java6.plus"/>
57 <isset property="is.java5"/>
63 <!-- Build environment info -->
64 <property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/>
65 <target name="info" description="Display the build environment information">
66 <echo message="----- Build Environment Information -------------------"/>
67 <echo message="Java Home: ${java.home}"/>
68 <echo message="Java Version: ${java.version}"/>
69 <echo message="Ant Home: ${ant.home}"/>
70 <echo message="Ant Version: ${ant.version}"/>
71 <echo message="OS: ${os.name}"/>
72 <echo message="OS Version: ${os.version}"/>
73 <echo message="OS Arch: ${os.arch}"/>
74 <echo message="Host: ${env.COMPUTERNAME}"/>
75 <echo message="-------------------------------------------------------"/>
78 <target name="clean" description="Clean up build outputs">
79 <ant dir="${icu4j.core.dir}" target="clean" inheritAll="false"/>
80 <ant dir="${icu4j.collate.dir}" target="clean" inheritAll="false"/>
81 <ant dir="${icu4j.charset.dir}" target="clean" inheritAll="false"/>
82 <ant dir="${icu4j.currdata.dir}" target="clean" inheritAll="false"/>
83 <ant dir="${icu4j.langdata.dir}" target="clean" inheritAll="false"/>
84 <ant dir="${icu4j.localespi.dir}" target="clean" inheritAll="false"/>
85 <ant dir="${icu4j.regiondata.dir}" target="clean" inheritAll="false"/>
86 <ant dir="${icu4j.translit.dir}" target="clean" inheritAll="false"/>
87 <ant dir="${icu4j.test-framework.dir}" target="clean" inheritAll="false"/>
88 <ant dir="${icu4j.core-tests.dir}" target="clean" inheritAll="false"/>
89 <ant dir="${icu4j.collate-tests.dir}" target="clean" inheritAll="false"/>
90 <ant dir="${icu4j.charset-tests.dir}" target="clean" inheritAll="false"/>
91 <ant dir="${icu4j.localespi-tests.dir}" target="clean" inheritAll="false"/>
92 <ant dir="${icu4j.packaging-tests.dir}" target="clean" inheritAll="false"/>
93 <ant dir="${icu4j.translit-tests.dir}" target="clean" inheritAll="false"/>
94 <ant dir="${icu4j.build-tools.dir}" target="clean" inheritAll="false"/>
95 <ant dir="${icu4j.tools.dir}" target="clean" inheritAll="false"/>
96 <ant dir="${icu4j.demos.dir}" target="clean" inheritAll="false"/>
98 <!-- delete all .jar files root directory -->
100 <fileset dir="." includes="icu4j*.jar"/>
103 <delete dir="${release.dir}"/>
104 <delete dir="${doc.dir}"/>
105 <delete dir="${out.dir}"/>
106 <delete dir="${module.dir}"/>
108 <ant dir="eclipse-build" target="clean" inheritAll="false"/>
111 <!-- meta build targets -->
112 <target name="all" depends="info, main, tests, build-tools, tools, demos, jar, docs" description="Build all primary targets"/>
113 <target name="main" depends="info, core, collate, charset, currdata, langdata, regiondata, translit, localespi" description="Build ICU4J runtime library classes"/>
114 <target name="tests" depends="info, core-tests, charset-tests, collate-tests, packaging-tests, translit-tests, localespi-tests" description="Build ICU4J test classes"/>
115 <target name="release" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz" description="Build all ICU4J release files for distribution"/>
117 <target name="secure" depends="icu4jJar" description="(Deprecated)Build ICU4J API and test classes for running the ICU4J test suite with Java security manager enabled"/>
119 <!-- Check to see if JVM_OPTIONS enviroment variable is set. This can be use to set the heap size. -->
120 <property name="env.JVM_OPTIONS" value=""/>
121 <property name="jvm_options" value="${env.JVM_OPTIONS}"/>
122 <target name="check" description="Run the standard ICU4J test suite">
123 <antcall target="_runCheck">
124 <param name="runcheck.arg" value="-n"/>
125 <param name="runcheck.jvmarg" value="${jvm_options}"/>
129 <target name="exhaustiveCheck" description="Run the standard ICU4J test suite in exhaustive mode">
130 <antcall target="_runCheck">
131 <param name="runcheck.arg" value="-n -e10"/>
132 <param name="runcheck.jvmarg" value="${jvm_options}"/>
136 <target name="timeZoneCheck" description="Run the complete test for TimeZoneRoundTripAll">
137 <antcall target="_runCheck">
138 <param name="runcheck.arg" value="-n -prop:TimeZoneRoundTripAll=true Core/Format/DateFormat/TimeZoneFormatTest"/>
139 <param name="runcheck.jvmarg" value="${jvm_options}"/>
143 <target name="jdktzCheck" description="Run the standard ICU4J test suite with JDK TimeZone">
144 <antcall target="_runCheck">
145 <param name="runcheck.arg" value="-n"/>
146 <param name="runcheck.jvmarg" value="${jvm_options} -Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=JDK"/>
150 <target name="_runCheck" depends="main, tests">
151 <echo message="JVM argument: ${runcheck.jvmarg} -Djava.awt.headless=true"/>
152 <echo message="Test argument: ${runcheck.arg}"/>
154 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
155 <arg line="${runcheck.arg}"/>
156 <jvmarg line="${runcheck.jvmarg} -Djava.awt.headless=true"/>
158 <pathelement path="${icu4j.core.jar}"/>
159 <pathelement path="${icu4j.collate.jar}"/>
160 <pathelement path="${icu4j.charset.jar}"/>
161 <pathelement path="${icu4j.currdata.jar}"/>
162 <pathelement path="${icu4j.langdata.jar}"/>
163 <pathelement path="${icu4j.regiondata.jar}"/>
164 <pathelement path="${icu4j.translit.jar}"/>
165 <pathelement path="${icu4j.test-framework.jar}"/>
166 <pathelement path="${icu4j.core-tests.jar}"/>
167 <pathelement path="${icu4j.collate-tests.jar}"/>
168 <pathelement path="${icu4j.charset-tests.jar}"/>
169 <pathelement path="${icu4j.translit-tests.jar}"/>
174 <target name="runTest" description="Run a ICU4J test case, without calling any other build targets">
175 <echo message="JVM argument: ${jvm_options} -Djava.awt.headless=true"/>
176 <echo message="Test argument: ${testarg}"/>
178 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
179 <arg line="${testarg}"/>
180 <jvmarg line="${jvm_options} -Djava.awt.headless=true"/>
182 <pathelement path="${icu4j.core.jar}"/>
183 <pathelement path="${icu4j.collate.jar}"/>
184 <pathelement path="${icu4j.charset.jar}"/>
185 <pathelement path="${icu4j.currdata.jar}"/>
186 <pathelement path="${icu4j.langdata.jar}"/>
187 <pathelement path="${icu4j.regiondata.jar}"/>
188 <pathelement path="${icu4j.translit.jar}"/>
189 <pathelement path="${icu4j.test-framework.jar}"/>
190 <pathelement path="${icu4j.core-tests.jar}"/>
191 <pathelement path="${icu4j.collate-tests.jar}"/>
192 <pathelement path="${icu4j.charset-tests.jar}"/>
193 <pathelement path="${icu4j.translit-tests.jar}"/>
198 <target name="packagingCheck" depends="info, core, packaging-tests" description="Run packaging tests">
199 <!-- region data but no language data -->
200 <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
203 <pathelement path="${icu4j.core.jar}"/>
204 <pathelement path="${icu4j.charset.jar}"/>
205 <pathelement path="${icu4j.test-framework.jar}"/>
206 <pathelement path="${icu4j.packaging-tests.jar}"/>
207 <pathelement path="${icu4j.regiondata.jar}"/>
210 <!-- language data but no region data -->
211 <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
214 <pathelement path="${icu4j.core.jar}"/>
215 <pathelement path="${icu4j.charset.jar}"/>
216 <pathelement path="${icu4j.test-framework.jar}"/>
217 <pathelement path="${icu4j.packaging-tests.jar}"/>
218 <pathelement path="${icu4j.langdata.jar}"/>
221 <!-- neither region nor language data -->
222 <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
225 <pathelement path="${icu4j.core.jar}"/>
226 <pathelement path="${icu4j.charset.jar}"/>
227 <pathelement path="${icu4j.test-framework.jar}"/>
228 <pathelement path="${icu4j.packaging-tests.jar}"/>
233 <target name="coreCheck" depends="info, core, currdata, langdata, regiondata, core-tests" description="Run only the core tests">
234 <java classname="com.ibm.icu.dev.test.TestAllCore" fork="yes" failonerror="true">
237 <pathelement path="${icu4j.core.jar}"/>
238 <pathelement path="${icu4j.currdata.jar}"/>
239 <pathelement path="${icu4j.langdata.jar}"/>
240 <pathelement path="${icu4j.regiondata.jar}"/>
241 <pathelement path="${icu4j.test-framework.jar}"/>
242 <pathelement path="${icu4j.core-tests.jar}"/>
247 <target name="collateCheck" depends="info, core, collate, currdata, langdata, regiondata, core-tests, collate-tests" description="Run only the collation tests">
248 <java classname="com.ibm.icu.dev.test.TestAllCollate" fork="yes" failonerror="true">
251 <pathelement path="${icu4j.core.jar}"/>
252 <pathelement path="${icu4j.collate.jar}"/>
253 <pathelement path="${icu4j.test-framework.jar}"/>
254 <pathelement path="${icu4j.collate-tests.jar}"/>
256 <!-- for now, collateCheck needs currdata, langdata and regiondata, because of GlobalizationPreferencesTest" -->
257 <pathelement path="${icu4j.currdata.jar}"/>
258 <pathelement path="${icu4j.langdata.jar}"/>
259 <pathelement path="${icu4j.regiondata.jar}"/>
260 <pathelement path="${icu4j.core-tests.jar}"/>
265 <target name="translitCheck" depends="info, core, translit, translit-tests" description="Run the ICU4J Translit test suite">
266 <java classname="com.ibm.icu.dev.test.TestAllTranslit" fork="yes" failonerror="true">
269 <pathelement path="${icu4j.core.jar}"/>
270 <pathelement path="${icu4j.translit.jar}"/>
271 <pathelement path="${icu4j.test-framework.jar}"/>
272 <pathelement path="${icu4j.translit-tests.jar}"/>
277 <target name="localespiCheck" if="is.java6.plus" depends="info" description="Run the ICU4J Locale SPI test suite">
278 <antcall target="_runLocalespiCheck"/>
281 <target name="_runLocalespiCheck" depends="localespi, localespi-tests">
282 <java classname="com.ibm.icu.dev.test.localespi.TestAll" fork="yes" failonerror="true">
283 <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}"/>
286 <pathelement path="${icu4j.localespi-tests.jar}"/>
287 <pathelement path="${icu4j.test-framework.jar}"/>
292 <target name="secureCheck" depends="main, jar, icu4jtestsJar" description="Run the secure (applet-like) ICU4J test suite">
293 <property name="securecheck.arg" value="-n -w"/>
294 <property name="securecheck.jvmarg"
295 value="${jvm_options} -Djava.security.manager -Djava.security.policy=${shared.dir}/data/security.policy -Djava.awt.headless=true"/>
297 <echo message="JVM argument: ${securecheck.jvmarg}"/>
298 <echo message="Test argument: ${securecheck.arg}"/>
300 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
301 <arg line="${securecheck.arg}"/>
302 <jvmarg line="${securecheck.jvmarg}"/>
304 <pathelement path="${icu4j.jar.file}"/>
305 <pathelement path="${icu4j-charset.jar.file}"/>
306 <pathelement path="${icu4jtests.jar.file}"/>
312 <target name="jar" depends="icu4jJar, charset, localespi" description="Build ICU4J runtime library jar files">
313 <copy file="${icu4j.charset.jar}" tofile="${icu4j-charset.jar.file}"/>
314 <copy file="${icu4j.localespi.jar}" tofile="${icu4j-localespi.jar.file}" failonerror="false"/>
317 <target name="icu4jJar" depends="info, core, collate, currdata, langdata, regiondata, translit" description="Build ICU4J all-in-one core jar">
318 <mkdir dir="${out.dir}"/>
321 <copy file="manifest.stub" todir="${out.dir}">
323 <filter token="SPECVERSION" value="${jar.spec.version}"/>
324 <filter token="IMPLVERSION" value="${jar.impl.version}"/>
325 <filter token="COPYRIGHT" value="${jar.copyright.info}"/>
326 <filter token="EXECENV" value="${jar.exec.env}"/>
331 <jar jarfile="${icu4j.jar.file}"
333 manifest="${out.dir}/manifest.stub">
334 <fileset dir="${icu4j.core.dir}/${bin.dir}" includes="**/*"/>
335 <fileset dir="${icu4j.collate.dir}/${bin.dir}" includes="**/*"/>
336 <fileset dir="${icu4j.currdata.dir}/${bin.dir}" includes="**/*"/>
337 <fileset dir="${icu4j.langdata.dir}/${bin.dir}" includes="**/*"/>
338 <fileset dir="${icu4j.regiondata.dir}/${bin.dir}" includes="**/*"/>
339 <fileset dir="${icu4j.translit.dir}/${bin.dir}" includes="**/*"/>
340 <fileset dir="${shared.dir}/licenses">
341 <include name="license.html"/>
342 <include name="unicode-license.txt"/>
347 <target name="icu4jtestsJar" depends="info, tests" description="Build ICU4J all-in-one test jar">
348 <jar jarfile="${icu4jtests.jar.file}"
350 <fileset dir="${icu4j.test-framework.dir}/${bin.dir}" includes="**/*"/>
351 <fileset dir="${icu4j.core-tests.dir}/${bin.dir}" includes="**/*"/>
352 <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}" includes="**/*"/>
353 <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}" includes="**/*"/>
354 <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}" includes="**/*"/>
358 <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file">
359 <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/>
363 <!-- release targests -->
364 <target name="releaseBinaries" depends="icu4jJar, charset, localespi" description="Build ICU4J binary files for distribution">
365 <mkdir dir="${release.dir}"/>
366 <copy file="${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.versioned.file}"/>
367 <copy file="${icu4j.charset.jar}" tofile="${release.dir}/${icu4j-charset.jar.versioned.file}"/>
368 <copy file="${icu4j.localespi.jar}" tofile="${release.dir}/${icu4j-localespi.jar.versioned.file}"/>
371 <target name="releaseSrcJars" description="Build ICU4J src jar files for distribution">
372 <!-- icu4j src-jar -->
373 <mkdir dir="${release.dir}"/>
374 <jar jarfile="${release.dir}/${icu4j-src.jar.versioned.file}"
376 <fileset dir="${icu4j.core.dir}/${src.dir}" includes="**/*.java"/>
377 <fileset dir="${icu4j.collate.dir}/${src.dir}" includes="**/*.java"/>
378 <fileset dir="${icu4j.currdata.dir}/${src.dir}" includes="**/*.java"/>
379 <fileset dir="${icu4j.langdata.dir}/${src.dir}" includes="**/*.java"/>
380 <fileset dir="${icu4j.regiondata.dir}/${src.dir}" includes="**/*.java"/>
381 <fileset dir="${icu4j.translit.dir}/${src.dir}" includes="**/*.java"/>
382 <fileset dir="${shared.dir}/licenses">
383 <include name="license.html"/>
384 <include name="unicode-license.txt"/>
388 <!-- charset/localespi src-jar -->
389 <ant dir="${icu4j.charset.dir}" target="src-jar" inheritAll="false"/>
390 <ant dir="${icu4j.localespi.dir}" target="src-jar" inheritAll="false"/>
392 <copy file="${icu4j.charset.dir}/${out.dir}/lib/icu4j-charset-src.jar" tofile="${release.dir}/${icu4j-charset-src.jar.versioned.file}"/>
393 <copy file="${icu4j.localespi.dir}/${out.dir}/lib/icu4j-localespi-src.jar" tofile="${release.dir}/${icu4j-localespi-src.jar.versioned.file}"/>
397 <target name="releaseDocs" depends="docs" description="Build ICU4J API reference doc jar file for distribution">
398 <mkdir dir="${release.dir}"/>
399 <jar jarfile="${release.dir}/${icu4jdocs.jar.file}" compress="true" basedir="${doc.dir}"/>
402 <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/>
404 <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)">
405 <delete dir="${src.release.wrk.dir}"/>
406 <delete file="${icu4jsrc.zip.file}"/>
408 <mkdir dir="${src.release.wrk.dir}"/>
411 destdir="${src.release.wrk.dir}"
414 <include name="main/**/*"/>
415 <include name="demos/**/*"/>
416 <include name="tools/**/*"/>
417 <include name="*.html"/>
418 <include name="*.xml"/>
419 <include name="*.properties"/>
420 <exclude name="**/out/**/*"/>
421 <exclude name="**/*.jar"/>
422 <exclude name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
423 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
424 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
425 <exclude name="tools/build/icu4j*.api*.gz"/>
428 <mkdir dir="${release.dir}"/>
429 <zip destfile="${release.dir}/${icu4jsrc.zip.file}">
430 <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
431 <fileset dir="${basedir}">
432 <include name="main/shared/data/*.jar"/>
433 <include name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
434 <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
435 <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
436 <include name="tools/build/icu4j*.api*.gz"/>
440 <delete dir="${src.release.wrk.dir}"/>
443 <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)">
444 <delete dir="${src.release.wrk.dir}"/>
445 <delete file="${icu4jsrc.tgz.file}"/>
447 <mkdir dir="${src.release.wrk.dir}"/>
450 destdir="${src.release.wrk.dir}"
453 <include name="main/**/*"/>
454 <include name="demos/**/*"/>
455 <include name="tools/**/*"/>
456 <include name="*.html"/>
457 <include name="*.xml"/>
458 <include name="*.properties"/>
459 <exclude name="**/out/**/*"/>
460 <exclude name="**/*.jar"/>
461 <exclude name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
462 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
463 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
464 <exclude name="tools/build/icu4j*.api*.gz"/>
467 <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/>
469 <tar destfile="${icu4jsrc.tar}" longfile="gnu">
470 <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
471 <fileset dir="${basedir}">
472 <include name="main/shared/data/*.jar"/>
473 <include name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
474 <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
475 <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
476 <include name="tools/build/icu4j*.api*.gz"/>
480 <mkdir dir="${release.dir}"/>
481 <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/>
483 <delete dir="${src.release.wrk.dir}"/>
484 <delete file="${icu4jsrc.tar}"/>
487 <!-- compile targets -->
488 <target name="core" description="Build core classes">
489 <ant dir="${icu4j.core.dir}" inheritAll="false"/>
492 <target name="collate" depends="core" description="Build collation classes">
493 <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
496 <target name="charset" depends="core" description="Build charset classes">
497 <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
500 <target name="currdata" depends="core" description="Build currency data classes">
501 <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
504 <target name="langdata" depends="core" description="Build language data classes">
505 <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
508 <target name="localespi" if="is.java6.plus" description="Build Locale SPI classes">
509 <antcall target="_build-localespi"/>
512 <target name="_build-localespi" depends="core, collate, currdata, langdata, regiondata">
513 <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
516 <target name="regiondata" depends="core" description="Build region data classes">
517 <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
520 <target name="translit" depends="core" description="Build translit classes">
521 <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
524 <target name="test-framework" depends="core" description="Build test framework classes">
525 <ant dir="${icu4j.test-framework.dir}" inheritAll="false"/>
528 <target name="core-tests" depends="core, test-framework" description="Build core tests">
529 <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/>
532 <target name="collate-tests" depends="collate, test-framework" description="Build core tests">
533 <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/>
536 <target name="charset-tests" depends="charset, test-framework" description="Build charset tests">
537 <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/>
540 <target name="localespi-tests" if="is.java6.plus" description="Build Locale SPI tests">
541 <antcall target="_build-localespi-tests"/>
544 <target name="_build-localespi-tests" depends="localespi, test-framework">
545 <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/>
548 <target name="packaging-tests" depends="test-framework" description="Build packaging tests">
549 <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/>
552 <target name="translit-tests" depends="translit, test-framework" description="Build translit tests">
553 <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/>
556 <target name="demos" depends="core, charset, translit" description="Build demo classes">
557 <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
560 <target name="build-tools" description="Build build-tool classes">
561 <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
564 <target name="tools" depends="core, core-tests, collate, translit, translit-tests" description="Build tool classes">
565 <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
569 <target name="docs" depends="info, build-tools" description="Build API documents">
572 nodeprecatedlist="true"
575 encoding="${java.src.encoding}"
577 bottom="<font size=-1>Copyright (c) ${current.year} IBM Corporation and others.</font>"
578 additionalparam="-breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet"
579 link="http://java.sun.com/javase/6/docs/api/"
581 <packageset dir="${icu4j.core.dir}/src">
582 <include name="com/ibm/icu/lang/**"/>
583 <include name="com/ibm/icu/math/**"/>
584 <include name="com/ibm/icu/text/**"/>
585 <include name="com/ibm/icu/util/**"/>
587 <packageset dir="${icu4j.collate.dir}/src">
588 <include name="com/ibm/icu/text/**"/>
590 <packageset dir="${icu4j.translit.dir}/src">
591 <include name="com/ibm/icu/text/**"/>
593 <packageset dir="${icu4j.charset.dir}/src">
594 <include name="com/ibm/icu/charset/**"/>
599 <!-- Code coverage target -->
600 <property name="clover.out.dir" value="${out.dir}/clover"/>
601 <property name="clover.jar" location="${env.CLOVER_DIR}/clover.jar"/>
602 <taskdef resource="cloverlib.xml" classpath="${clover.jar}" onerror="ignore"/>
604 <target name="codeCoverage" depends="clean" description="Generate code coverage report with clover">
605 <!-- Set up clover -->
606 <mkdir dir="${clover.out.dir}"/>
607 <clover-setup initstring="${clover.out.dir}/clover.db">
609 <exclude name="**/dev/**/*.java"/>
611 <methodContext name="API" regexp="(.* )?public .*"/>
614 <!-- Build components with clover instrumentation -->
615 <ant dir="${icu4j.core.dir}" inheritAll="false" inheritRefs="true">
616 <property name="build.compiler" value="${build.compiler}"/>
618 <ant dir="${icu4j.collate.dir}" inheritAll="false" inheritRefs="true">
619 <property name="build.compiler" value="${build.compiler}"/>
621 <ant dir="${icu4j.charset.dir}" inheritAll="false" inheritRefs="true">
622 <property name="build.compiler" value="${build.compiler}"/>
624 <ant dir="${icu4j.currdata.dir}" inheritAll="false" inheritRefs="true">
625 <property name="build.compiler" value="${build.compiler}"/>
627 <ant dir="${icu4j.langdata.dir}" inheritAll="false" inheritRefs="true">
628 <property name="build.compiler" value="${build.compiler}"/>
630 <ant dir="${icu4j.regiondata.dir}" inheritAll="false" inheritRefs="true">
631 <property name="build.compiler" value="${build.compiler}"/>
633 <ant dir="${icu4j.translit.dir}" inheritAll="false" inheritRefs="true">
634 <property name="build.compiler" value="${build.compiler}"/>
636 <ant dir="${icu4j.test-framework.dir}" inheritAll="false" inheritRefs="true">
637 <property name="build.compiler" value="${build.compiler}"/>
639 <ant dir="${icu4j.core-tests.dir}" inheritAll="false" inheritRefs="true">
640 <property name="build.compiler" value="${build.compiler}"/>
642 <ant dir="${icu4j.collate-tests.dir}" inheritAll="false" inheritRefs="true">
643 <property name="build.compiler" value="${build.compiler}"/>
645 <ant dir="${icu4j.charset-tests.dir}" inheritAll="false" inheritRefs="true">
646 <property name="build.compiler" value="${build.compiler}"/>
648 <ant dir="${icu4j.translit-tests.dir}" inheritAll="false" inheritRefs="true">
649 <property name="build.compiler" value="${build.compiler}"/>
652 <!-- Run the test suites -->
653 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
656 <pathelement path="${icu4j.core.jar}"/>
657 <pathelement path="${icu4j.collate.jar}"/>
658 <pathelement path="${icu4j.charset.jar}"/>
659 <pathelement path="${icu4j.currdata.jar}"/>
660 <pathelement path="${icu4j.langdata.jar}"/>
661 <pathelement path="${icu4j.regiondata.jar}"/>
662 <pathelement path="${icu4j.translit.jar}"/>
663 <pathelement path="${icu4j.test-framework.jar}"/>
664 <pathelement path="${icu4j.core-tests.jar}"/>
665 <pathelement path="${icu4j.collate-tests.jar}"/>
666 <pathelement path="${icu4j.charset-tests.jar}"/>
667 <pathelement path="${icu4j.translit-tests.jar}"/>
668 <pathelement path="${clover.jar}"/>
672 <!-- Generate HTML coverage report -->
673 <clover-html-report outdir="${clover.out.dir}/html" title="ICU4J Code Coverage"/>
676 <!-- Release management targets -->
677 <target name="checktags" depends="info, build-tools" description="Check API tags before release">
678 <javadoc source="1.5"
679 encoding="${java.src.encoding}">
680 <packageset dir="${icu4j.core.dir}/src">
681 <include name="com/ibm/icu/lang/**"/>
682 <include name="com/ibm/icu/math/**"/>
683 <include name="com/ibm/icu/text/**"/>
684 <include name="com/ibm/icu/util/**"/>
686 <packageset dir="${icu4j.collate.dir}/src">
687 <include name="com/ibm/icu/**"/>
689 <packageset dir="${icu4j.charset.dir}/src">
690 <include name="com/ibm/icu/charset/**"/>
692 <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
696 <target name="gatherapi" depends="info, build-tools" description="Run API database generator tool">
697 <mkdir dir="${out.dir}"/>
698 <javadoc source="1.5"
699 encoding="${java.src.encoding}">
700 <packageset dir="${icu4j.core.dir}/src">
701 <include name="com/ibm/icu/lang/**"/>
702 <include name="com/ibm/icu/math/**"/>
703 <include name="com/ibm/icu/text/**"/>
704 <include name="com/ibm/icu/util/**"/>
706 <packageset dir="${icu4j.collate.dir}/src">
707 <include name="com/ibm/icu/text/**"/>
708 <include name="com/ibm/icu/util/**"/>
710 <packageset dir="${icu4j.charset.dir}/src">
711 <include name="com/ibm/icu/charset/**"/>
713 <packageset dir="${icu4j.translit.dir}/src">
714 <include name="com/ibm/icu/text/**"/>
716 <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${icu4j.build-tools.jar}">
717 <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
718 <param name="-output" value="${out.dir}/icu4j${api.report.version}.api2"/>
719 <param name="-internal"/>
720 <param name="-version"/>
721 <param name="-gzip"/>
726 <target name="apireport" depends="info, gatherapi" description="Run API report generator tool">
727 <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
728 classpath="${icu4j.build-tools.jar}"
730 <arg value="-old:" />
731 <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api2.gz" />
732 <arg value="-new:" />
733 <arg value="${out.dir}/icu4j${api.report.version}.api2.gz" />
734 <arg value="-html" />
735 <arg value="-out:" />
736 <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
740 <target name="gatherapiOld" depends="info, build-tools" description="Run API database generator tool (Pre Java 5 style)">
741 <mkdir dir="${out.dir}"/>
742 <javadoc source="1.5"
743 encoding="${java.src.encoding}">
744 <packageset dir="${icu4j.core.dir}/src">
745 <include name="com/ibm/icu/lang/**"/>
746 <include name="com/ibm/icu/math/**"/>
747 <include name="com/ibm/icu/text/**"/>
748 <include name="com/ibm/icu/util/**"/>
750 <packageset dir="${icu4j.collate.dir}/src">
751 <include name="com/ibm/icu/text/**"/>
752 <include name="com/ibm/icu/util/**"/>
754 <packageset dir="${icu4j.charset.dir}/src">
755 <include name="com/ibm/icu/charset/**"/>
757 <packageset dir="${icu4j.translit.dir}/src">
758 <include name="com/ibm/icu/text/**"/>
760 <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIDataOld" path="${icu4j.build-tools.jar}">
761 <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
762 <param name="-output" value="${out.dir}/icu4j${api.report.version}.api"/>
763 <param name="-internal"/>
764 <param name="-gzip"/>
769 <target name="apireportOld" depends="info, gatherapiOld" description="Run API report generator tool (Pre Java 5 Style)">
770 <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
771 classpath="${icu4j.build-tools.jar}"
773 <arg value="-old:" />
774 <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api.gz" />
775 <arg value="-new:" />
776 <arg value="${out.dir}/icu4j${api.report.version}.api.gz" />
777 <arg value="-html" />
778 <arg value="-internal" />
779 <arg value="-out:" />
780 <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
784 <target name="draftAPIs" depends="info, gatherapi" description="Run API collector tool and generate draft API report">
785 <java classname="com.ibm.icu.dev.tool.docs.CollectAPI"
786 classpath="${icu4j.build-tools.jar}"
791 <arg value="${out.dir}/draftAPIs.html"/>
792 <arg value="${out.dir}/icu4j${api.report.version}.api2.gz" />
796 <target name="swatDeprecated" depends="build-tools" description="Convert @deprecated @draft tags to @provisional">
797 <antcall target="_runSwatDeprecated">
798 <param name="swat.deprecated.opt" value="-dep"/>
802 <target name="swatProvisional" depends="build-tools" description="Convert @provisional tags to @deprecated @draft">
803 <antcall target="_runSwatDeprecated">
804 <param name="swat.deprecated.opt" value="-prov"/>
808 <target name="_runSwatDeprecated">
809 <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
810 classpath="${icu4j.build-tools.jar}"
812 <arg value="${swat.deprecated.opt}"/>
814 <arg value="${icu4j.core.dir}/src"/>
816 <arg value="${icu4j.core.dir}/src"/>
817 <arg value="-overwrite"/>
818 <arg value="-verbose"/>
820 <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
821 classpath="${icu4j.build-tools.jar}"
823 <arg value="${swat.deprecated.opt}"/>
825 <arg value="${icu4j.charset.dir}/src"/>
827 <arg value="${icu4j.charset.dir}/src"/>
828 <arg value="-overwrite"/>
829 <arg value="-verbose"/>
833 <!-- Special packaging targets -->
834 <target name="translitIMEJar" depends="info" description="Build transliterator IME 'icutransime.jar' jar file">
835 <property name="translit.ime.out.dir" value="${out.dir}/translit_ime"/>
837 <mkdir dir="${translit.ime.out.dir}/bin"/>
838 <javac destdir="${translit.ime.out.dir}/bin"
839 source="${javac.source}"
840 target="${javac.target}"
841 encoding="${java.src.encoding}"
842 debug="on" deprecation="off">
843 <src path="${icu4j.core.dir}/src"/>
844 <src path="${icu4j.translit.dir}/src"/>
845 <src path="${icu4j.tools.dir}/src"/>
846 <include name="com/ibm/icu/dev/tool/ime/translit/*.java"/>
849 <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/Transliterator.properties"
850 todir="${translit.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/translit"/>
852 <mkdir dir="${translit.ime.out.dir}/lib"/>
853 <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar"
855 basedir="${translit.ime.out.dir}/bin"
856 includes="com/ibm/icu/dev/tool/ime/translit/**/*"
857 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/manifest.stub">
858 <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit" includes="services/*" />
862 <target name="indicIMEJar" depends="info" description="Build indic IME 'icuindicime.jar' jar file">
863 <property name="indic.ime.out.dir" value="${out.dir}/indic_ime"/>
865 <mkdir dir="${indic.ime.out.dir}/bin"/>
866 <javac destdir="${indic.ime.out.dir}/bin"
867 source="${javac.source}"
868 target="${javac.target}"
869 encoding="${java.src.encoding}"
870 debug="on" deprecation="off">
871 <src path="${icu4j.core.dir}/src"/>
872 <src path="${icu4j.tools.dir}/src"/>
873 <include name="com/ibm/icu/dev/tool/ime/indic/*.java"/>
876 <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/DisplayNames.properties"
877 todir="${indic.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/indic"/>
879 <mkdir dir="${indic.ime.out.dir}/lib"/>
880 <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar"
882 basedir="${indic.ime.out.dir}/bin"
883 includes="com/ibm/icu/dev/tool/ime/indic/**/*"
884 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/manifest.stub">
885 <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic" includes="services/*" />
889 <target name="cldrUtil" depends="info" description="Build Utilities for CLDR">
890 <property name="cldr.util.out.dir" value="${out.dir}/cldr_util"/>
891 <mkdir dir="${cldr.util.out.dir}/bin"/>
893 <javac destdir="${cldr.util.out.dir}/bin"
894 source="${javac.source}"
895 target="${javac.target}"
896 encoding="${java.src.encoding}"
897 debug="on" deprecation="off">
899 <src path="${icu4j.core.dir}/src"/>
900 <src path="${icu4j.translit.dir}/src"/>
901 <src path="${icu4j.core-tests.dir}/src"/> <!-- still needed? -->
902 <src path="${icu4j.translit-tests.dir}/src"/>
903 <src path="${icu4j.test-framework.dir}/src"/>
904 <src path="${icu4j.tools.dir}/src"/>
906 <include name="com/ibm/icu/dev/test/TestFmwk.java" />
907 <include name="com/ibm/icu/dev/test/util/*.java" />
908 <include name="com/ibm/icu/dev/tool/UOption.java" />
911 <mkdir dir="${cldr.util.out.dir}/lib"/>
912 <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar"
914 basedir="${cldr.util.out.dir}/bin">
915 <include name="com/ibm/icu/dev/test/util/*.class"/>
916 <include name="com/ibm/icu/dev/test/TestFmwk*.class"/>
917 <include name="com/ibm/icu/dev/test/AbstractTest*.class"/>
918 <include name="com/ibm/icu/dev/test/TestLog*.class"/>
919 <include name="com/ibm/icu/dev/test/TestUtil*.class"/>
920 <include name="com/ibm/icu/dev/test/UTF16Util*.class"/>
921 <include name="com/ibm/icu/dev/tool/UOption*.class"/>
925 <target name="xliff" description="Build xliff converter tool">
926 <property name="xliff.out.dir" value="${out.dir}/xliff"/>
928 <mkdir dir="${xliff.out.dir}/bin"/>
929 <javac destdir="${xliff.out.dir}/bin"
932 encoding="${java.src.encoding}"
933 debug="on" deprecation="off">
934 <src path="${icu4j.tools.dir}/src"/>
935 <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
936 <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
937 <include name="com/ibm/icu/dev/tool/UOption.java"/>
940 <mkdir dir="${xliff.out.dir}/lib"/>
942 <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar"
944 basedir="${icu4j.tools.dir}/src">
945 <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
946 <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
947 <include name="com/ibm/icu/dev/tool/UOption.java"/>
950 <jar jarfile="${xliff.out.dir}/lib/xliff.jar"
952 basedir="${xliff.out.dir}/bin"
953 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/>
957 <!-- ICU4J modularization targets -->
958 <property name="module.dir" value="${out.dir}/module"/>
959 <property name="module.bin.dir" value="${module.dir}/bin"/>
960 <property name="module.tests.dir" value="${module.dir}/tests"/>
961 <property name="module.jar.dir" value="${module.dir}/lib"/>
962 <property name="module.jar" value="${module.jar.dir}/icu4j-module.jar"/>
964 <target name="moduleJar" description="Create a ICU4J module jar file">
965 <mkdir dir="${module.jar.dir}"/>
966 <jar jarfile="${module.jar}"
968 basedir="${module.bin.dir}">
970 <attribute name="Built-By" value="${corp}" />
971 <section name="com/ibm/icu">
972 <attribute name="Specification-Title" value="ICU4J Modularized Build" />
973 <attribute name="Specification-Version" value="${jar.spec.version}" />
974 <attribute name="Specification-Vendor" value="ICU" />
975 <attribute name="Implementation-Title" value=" ICU for Java Module" />
976 <attribute name="Implementation-Version" value="${jar.impl.version}" />
977 <attribute name="Implementation-Vendor" value="${corp}" />
978 <attribute name="Implementation-Vendor-Id" value="com.ibm" />
979 <attribute name="Copyright-Info" value="${jar.copyright.info}" />
980 <attribute name="Sealed" value="false" />
984 <copy file="${module.jar}" tofile="icu4j.jar"/>
987 <target name="moduleCheck" description="Run tests for a ICU4J module jar">
988 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
989 <arg value="-nothrow"/>
990 <arg value="-nodata"/>
992 <pathelement path="${module.jar}"/>
993 <pathelement location="${module.tests.dir}"/>
998 <patternset id="common.test.sources">
999 <include name="com/ibm/icu/dev/test/TestFmwk.java"/>
1000 <include name="com/ibm/icu/dev/test/TestLog.java"/>
1001 <include name="com/ibm/icu/dev/test/TestUtil.java"/>
1002 <include name="com/ibm/icu/dev/test/UTF16Util.java"/>
1003 <include name="com/ibm/icu/dev/test/TestAll.java"/>
1004 <include name="com/ibm/icu/dev/test/TestAllCore.java"/>
1007 <!-- Break Iterator -->
1008 <target name="breakIterator" depends="_copyFullPropsData" description="Modular build of break iterator services">
1009 <mkdir dir="${module.bin.dir}"/>
1010 <javac srcdir="${icu4j.core.dir}/src"
1011 destdir="${module.bin.dir}"
1012 source="${javac.source}"
1013 target="${javac.target}"
1014 encoding="${java.src.encoding}"
1015 debug="on" deprecation="off">
1016 <include name="com/ibm/icu/impl/UCharacterName.java"/>
1017 <include name="com/ibm/icu/impl/data/*Break*.java"/>
1018 <include name="com/ibm/icu/lang/**/*.java"/>
1019 <include name="com/ibm/icu/text/*BreakIterator*.java"/>
1020 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1024 <target name="breakIteratorTests" depends="breakIterator" description="Modular build of break iterator test suite">
1025 <mkdir dir="${module.tests.dir}"/>
1026 <javac destdir="${module.tests.dir}"
1027 source="${javac.source}"
1028 target="${javac.target}"
1029 encoding="${java.src.encoding}"
1030 classpath="${module.bin.dir}"
1031 debug="on" deprecation="off">
1032 <src path="${icu4j.core.dir}/src"/>
1033 <src path="${icu4j.test-framework.dir}/src"/>
1034 <src path="${icu4j.core-tests.dir}/src"/>
1036 <patternset refid="common.test.sources"/>
1037 <include name="com/ibm/icu/dev/test/rbbi/**/*.java"/>
1040 <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt"
1041 todir="${module.tests.dir}/com/ibm/icu/dev/test/rbbi"/>
1045 <target name="calendar" description="Modular build of calendar services">
1046 <mkdir dir="${module.bin.dir}"/>
1047 <javac srcdir="${icu4j.core.dir}/src"
1048 destdir="${module.bin.dir}"
1049 source="${javac.source}"
1050 target="${javac.target}"
1051 encoding="${java.src.encoding}"
1052 debug="on" deprecation="off">
1053 <include name="com/ibm/icu/impl/data/*Holiday*.java"/>
1054 <include name="com/ibm/icu/impl/TimeZoneNames*.java"/>
1055 <include name="com/ibm/icu/lang/UCharacter.java"/>
1056 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1057 <include name="com/ibm/icu/text/NumberFormatServiceShim.java"/>
1058 <include name="com/ibm/icu/util/*Calendar*.java"/>
1061 <!-- Calendar does not require Collation data, BreakIterator data -->
1062 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1064 <include name="**/pnames.icu" />
1065 <include name="**/ucase.icu" />
1066 <include name="**/unorm.icu" />
1067 <include name="**/uprops.icu" />
1068 <include name="**/unames.icu" />
1069 <include name="**/*.res" />
1070 <exclude name="**/coll/*.res" />
1071 <exclude name="**/translit/*.res" />
1076 <target name="calendarTests" depends="calendar" description="Modular build of calendar test suite">
1077 <mkdir dir="${module.tests.dir}"/>
1078 <javac destdir="${module.tests.dir}"
1079 source="${javac.source}"
1080 target="${javac.target}"
1081 encoding="${java.src.encoding}"
1082 classpath="${module.bin.dir}"
1083 debug="on" deprecation="off">
1084 <src path="${icu4j.core.dir}/src"/>
1085 <src path="${icu4j.test-framework.dir}/src"/>
1086 <src path="${icu4j.core-tests.dir}/src"/>
1088 <patternset refid="common.test.sources"/>
1089 <include name="com/ibm/icu/dev/test/calendar/**/*.java" />
1092 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1094 <include name="**/calendar.res"/>
1100 <!-- this module will soon be obsolete, use the collate jar -->
1101 <target name="collator" description="Modular build of collator services">
1102 <mkdir dir="${module.bin.dir}"/>
1103 <javac destdir="${module.bin.dir}"
1104 source="${javac.source}"
1105 target="${javac.target}"
1106 encoding="${java.src.encoding}"
1107 debug="on" deprecation="off">
1108 <src path="${icu4j.core.dir}/src"/>
1109 <src path="${icu4j.collate.dir}/src"/>
1111 <include name="com/ibm/icu/impl/data/*Break*.java"/>
1112 <include name="com/ibm/icu/text/*BreakIterator*.java"/>
1113 <include name="com/ibm/icu/text/*Collation*.java"/>
1114 <include name="com/ibm/icu/text/*Collator*.java"/>
1115 <include name="com/ibm/icu/text/Normalizer.java"/>
1116 <include name="com/ibm/icu/text/Replaceable.java"/>
1117 <include name="com/ibm/icu/text/ReplaceableString.java"/>
1118 <include name="com/ibm/icu/text/UnicodeFilter.java"/>
1119 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1120 <include name="com/ibm/icu/text/UTF16.java"/>
1123 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1125 <include name="**/*.icu"/>
1126 <include name="**/coll/*.res"/>
1127 <include name="**/*.brk"/>
1128 <include name="**/*.nrm"/>
1129 <include name="**/icudt${icu4j.data.version}b/res_index.res"/>
1134 <target name="collatorTests" depends="collator" description="Modular build of collator test suite">
1135 <mkdir dir="${module.tests.dir}"/>
1136 <javac destdir="${module.tests.dir}"
1137 source="${javac.source}"
1138 target="${javac.target}"
1139 encoding="${java.src.encoding}"
1140 classpath="${module.bin.dir}"
1141 debug="on" deprecation="off">
1142 <src path="${icu4j.core.dir}/src"/>
1143 <src path="${icu4j.test-framework.dir}/src"/>
1144 <src path="${icu4j.collate-tests.dir}/src"/>
1146 <patternset refid="common.test.sources"/>
1147 <include name="com/ibm/icu/dev/test/TestAllCollate.java"/>
1148 <include name="com/ibm/icu/dev/test/collator/**/*.java"/>
1149 <include name="java,com/ibm/icu/dev/test/search/**/*.java"/>
1150 <exclude name="com/ibm/icu/dev/test/collator/AlphabeticIndexTest.java"/>
1151 <exclude name="com/ibm/icu/dev/test/collator/RandomCollator.java"/>
1152 <exclude name="com/ibm/icu/dev/test/collator/IndexCharactersTest.java"/>
1155 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1157 <include name="**/DataDrivenCollationTest.res"/>
1160 <copy todir="${module.tests.dir}">
1161 <fileset dir="${icu4j.collate-tests.dir}/src">
1162 <include name="com/ibm/icu/dev/data/riwords.txt"/>
1163 <include name="com/ibm/icu/dev/data/CollationTest_*.txt"/>
1168 <!-- Compression -->
1169 <target name="compression" description="Modular build of compression services">
1170 <mkdir dir="${module.bin.dir}"/>
1171 <javac srcdir="${icu4j.core.dir}/src"
1172 destdir="${module.bin.dir}"
1173 source="${javac.source}"
1174 target="${javac.target}"
1175 encoding="${java.src.encoding}"
1176 debug="on" deprecation="off">
1177 <include name="com/ibm/icu/text/SCSU.java"/>
1178 <include name="com/ibm/icu/text/UnicodeCompressor.java"/>
1179 <include name="com/ibm/icu/text/UnicodeDecompressor.java"/>
1183 <target name="compressionTests" depends="compression" description="Modular build of compression test suite">
1184 <mkdir dir="${module.tests.dir}"/>
1185 <javac destdir="${module.tests.dir}"
1186 source="${javac.source}"
1187 target="${javac.target}"
1188 encoding="${java.src.encoding}"
1189 classpath="${module.bin.dir}"
1190 debug="on" deprecation="off">
1191 <src path="${icu4j.core.dir}/src"/>
1192 <src path="${icu4j.test-framework.dir}/src"/>
1193 <src path="${icu4j.core-tests.dir}/src"/>
1195 <patternset refid="common.test.sources"/>
1196 <include name="com/ibm/icu/dev/test/compression/**/*.java"/>
1201 <target name="format" description="Modular build of format services">
1202 <mkdir dir="${module.bin.dir}"/>
1203 <javac srcdir="${icu4j.core.dir}/src"
1204 destdir="${module.bin.dir}"
1205 source="${javac.source}"
1206 target="${javac.target}"
1207 encoding="${java.src.encoding}"
1208 debug="on" deprecation="off">
1209 <include name="com/ibm/icu/impl/TimeZoneNames*.java"/>
1210 <include name="com/ibm/icu/lang/UCharacter.java"/>
1211 <include name="com/ibm/icu/text/*Collator*.java"/>
1212 <include name="com/ibm/icu/text/*Format*.java"/>
1213 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1214 <include name="com/ibm/icu/util/CalendarServiceShim.java"/>
1217 <javac srcdir="${icu4j.regiondata.dir}/src"
1218 destdir="${module.bin.dir}"
1219 source="${javac.source}"
1220 target="${javac.target}"
1221 encoding="${java.src.encoding}"
1222 debug="on" deprecation="off"/>
1224 <javac srcdir="${icu4j.currdata.dir}/src"
1225 destdir="${module.bin.dir}"
1226 source="${javac.source}"
1227 target="${javac.target}"
1228 encoding="${java.src.encoding}"
1229 debug="on" deprecation="off"/>
1231 <!-- Format does not require BreakIterator data -->
1232 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1234 <include name="**/*.icu"/>
1235 <include name="**/*.res"/>
1236 <exclude name="**/translit/*.res"/>
1241 <target name="formatTests" depends="format" description="Modular build of format test suite">
1242 <mkdir dir="${module.tests.dir}"/>
1243 <javac destdir="${module.tests.dir}"
1244 source="${javac.source}"
1245 target="${javac.target}"
1246 encoding="${java.src.encoding}"
1247 classpath="${module.bin.dir}"
1248 debug="on" deprecation="off">
1249 <src path="${icu4j.core.dir}/src"/>
1250 <src path="${icu4j.test-framework.dir}/src"/>
1251 <src path="${icu4j.core-tests.dir}/src"/>
1253 <patternset refid="common.test.sources"/>
1254 <include name="com/ibm/icu/dev/test/format/**/*.java"/>
1255 <exclude name="com/ibm/icu/dev/test/format/GlobalizationPreferencesTest.java"/>
1258 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1260 <include name="**/format.res"/>
1264 <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/test/format/NumberFormatTestCases.txt"
1265 todir="${module.tests.dir}/com/ibm/icu/dev/test/format"/>
1270 <target name="normalizer" description="Modular build of normalizer services">
1271 <mkdir dir="${module.bin.dir}"/>
1272 <javac srcdir="${icu4j.core.dir}/src"
1273 destdir="${module.bin.dir}"
1274 source="${javac.source}"
1275 target="${javac.target}"
1276 encoding="${java.src.encoding}"
1277 debug="on" deprecation="off">
1278 <include name="com/ibm/icu/lang/**/*"/>
1279 <include name="com/ibm/icu/text/CanonicalIterator.java"/>
1280 <include name="com/ibm/icu/text/Normalizer.java"/>
1281 <include name="com/ibm/icu/text/Replaceable.java"/>
1282 <include name="com/ibm/icu/text/ReplaceableString.java"/>
1283 <include name="com/ibm/icu/text/UCharacterIterator.java"/>
1284 <include name="com/ibm/icu/text/UForwardCharacterIterator.java"/>
1285 <include name="com/ibm/icu/text/UnicodeFilter.java"/>
1286 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1287 <include name="com/ibm/icu/text/UTF16.java"/>
1290 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1292 <include name="**/ubidi.icu"/>
1293 <include name="**/ucase.icu"/>
1294 <include name="**/unorm.icu"/>
1295 <include name="**/uprops.icu"/>
1296 <include name="**/pnames.icu"/>
1297 <include name="**/unames.icu"/>
1298 <include name="**/*.nrm"/>
1303 <target name="normalizerTests" depends="normalizer" description="Modular build of normalizer test suite">
1304 <mkdir dir="${module.tests.dir}"/>
1305 <javac destdir="${module.tests.dir}"
1306 source="${javac.source}"
1307 target="${javac.target}"
1308 encoding="${java.src.encoding}"
1309 classpath="${module.bin.dir}"
1310 debug="on" deprecation="off">
1311 <src path="${icu4j.core.dir}/src"/>
1312 <src path="${icu4j.test-framework.dir}/src"/>
1313 <src path="${icu4j.core-tests.dir}/src"/>
1315 <patternset refid="common.test.sources"/>
1316 <include name="com/ibm/icu/dev/test/normalizer/**/*.java"/>
1317 <exclude name="com/ibm/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java"/>
1320 <copy todir="${module.tests.dir}">
1321 <fileset dir="${icu4j.core-tests.dir}/src">
1322 <include name="com/ibm/icu/dev/data/unicode/*.txt"/>
1323 <exclude name="com/ibm/icu/dev/data/unicode/ucdterms.txt"/>
1327 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1329 <include name="**/testnorm.nrm"/>
1335 <!-- Character Properties -->
1336 <target name="_copyBasicPropsData">
1337 <mkdir dir="${module.bin.dir}"/>
1338 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1340 <include name="**/unorm.icu"/>
1341 <include name="**/uprops.icu"/>
1342 <include name="**/ubidi.icu"/>
1343 <include name="**/ucase.icu"/>
1344 <include name="**/pnames.icu"/>
1345 <include name="**/unames.icu"/>
1346 <include name="**/*.nrm"/>
1351 <target name="_copyFullPropsData">
1352 <mkdir dir="${module.bin.dir}"/>
1353 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1355 <include name="**/unorm.icu"/>
1356 <include name="**/uprops.icu"/>
1357 <include name="**/ubidi.icu"/>
1358 <include name="**/ucase.icu"/>
1359 <include name="**/unames.icu"/>
1360 <include name="**/pnames.icu"/>
1361 <include name="**/*.res"/>
1362 <include name="**/*.brk"/>
1363 <include name="**/*.ctd"/>
1364 <include name="**/*.nrm"/>
1365 <exclude name="**/coll/*.res"/>
1366 <exclude name="**/translit/*.res"/>
1367 <exclude name="**/rbnf/*.res"/>
1372 <target name="_propertiesClasses">
1373 <mkdir dir="${module.bin.dir}"/>
1374 <javac srcdir="${icu4j.core.dir}/src"
1375 destdir="${module.bin.dir}"
1376 source="${javac.source}"
1377 target="${javac.target}"
1378 encoding="${java.src.encoding}"
1379 debug="on" deprecation="off">
1380 <include name="com/ibm/icu/impl/data/*Break*.java"/>
1381 <include name="com/ibm/icu/lang/**/*"/>
1382 <include name="com/ibm/icu/text/*BreakDictionary*.java"/>
1383 <include name="com/ibm/icu/text/*BreakIterator*.java"/>
1384 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1388 <target name="_propertiesTests">
1389 <mkdir dir="${module.tests.dir}"/>
1390 <javac destdir="${module.tests.dir}"
1391 source="${javac.source}"
1392 target="${javac.target}"
1393 encoding="${java.src.encoding}"
1394 classpath="${module.bin.dir}"
1395 debug="on" deprecation="off">
1396 <src path="${icu4j.core.dir}/src"/>
1397 <src path="${icu4j.test-framework.dir}/src"/>
1398 <src path="${icu4j.core-tests.dir}/src"/>
1400 <patternset refid="common.test.sources"/>
1401 <include name="com/ibm/icu/dev/test/lang/**/*.java"/>
1402 <exclude name="com/ibm/icu/dev/test/lang/TestUScriptRun.java"/>
1405 <copy todir="${module.tests.dir}">
1406 <fileset dir="${icu4j.core-tests.dir}/src">
1407 <include name="com/ibm/icu/dev/data/unicode/SpecialCasing.txt"/>
1408 <include name="com/ibm/icu/dev/data/unicode/UnicodeData.txt"/>
1413 <target name="propertiesBasic" depends="_propertiesClasses, _copyBasicPropsData" description="Modular build of basic character properties"/>
1415 <target name="propertiesBasicTests" depends="propertiesBasic, _propertiesTests" description="Modular build of basic character properties test suite"/>
1417 <target name="propertiesFull" depends="_propertiesClasses, _copyFullPropsData" description="Modular build of full character properties"/>
1419 <target name="propertiesFullTests" depends="propertiesFull, _propertiesTests" description="Modular build of full character properties test suite"/>
1421 <!-- Transliterator -->
1422 <!-- this module will soon be obsolete, use the translit jar -->
1423 <target name="transliterator" depends="_propertiesClasses" description="Modular build of transliterator services">
1424 <mkdir dir="${module.bin.dir}"/>
1425 <javac destdir="${module.bin.dir}"
1426 source="${javac.source}"
1427 target="${javac.target}"
1428 encoding="${java.src.encoding}"
1429 debug="on" deprecation="off">
1430 <src path="${icu4j.core.dir}/src"/>
1431 <src path="${icu4j.translit.dir}/src"/>
1433 <include name="com/ibm/icu/impl/*Iterator*.java"/>
1434 <include name="com/ibm/icu/impl/*Property*.java"/>
1435 <include name="com/ibm/icu/impl/data/ResourceReader.java"/>
1436 <include name="com/ibm/icu/impl/UtilityExtensions.java"/>
1437 <include name="com/ibm/icu/text/*Transliterator*.java"/>
1438 <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
1439 <include name="com/ibm/icu/text/BreakIteratorFactory.java"/>
1442 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1444 <include name="**/unorm.icu"/>
1445 <include name="**/uprops.icu"/>
1446 <include name="**/ubidi.icu"/>
1447 <include name="**/ucase.icu"/>
1448 <include name="**/unames.icu"/>
1449 <include name="**/pnames.icu"/>
1450 <include name="**/*.brk"/>
1451 <include name="**/*.ctd"/>
1452 <include name="**/*.nrm"/>
1453 <include name="**/brkitr/*.res"/>
1454 <include name="**/translit/*.res"/>
1459 <target name="transliteratorTests" depends="transliterator" description="Modular build of transliterator test suite">
1460 <mkdir dir="${module.tests.dir}"/>
1461 <javac destdir="${module.tests.dir}"
1462 source="${javac.source}"
1463 target="${javac.target}"
1464 encoding="${java.src.encoding}"
1465 classpath="${module.bin.dir}"
1466 debug="on" deprecation="off">
1467 <src path="${icu4j.core.dir}/src"/>
1468 <src path="${icu4j.test-framework.dir}/src"/>
1469 <src path="${icu4j.translit-tests.dir}/src"/>
1471 <patternset refid="common.test.sources"/>
1472 <include name="com/ibm/icu/dev/test/TestAllTranslit.java"/>
1473 <include name="com/ibm/icu/dev/test/translit/**/*.java"/>
1474 <exclude name="com/ibm/icu/dev/test/translit/UnicodeFilterLogic*.java"/>
1477 <copy file="${icu4j.translit-tests.dir}/src/com/ibm/icu/dev/test/translit/langtagRegex.txt"
1478 todir="${module.tests.dir}/com/ibm/icu/dev/test/translit"/>
1482 <target name="stringPrep" depends="normalizer" description="Modular build of stringprep services">
1483 <mkdir dir="${module.bin.dir}"/>
1484 <javac srcdir="${icu4j.core.dir}/src"
1485 destdir="${module.bin.dir}"
1486 source="${javac.source}"
1487 target="${javac.target}"
1488 encoding="${java.src.encoding}"
1489 debug="on" deprecation="off">
1490 <include name="com/ibm/icu/impl/*StringPrep*.java"/>
1491 <include name="com/ibm/icu/text/*IDNA*.java"/>
1492 <include name="com/ibm/icu/text/*StringPrep*.java"/>
1495 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1497 <include name="**/*.spp"/>
1498 <include name="**/ubidi.icu"/>
1499 <include name="**/ucase.icu"/>
1500 <include name="**/unorm.icu"/>
1501 <include name="**/uprops.icu"/>
1502 <include name="**/pnames.icu"/>
1503 <include name="**/unames.icu"/>
1508 <target name="stringPrepTests" depends="stringPrep" description="Modular build of stringprep test suite">
1509 <mkdir dir="${module.tests.dir}"/>
1510 <javac destdir="${module.tests.dir}"
1511 source="${javac.source}"
1512 target="${javac.target}"
1513 encoding="${java.src.encoding}"
1514 classpath="${module.bin.dir}"
1515 debug="on" deprecation="off">
1516 <src path="${icu4j.core.dir}/src"/>
1517 <src path="${icu4j.test-framework.dir}/src"/>
1518 <src path="${icu4j.core-tests.dir}/src"/>
1520 <patternset refid="common.test.sources"/>
1521 <include name="com/ibm/icu/dev/test/stringprep/**/*.java"/>
1524 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1526 <include name="**/*.spp"/>
1527 <include name="**/idna_rules.res"/>
1531 <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/data/IDNATestInput.txt"
1532 todir="${module.tests.dir}/com/ibm/icu/dev/data"/>
1535 <target name="publishToMavenRepo" depends="releaseBinaries, releaseSrcJars, releaseDocs">
1537 Publish libraries to Maven repositories, snapshot or release depending on current
1542 1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks
1544 3) Put build-local.properties to specify followings
1546 maven-ant-tasks.jar = [location of maven ant tasks jar file]
1547 gpg.user = ICU Project
1548 gpg.passphrase = [passprase for ICU Project's PGP key]
1550 4) Maven configuration file ~/.m2/settings.xml
1554 <id>icu4j-releases</id>
1555 <username>[your JIRA/Nexus ID]</username>
1556 <password>[your JIRA/Nexus password]</password>
1559 <id>icu4j-snapshots</id>
1560 <username>[your JIRA/Nexus ID]</username>
1561 <password>[your JIRA/Nexus password]</password>
1566 Note: For now, charset.jar and localespi.jar are excluded.
1568 <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"/>
1569 <condition property="no_maven-ant-tasks">
1570 <available file="${maven-ant-tasks.jar}"/>
1572 <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/>
1574 <path id="maven-ant-tasks.classpath" path="${maven-ant-tasks.jar}"/>
1575 <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
1576 classpathref="maven-ant-tasks.classpath"/>
1578 <xmlproperty file="pom.xml" prefix="pom.xml"/>
1580 <!-- copy release files -->
1581 <property name="maven.release.dir" value="${release.dir}/maven"/>
1583 <property name="maven.icu4j.jar.versioned.file" value="icu4j-${pom.xml.project.version}.jar"/>
1584 <property name="maven.icu4j-src.jar.versioned.file" value="icu4j-${pom.xml.project.version}-src.jar"/>
1585 <property name="maven.icu4jdocs.jar.file" value="icu4j-${pom.xml.project.version}-javadoc.jar"/>
1587 <mkdir dir="${maven.release.dir}"/>
1589 <copy file="${release.dir}/${icu4j.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4j.jar.versioned.file}"/>
1590 <copy file="${release.dir}/${icu4j-src.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}"/>
1591 <copy file="${release.dir}/${icu4jdocs.jar.file}" tofile="${maven.release.dir}/${maven.icu4jdocs.jar.file}"/>
1593 <copy file="pom.xml" todir="${maven.release.dir}"/>
1595 <!-- sign release files-->
1596 <macrodef name="gpg">
1597 <attribute name="file"/>
1599 <delete file="@{file}.asc" failonerror="false"/>
1600 <exec executable="gpg">
1602 <arg value="${gpg.user}"/>
1604 <arg value="--passphrase"/>
1605 <arg value="${gpg.passphrase}"/>
1607 <arg value="@{file}.asc"/>
1608 <arg value="@{file}"/>
1613 <gpg file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}"/>
1614 <gpg file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}"/>
1615 <gpg file="${maven.release.dir}/${maven.icu4jdocs.jar.file}"/>
1617 <gpg file="${maven.release.dir}/pom.xml"/>
1619 <!-- deploy files to the repository -->
1620 <deploy xmlns="urn:maven-artifact-ant" file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}">
1621 <pom file="${maven.release.dir}/pom.xml"/>
1622 <attach file="${maven.release.dir}/pom.xml.asc" type="pom.asc"/>
1624 <attach file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}.asc" type="jar.asc"/>
1625 <attach file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}" classifier="sources"/>
1626 <attach file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}.asc" classifier="sources" type="jar.asc"/>
1627 <attach file="${maven.release.dir}/${maven.icu4jdocs.jar.file}" classifier="javadoc"/>
1628 <attach file="${maven.release.dir}/${maven.icu4jdocs.jar.file}.asc" classifier="javadoc" type="jar.asc"/>