2 *******************************************************************************
3 * Copyright (C) 1997-2013, 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 API doc jar file -->
25 <property name="icu4jdocs.jar.file" value="icu4j-docs.jar"/>
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"/>
32 <!-- icu4j source package archive files -->
33 <property name="icu4jsrc.zip.file" value="icu4j.zip"/>
34 <property name="icu4jsrc.tgz.file" value="icu4j.tgz"/>
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"/>
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"/>
45 <property name="icu4jdocs.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/>
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"/>
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/"/>
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"/>
62 <!-- Java version check -->
63 <condition property="is.java6.plus">
65 <contains string="${java.version}" substring="1.6."/>
66 <contains string="${java.version}" substring="1.7."/>
67 <contains string="${java.version}" substring="1.8."/>
70 <condition property="is.java5">
71 <contains string="${java.version}" substring="1.5."/>
73 <fail message="The JDK version is too old or unknown.">
77 <isset property="is.java6.plus"/>
78 <isset property="is.java5"/>
84 <condition property="is.java7.plus">
86 <contains string="${java.version}" substring="1.7."/>
87 <contains string="${java.version}" substring="1.8."/>
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="-------------------------------------------------------"/>
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"/>
128 <!-- delete all .jar files root directory -->
130 <fileset dir="." includes="icu4j*.jar"/>
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}"/>
139 <available file="eclipse-build" type="dir" property="eclipse-build.dir.present"/>
140 <antcall target="_clean.eclipse-build"/>
143 <target name="_clean.eclipse-build" if="eclipse-build.dir.present">
144 <ant dir="eclipse-build" target="clean" inheritAll="false"/>
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"/>
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"/>
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"/>
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"/>
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}"/>
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"/>
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}"/>
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"/>
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}"/>
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=" >ant runTest -Dtestarg="Core/Format -e10""/>
214 <echo message="for running ICU4J core format test suite in exhaustive mode."/>
215 <property name="testarg" value="-n"/>
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}"/>
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"/>
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}"/>
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">
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}"/>
254 <!-- language data but no region data -->
255 <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
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}"/>
265 <!-- neither region nor language data -->
266 <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
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}"/>
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">
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}"/>
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">
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}"/>
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}"/>
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">
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}"/>
321 <target name="localespiCheck" if="is.java6.plus" depends="info" description="Run the ICU4J Locale SPI test suite">
322 <antcall target="_runLocalespiCheck"/>
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}"/>
330 <pathelement path="${icu4j.localespi-tests.jar}"/>
331 <pathelement path="${icu4j.test-framework.jar}"/>
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"/>
341 <echo message="JVM argument: ${securecheck.jvmarg}"/>
342 <echo message="Test argument: ${securecheck.arg}"/>
344 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
345 <arg line="${securecheck.arg}"/>
346 <jvmarg line="${securecheck.jvmarg}"/>
348 <pathelement path="${icu4j.jar.file}"/>
349 <pathelement path="${icu4j-charset.jar.file}"/>
350 <pathelement path="${icu4jtests.jar.file}"/>
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"/>
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}"/>
365 <copy file="manifest.stub" todir="${out.dir}">
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}"/>
375 <jar jarfile="${icu4j.jar.file}"
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"/>
390 <target name="icu4jSrcJar" description="Build icu4j-src.jar">
391 <jar jarfile="${icu4j-src.jar.file}"
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"/>
405 <target name="icu4jtestsJar" depends="info, tests" description="Build ICU4J all-in-one test jar">
406 <jar jarfile="${icu4jtests.jar.file}"
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="**/*"/>
416 <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file">
417 <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/>
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">
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}"/>
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}"/>
435 <move file="${release.dir}/${icu4jdocs.jar.file}" tofile="${release.dir}/${icu4jdocs.jar.versioned.file}"/>
437 <!-- package archive -->
438 <move file="${release.dir}/${icu4jsrc.tgz.file}" tofile="${release.dir}/${icu4jsrc.tgz.versioned.file}"/>
440 <!-- md5 checksum file -->
441 <mkdir dir="${out.dir}/checksum"/>
442 <delete dir="${out.dir}/checksum" includes="**/*"/>
444 <checksum todir="${out.dir}/checksum" format="MD5SUM">
445 <fileset dir="${release.dir}">
446 <include name="*.jar"/>
447 <include name="*.tgz"/>
451 <concat destfile="${release.dir}/icu4j-${release.file.ver}.md5">
452 <fileset dir="${out.dir}/checksum" includes="*"/>
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="**/*"/>
463 <checksum todir="${out.dir}/checksum" format="MD5SUM">
464 <fileset dir="${release.dir}">
465 <include name="*.jar"/>
466 <include name="*.tgz"/>
470 <concat destfile="${release.dir}/icu4j.md5">
471 <fileset dir="${out.dir}/checksum" includes="*"/>
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}"/>
485 <target name="releaseSrcJars" depends="icu4jSrcJar" description="Build ICU4J src jar files for distribution">
486 <mkdir dir="${release.dir}"/>
488 <!-- icu4j src-jar -->
489 <copy file="${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.file}"/>
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"/>
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}"/>
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}"/>
505 <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/>
507 <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)">
508 <delete dir="${src.release.wrk.dir}"/>
509 <delete file="${icu4jsrc.zip.file}"/>
511 <mkdir dir="${src.release.wrk.dir}"/>
514 destdir="${src.release.wrk.dir}"
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"/>
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"/>
548 <delete dir="${src.release.wrk.dir}"/>
551 <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)">
552 <delete dir="${src.release.wrk.dir}"/>
553 <delete file="${icu4jsrc.tgz.file}"/>
555 <mkdir dir="${src.release.wrk.dir}"/>
558 destdir="${src.release.wrk.dir}"
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"/>
580 <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/>
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"/>
593 <mkdir dir="${release.dir}"/>
594 <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/>
596 <delete dir="${src.release.wrk.dir}"/>
597 <delete file="${icu4jsrc.tar}"/>
600 <!-- findbugs targets -->
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}"/>
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}"/>
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}"/>
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}"/>
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}"/>
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}"/>
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}"/>
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}"/>
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}"/>
632 <!-- compile targets -->
633 <target name="core" description="Build core classes">
634 <ant dir="${icu4j.core.dir}" inheritAll="false"/>
637 <target name="collate" depends="core" description="Build collation classes">
638 <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
641 <target name="charset" depends="core" description="Build charset classes">
642 <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
645 <target name="currdata" depends="core" description="Build currency data classes">
646 <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
649 <target name="langdata" depends="core" description="Build language data classes">
650 <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
653 <target name="localespi" if="is.java6.plus" description="Build Locale SPI classes">
654 <antcall target="_build-localespi"/>
657 <target name="_build-localespi" depends="core, collate, currdata, langdata, regiondata">
658 <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
661 <target name="regiondata" depends="core" description="Build region data classes">
662 <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
665 <target name="translit" depends="core" description="Build translit classes">
666 <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
669 <target name="test-framework" depends="core" description="Build test framework classes">
670 <ant dir="${icu4j.test-framework.dir}" inheritAll="false"/>
673 <target name="core-tests" depends="core, test-framework" description="Build core tests">
674 <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/>
677 <target name="collate-tests" depends="collate, test-framework" description="Build core tests">
678 <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/>
681 <target name="charset-tests" depends="charset, test-framework" description="Build charset tests">
682 <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/>
685 <target name="localespi-tests" if="is.java6.plus" description="Build Locale SPI tests">
686 <antcall target="_build-localespi-tests"/>
689 <target name="_build-localespi-tests" depends="localespi, test-framework">
690 <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/>
693 <target name="packaging-tests" depends="test-framework" description="Build packaging tests">
694 <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/>
697 <target name="translit-tests" depends="translit, test-framework" description="Build translit tests">
698 <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/>
701 <target name="demos" depends="core, charset, translit" description="Build demo classes">
702 <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
705 <target name="samples" depends="core, charset, collate, translit" description="Build sample classes">
706 <ant dir="${icu4j.samples.dir}" inheritAll="false"/>
709 <target name="build-tools" description="Build build-tool classes">
710 <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
713 <target name="tools" depends="core, core-tests, collate, translit, translit-tests" description="Build tool classes">
714 <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
716 <target name="perf" depends="core, charset, collate, tools" description="Build performance test classes">
717 <ant dir="${icu4j.perf.dir}" inheritAll="false"/>
721 <target name="docs" depends="info, build-tools, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/>
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"/>
728 <pathconvert property="jcite.libs" refid="jcite.files"/>
730 <dirset dir="${basedir}" id="jcite.src.dirs">
731 <include name="samples/src"/>
732 <include name="demos/src"/>
733 <include name="main/tests/*/src"/>
735 <pathconvert property="jcite.addl.src" refid="jcite.src.dirs"/>
738 <target name="_docsStyleSheet">
739 <condition property="docs.style.sheet" value="stylesheet7.css" else="stylesheet.css">
740 <isset property="is.java7.plus"/>
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}"/>
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}"
757 bottom="<font size=-1>Copyright (c) ${current.year} IBM Corporation and others.</font>"
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}"
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/**"/>
768 <packageset dir="${icu4j.collate.dir}/src">
769 <include name="com/ibm/icu/text/**"/>
771 <packageset dir="${icu4j.translit.dir}/src">
772 <include name="com/ibm/icu/text/**"/>
774 <packageset dir="${icu4j.charset.dir}/src">
775 <include name="com/ibm/icu/charset/**"/>
780 <target name="_docsWithoutJCite" unless="jcite.libs">
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}"
790 bottom="<font size=-1>Copyright (c) ${current.year} IBM Corporation and others.</font>"
791 additionalparam="-breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet"
792 link="${icu4j.api.doc.jdk.link}"
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/**"/>
800 <packageset dir="${icu4j.collate.dir}/src">
801 <include name="com/ibm/icu/text/**"/>
803 <packageset dir="${icu4j.translit.dir}/src">
804 <include name="com/ibm/icu/text/**"/>
806 <packageset dir="${icu4j.charset.dir}/src">
807 <include name="com/ibm/icu/charset/**"/>
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"/>
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">
822 <exclude name="**/dev/**/*.java"/>
824 <methodContext name="API" regexp="(.* )?public .*"/>
827 <!-- Build components with clover instrumentation -->
828 <ant dir="${icu4j.core.dir}" inheritAll="false" inheritRefs="true">
829 <property name="build.compiler" value="${build.compiler}"/>
831 <ant dir="${icu4j.collate.dir}" inheritAll="false" inheritRefs="true">
832 <property name="build.compiler" value="${build.compiler}"/>
834 <ant dir="${icu4j.charset.dir}" inheritAll="false" inheritRefs="true">
835 <property name="build.compiler" value="${build.compiler}"/>
837 <ant dir="${icu4j.currdata.dir}" inheritAll="false" inheritRefs="true">
838 <property name="build.compiler" value="${build.compiler}"/>
840 <ant dir="${icu4j.langdata.dir}" inheritAll="false" inheritRefs="true">
841 <property name="build.compiler" value="${build.compiler}"/>
843 <ant dir="${icu4j.regiondata.dir}" inheritAll="false" inheritRefs="true">
844 <property name="build.compiler" value="${build.compiler}"/>
846 <ant dir="${icu4j.translit.dir}" inheritAll="false" inheritRefs="true">
847 <property name="build.compiler" value="${build.compiler}"/>
849 <ant dir="${icu4j.test-framework.dir}" inheritAll="false" inheritRefs="true">
850 <property name="build.compiler" value="${build.compiler}"/>
852 <ant dir="${icu4j.core-tests.dir}" inheritAll="false" inheritRefs="true">
853 <property name="build.compiler" value="${build.compiler}"/>
855 <ant dir="${icu4j.collate-tests.dir}" inheritAll="false" inheritRefs="true">
856 <property name="build.compiler" value="${build.compiler}"/>
858 <ant dir="${icu4j.charset-tests.dir}" inheritAll="false" inheritRefs="true">
859 <property name="build.compiler" value="${build.compiler}"/>
861 <ant dir="${icu4j.translit-tests.dir}" inheritAll="false" inheritRefs="true">
862 <property name="build.compiler" value="${build.compiler}"/>
865 <!-- Run the test suites -->
866 <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
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}"/>
885 <!-- Generate HTML coverage report -->
886 <!-- <clover-html-report outdir="${clover.out.dir}/html" title="ICU4J Code Coverage"/> -->
888 <current outfile="${clover.out.dir}/html" title="ICU4J Code Coverage">
889 <format type="html" filter="assert" />
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/**"/>
904 <packageset dir="${icu4j.collate.dir}/src">
905 <include name="com/ibm/icu/**"/>
907 <packageset dir="${icu4j.charset.dir}/src">
908 <include name="com/ibm/icu/charset/**"/>
910 <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
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/**"/>
924 <packageset dir="${icu4j.collate.dir}/src">
925 <include name="com/ibm/icu/text/**"/>
926 <include name="com/ibm/icu/util/**"/>
928 <packageset dir="${icu4j.charset.dir}/src">
929 <include name="com/ibm/icu/charset/**"/>
931 <packageset dir="${icu4j.translit.dir}/src">
932 <include name="com/ibm/icu/text/**"/>
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"/>
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}"
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" />
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/**"/>
968 <packageset dir="${icu4j.collate.dir}/src">
969 <include name="com/ibm/icu/text/**"/>
970 <include name="com/ibm/icu/util/**"/>
972 <packageset dir="${icu4j.charset.dir}/src">
973 <include name="com/ibm/icu/charset/**"/>
975 <packageset dir="${icu4j.translit.dir}/src">
976 <include name="com/ibm/icu/text/**"/>
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"/>
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}"
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" />
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}"
1007 <arg value="Draft"/>
1009 <arg value="${out.dir}/draftAPIs.html"/>
1010 <arg value="${out.dir}/icu4j${api.report.version}.api2.gz" />
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"/>
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"/>
1026 <target name="_runSwatDeprecated">
1027 <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
1028 classpath="${icu4j.build-tools.jar}"
1030 <arg value="${swat.deprecated.opt}"/>
1032 <arg value="${icu4j.core.dir}/src"/>
1034 <arg value="${icu4j.core.dir}/src"/>
1035 <arg value="-overwrite"/>
1036 <arg value="-verbose"/>
1038 <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
1039 classpath="${icu4j.build-tools.jar}"
1041 <arg value="${swat.deprecated.opt}"/>
1043 <arg value="${icu4j.charset.dir}/src"/>
1045 <arg value="${icu4j.charset.dir}/src"/>
1046 <arg value="-overwrite"/>
1047 <arg value="-verbose"/>
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}"/>
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}"/>
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."/>
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"/>
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"/>
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"/>
1094 <mkdir dir="${translit.ime.out.dir}/lib"/>
1095 <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar"
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/*" />
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"/>
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"/>
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"/>
1121 <mkdir dir="${indic.ime.out.dir}/lib"/>
1122 <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar"
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/*" />
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}">
1140 <src path="${icu4j.tools.dir}/src"/>
1141 <src path="${icu4j.translit-tests.dir}/src"/>
1142 <src path="${icu4j.test-framework.dir}/src"/>
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" />
1149 <mkdir dir="${cldr.util.out.dir}/lib"/>
1150 <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar"
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"/>
1159 <target name="releaseCLDR" depends="icu4jJar,icu4jSrcJar,cldrUtil" description="Build release files for CLDR tooling">
1160 <mkdir dir="${cldr.release.dir}"/>
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"
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"/>
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"/>
1182 <target name="xliff" description="Build xliff converter tool">
1183 <property name="xliff.out.dir" value="${out.dir}/xliff"/>
1185 <mkdir dir="${xliff.out.dir}/bin"/>
1186 <javac destdir="${xliff.out.dir}/bin"
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"/>
1197 <mkdir dir="${xliff.out.dir}/lib"/>
1199 <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar"
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"/>
1207 <jar jarfile="${xliff.out.dir}/lib/xliff.jar"
1209 basedir="${xliff.out.dir}/bin"
1210 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/>
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"/>
1221 <target name="moduleJar" description="Create a ICU4J module jar file">
1222 <mkdir dir="${module.jar.dir}"/>
1223 <jar jarfile="${module.jar}"
1225 basedir="${module.bin.dir}">
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" />
1241 <copy file="${module.jar}" tofile="icu4j.jar"/>
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"/>
1249 <pathelement path="${module.jar}"/>
1250 <pathelement location="${module.tests.dir}"/>
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"/>
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"/>
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"/>
1293 <patternset refid="common.test.sources"/>
1294 <include name="com/ibm/icu/dev/test/rbbi/**/*.java"/>
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"/>
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"/>
1318 <!-- Calendar does not require Collation data, BreakIterator data -->
1319 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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" />
1331 <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
1333 <include name="**/*.res" />
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"/>
1350 <patternset refid="common.test.sources"/>
1351 <include name="com/ibm/icu/dev/test/calendar/**/*.java" />
1354 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1356 <include name="**/calendar.res"/>
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"/>
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"/>
1385 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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"/>
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"/>
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"/>
1417 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1419 <include name="**/DataDrivenCollationTest.res"/>
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"/>
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"/>
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"/>
1457 <patternset refid="common.test.sources"/>
1458 <include name="com/ibm/icu/dev/test/compression/**/*.java"/>
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"/>
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"/>
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"/>
1494 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1496 <include name="**/*.icu"/>
1497 <include name="**/*.brk"/>
1498 <include name="**/*.res"/>
1499 <exclude name="**/translit/*.res"/>
1502 <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
1504 <include name="**/*.res" />
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"/>
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"/>
1526 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1528 <include name="**/format.res"/>
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"/>
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"/>
1558 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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"/>
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"/>
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"/>
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"/>
1595 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1597 <include name="**/testnorm.nrm"/>
1603 <!-- Character Properties -->
1604 <target name="_copyBasicPropsData">
1605 <mkdir dir="${module.bin.dir}"/>
1606 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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"/>
1619 <target name="_copyFullPropsData">
1620 <mkdir dir="${module.bin.dir}"/>
1621 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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"/>
1638 <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
1640 <include name="**/*.res" />
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"/>
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"/>
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"/>
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"/>
1686 <target name="propertiesBasic" depends="_propertiesClasses, _copyBasicPropsData" description="Modular build of basic character properties"/>
1688 <target name="propertiesBasicTests" depends="propertiesBasic, _propertiesTests" description="Modular build of basic character properties test suite"/>
1690 <target name="propertiesFull" depends="_propertiesClasses, _copyFullPropsData" description="Modular build of full character properties"/>
1692 <target name="propertiesFullTests" depends="propertiesFull, _propertiesTests" description="Modular build of full character properties test suite"/>
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"/>
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"/>
1715 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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"/>
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"/>
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"/>
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"/>
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"/>
1768 <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
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"/>
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"/>
1793 <patternset refid="common.test.sources"/>
1794 <include name="com/ibm/icu/dev/test/stringprep/**/*.java"/>
1797 <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1799 <include name="**/*.spp"/>
1800 <include name="**/idna_rules.res"/>
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"/>
1808 <target name="publishToMavenRepo" depends="releaseVer">
1810 Publish libraries to Maven repositories, snapshot or release depending on current
1815 1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks
1817 3) Put build-local.properties to specify followings
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]
1823 4) Maven configuration file ~/.m2/settings.xml
1827 <id>icu4j-releases</id>
1828 <username>[your JIRA/Nexus ID]</username>
1829 <password>[your JIRA/Nexus password]</password>
1832 <id>icu4j-snapshots</id>
1833 <username>[your JIRA/Nexus ID]</username>
1834 <password>[your JIRA/Nexus password]</password>
1839 Note: For now, charset.jar and localespi.jar are excluded.
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}"/>
1845 <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/>
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"/>
1851 <xmlproperty file="pom.xml" prefix="pom.xml"/>
1853 <!-- copy release files -->
1854 <property name="maven.release.dir" value="${release.dir}/maven"/>
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"/>
1860 <mkdir dir="${maven.release.dir}"/>
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}"/>
1866 <copy file="pom.xml" todir="${maven.release.dir}"/>
1868 <!-- sign release files-->
1869 <macrodef name="gpg">
1870 <attribute name="file"/>
1872 <delete file="@{file}.asc" failonerror="false"/>
1873 <exec executable="gpg">
1875 <arg value="${gpg.user}"/>
1877 <arg value="--passphrase"/>
1878 <arg value="${gpg.passphrase}"/>
1880 <arg value="@{file}.asc"/>
1881 <arg value="@{file}"/>
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}"/>
1890 <gpg file="${maven.release.dir}/pom.xml"/>
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"/>
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"/>