]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_8_1_1/build.xml
Added flags.
[Dictionary.git] / jars / icu4j-4_8_1_1 / build.xml
1 <!--
2 *******************************************************************************
3 * Copyright (C) 1997-2011, International Business Machines Corporation and    *
4 * others. All Rights Reserved.                                                *
5 *******************************************************************************
6 -->
7 <project name="icu4j" default="jar" basedir=".">
8     <property file="build-local.properties"/>
9     <property file="build.properties"/>
10
11     <property name="shared.dir" value="main/shared"/>
12     <import file="${shared.dir}/build/common-targets.xml"/>
13
14     <property environment="env"/>
15
16     <!-- icu4j binaries -->
17     <property name="icu4j.jar.file" value="icu4j.jar"/>
18     <property name="icu4jtests.jar.file" value="icu4jtests.jar"/>
19     <property name="icu4j-charset.jar.file" value="icu4j-charset.jar"/>
20     <property name="icu4j-localespi.jar.file" value="icu4j-localespi.jar"/>
21
22     <property name="icu4jdemos.jar.file" value="icu4jdemos.jar"/>
23
24     <!-- icu4j 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"/>
28
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"/>
32
33     <property name="icu4jsrc.zip.file" value="icu4j-${release.file.ver}.zip"/>
34     <property name="icu4jsrc.tgz.file" value="icu4j-${release.file.ver}.tgz"/>
35
36     <property name="icu4jdocs.jar.file" value="icu4j-${release.file.ver}-docs.jar"/>
37
38     <!-- directories -->
39     <property name="release.dir" value="release"/>
40     <property name="doc.dir" value="doc"/>
41
42     <!-- Java version check -->
43     <condition property="is.java6.plus">
44         <or>
45             <contains string="${java.version}" substring="1.6."/>
46             <contains string="${java.version}" substring="1.7."/>
47         </or>
48     </condition>
49     <condition property="is.java5">
50         <contains string="${java.version}" substring="1.5."/>
51     </condition>
52     <fail message="The JDK version is too old or unknown.">
53         <condition>
54             <not>
55                 <or>
56                     <isset property="is.java6.plus"/>
57                     <isset property="is.java5"/>
58                 </or>
59              </not>
60         </condition>
61     </fail>
62
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="-------------------------------------------------------"/>
76     </target>
77
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"/>
97
98         <!-- delete all .jar files root directory -->
99         <delete>
100             <fileset dir="." includes="icu4j*.jar"/>
101         </delete>
102
103         <delete dir="${release.dir}"/>
104         <delete dir="${doc.dir}"/>
105         <delete dir="${out.dir}"/>
106         <delete dir="${module.dir}"/>
107
108         <ant dir="eclipse-build" target="clean" inheritAll="false"/>
109     </target>
110
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"/>
116
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"/>
118     
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}"/>
126         </antcall>
127     </target>
128
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}"/>
133         </antcall>
134     </target>
135
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}"/>
140         </antcall>
141     </target>
142
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"/>
147         </antcall>
148     </target>
149
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}"/>
153
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"/>
157             <classpath>
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}"/>
170             </classpath>
171         </java>
172     </target>
173
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}"/>
177
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"/>
181             <classpath>
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}"/>
194             </classpath>
195         </java>
196     </target>
197
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">
201             <arg line="-n -w"/>
202             <classpath>
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}"/>
208             </classpath>
209         </java>
210         <!-- language data but no region data -->
211         <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
212             <arg line="-n -w"/>
213             <classpath>
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}"/>
219             </classpath>
220         </java>
221         <!-- neither region nor language data -->
222         <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
223             <arg line="-n -w"/>
224             <classpath>
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}"/>
229             </classpath>
230         </java>
231     </target>
232
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">
235             <arg line="-n"/>
236             <classpath>
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}"/>
243             </classpath>
244         </java>
245     </target>
246
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">
249             <arg line="-n"/>
250             <classpath>
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}"/>
255
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}"/>
261             </classpath>
262         </java>
263     </target>
264
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">
267             <arg line="-n"/>
268             <classpath>
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}"/>
273             </classpath>
274         </java>
275     </target>
276
277     <target name="localespiCheck" if="is.java6.plus" depends="info" description="Run the ICU4J Locale SPI test suite">
278         <antcall target="_runLocalespiCheck"/>
279     </target>
280
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}"/>
284             <arg value="-n"/>
285             <classpath>
286                 <pathelement path="${icu4j.localespi-tests.jar}"/>
287                 <pathelement path="${icu4j.test-framework.jar}"/>
288             </classpath>
289         </java>
290     </target>
291
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"/>
296
297         <echo message="JVM argument:   ${securecheck.jvmarg}"/>
298         <echo message="Test argument:  ${securecheck.arg}"/>
299
300         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
301             <arg line="${securecheck.arg}"/>
302             <jvmarg line="${securecheck.jvmarg}"/>
303             <classpath>
304                 <pathelement path="${icu4j.jar.file}"/>
305                 <pathelement path="${icu4j-charset.jar.file}"/>
306                 <pathelement path="${icu4jtests.jar.file}"/>
307             </classpath>
308         </java>
309     </target>
310
311     <!-- jar targets -->
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"/>
315     </target>
316
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}"/>
319
320         <!-- manifest -->
321         <copy file="manifest.stub" todir="${out.dir}">
322             <filterset>
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}"/>
327             </filterset>
328         </copy>
329
330         <!-- jar -->
331         <jar jarfile="${icu4j.jar.file}"
332                 compress="true"
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"/>
343             </fileset>
344         </jar>
345     </target>
346
347     <target name="icu4jtestsJar" depends="info, tests" description="Build ICU4J all-in-one test jar">
348         <jar jarfile="${icu4jtests.jar.file}"
349                 compress="true">
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="**/*"/>
355         </jar>
356     </target>
357
358     <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file">
359         <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/>
360     </target>
361
362
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}"/>
369     </target>
370
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}"
375                 compress="true">
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"/>
385             </fileset>
386         </jar>
387
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"/>
391
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}"/>
394     </target>
395
396
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}"/>
400     </target>
401
402     <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/>
403
404     <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)">
405         <delete dir="${src.release.wrk.dir}"/>
406         <delete file="${icu4jsrc.zip.file}"/>
407
408         <mkdir dir="${src.release.wrk.dir}"/>
409
410         <fixcrlf srcdir="."
411                 destdir="${src.release.wrk.dir}"
412                 encoding="UTF-8"
413                 eol="crlf">
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"/>
426         </fixcrlf>
427
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"/>
437             </fileset>
438         </zip>
439
440         <delete dir="${src.release.wrk.dir}"/>
441     </target>
442
443     <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)">
444         <delete dir="${src.release.wrk.dir}"/>
445         <delete file="${icu4jsrc.tgz.file}"/>
446
447         <mkdir dir="${src.release.wrk.dir}"/>
448
449         <fixcrlf srcdir="."
450                 destdir="${src.release.wrk.dir}"
451                 encoding="UTF-8"
452                 eol="lf">
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"/>
465         </fixcrlf>
466
467         <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/>
468
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"/>
477             </fileset>
478         </tar>
479
480         <mkdir dir="${release.dir}"/>
481         <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/>
482
483         <delete dir="${src.release.wrk.dir}"/>
484         <delete file="${icu4jsrc.tar}"/>
485     </target>
486
487     <!-- compile targets -->
488     <target name="core" description="Build core classes">
489         <ant dir="${icu4j.core.dir}" inheritAll="false"/>
490     </target>
491
492     <target name="collate" depends="core" description="Build collation classes">
493         <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
494     </target>
495
496     <target name="charset" depends="core" description="Build charset classes">
497         <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
498     </target>
499
500     <target name="currdata" depends="core" description="Build currency data classes">
501         <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
502     </target>
503
504     <target name="langdata" depends="core" description="Build language data classes">
505         <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
506     </target>
507
508     <target name="localespi" if="is.java6.plus" description="Build Locale SPI classes">
509         <antcall target="_build-localespi"/>
510     </target>
511
512     <target name="_build-localespi" depends="core, collate, currdata, langdata, regiondata">
513         <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
514     </target>
515
516     <target name="regiondata" depends="core" description="Build region data classes">
517         <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
518     </target>
519
520     <target name="translit" depends="core" description="Build translit classes">
521         <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
522     </target>
523
524     <target name="test-framework" depends="core" description="Build test framework classes">
525         <ant dir="${icu4j.test-framework.dir}" inheritAll="false"/>
526     </target>
527
528     <target name="core-tests" depends="core, test-framework" description="Build core tests">
529         <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/>
530     </target>
531
532     <target name="collate-tests" depends="collate, test-framework" description="Build core tests">
533         <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/>
534     </target>
535
536     <target name="charset-tests" depends="charset, test-framework" description="Build charset tests">
537         <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/>
538     </target>
539
540     <target name="localespi-tests" if="is.java6.plus" description="Build Locale SPI tests">
541         <antcall target="_build-localespi-tests"/>
542     </target>
543
544     <target name="_build-localespi-tests" depends="localespi, test-framework">
545         <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/>
546     </target>
547
548     <target name="packaging-tests" depends="test-framework" description="Build packaging tests">
549         <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/>
550     </target>
551
552     <target name="translit-tests" depends="translit, test-framework" description="Build translit tests">
553         <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/>
554     </target>
555
556     <target name="demos" depends="core, charset, translit" description="Build demo classes">
557         <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
558     </target>
559
560     <target name="build-tools" description="Build build-tool classes">
561         <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
562     </target>
563
564     <target name="tools" depends="core, core-tests, collate, translit, translit-tests" description="Build tool classes">
565         <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
566     </target>
567
568     <!-- doc targets -->
569     <target name="docs" depends="info, build-tools" description="Build API documents">
570         <javadoc
571                 destdir="${doc.dir}"
572                 nodeprecatedlist="true"
573                 windowtitle="icu4j"
574                 doctitle="icu4j"
575                 encoding="${java.src.encoding}"
576                 docencoding="UTF-8"
577                 bottom="&lt;font size=-1&gt;Copyright (c) ${current.year} IBM Corporation and others.&lt;/font&gt;"
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/"
580                 source="1.5">
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/**"/>
586             </packageset>
587             <packageset dir="${icu4j.collate.dir}/src">
588                 <include name="com/ibm/icu/text/**"/>
589             </packageset>
590             <packageset dir="${icu4j.translit.dir}/src">
591                 <include name="com/ibm/icu/text/**"/>
592             </packageset>
593             <packageset dir="${icu4j.charset.dir}/src">
594                 <include name="com/ibm/icu/charset/**"/>
595             </packageset>
596         </javadoc>
597     </target>
598
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"/>
603
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">
608             <files>
609                 <exclude name="**/dev/**/*.java"/>
610             </files>
611             <methodContext name="API" regexp="(.* )?public .*"/>
612         </clover-setup>
613
614         <!-- Build components with clover instrumentation -->
615         <ant dir="${icu4j.core.dir}" inheritAll="false" inheritRefs="true">
616             <property name="build.compiler" value="${build.compiler}"/>
617         </ant>
618         <ant dir="${icu4j.collate.dir}" inheritAll="false" inheritRefs="true">
619             <property name="build.compiler" value="${build.compiler}"/>
620         </ant>
621         <ant dir="${icu4j.charset.dir}" inheritAll="false" inheritRefs="true">
622             <property name="build.compiler" value="${build.compiler}"/>
623         </ant>
624         <ant dir="${icu4j.currdata.dir}" inheritAll="false" inheritRefs="true">
625             <property name="build.compiler" value="${build.compiler}"/>
626         </ant>
627         <ant dir="${icu4j.langdata.dir}" inheritAll="false" inheritRefs="true">
628             <property name="build.compiler" value="${build.compiler}"/>
629         </ant>
630         <ant dir="${icu4j.regiondata.dir}" inheritAll="false" inheritRefs="true">
631             <property name="build.compiler" value="${build.compiler}"/>
632         </ant>
633         <ant dir="${icu4j.translit.dir}" inheritAll="false" inheritRefs="true">
634             <property name="build.compiler" value="${build.compiler}"/>
635         </ant>
636         <ant dir="${icu4j.test-framework.dir}" inheritAll="false" inheritRefs="true">
637             <property name="build.compiler" value="${build.compiler}"/>
638         </ant>
639         <ant dir="${icu4j.core-tests.dir}" inheritAll="false" inheritRefs="true">
640             <property name="build.compiler" value="${build.compiler}"/>
641         </ant>
642         <ant dir="${icu4j.collate-tests.dir}" inheritAll="false" inheritRefs="true">
643             <property name="build.compiler" value="${build.compiler}"/>
644         </ant>
645         <ant dir="${icu4j.charset-tests.dir}" inheritAll="false" inheritRefs="true">
646             <property name="build.compiler" value="${build.compiler}"/>
647         </ant>
648         <ant dir="${icu4j.translit-tests.dir}" inheritAll="false" inheritRefs="true">
649             <property name="build.compiler" value="${build.compiler}"/>
650         </ant>
651
652         <!-- Run the test suites -->
653         <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
654             <arg value="-n"/>
655             <classpath>
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}"/>
669             </classpath>
670         </java>
671
672         <!-- Generate HTML coverage report -->
673         <clover-html-report outdir="${clover.out.dir}/html" title="ICU4J Code Coverage"/>
674     </target>
675
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/**"/>
685             </packageset>
686             <packageset dir="${icu4j.collate.dir}/src">
687                 <include name="com/ibm/icu/**"/>
688             </packageset>
689             <packageset dir="${icu4j.charset.dir}/src">
690                 <include name="com/ibm/icu/charset/**"/>
691             </packageset>
692             <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
693         </javadoc>
694     </target>
695
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/**"/>
705             </packageset>
706             <packageset dir="${icu4j.collate.dir}/src">
707                 <include name="com/ibm/icu/text/**"/>
708                 <include name="com/ibm/icu/util/**"/>
709             </packageset>
710             <packageset dir="${icu4j.charset.dir}/src">
711                 <include name="com/ibm/icu/charset/**"/>
712             </packageset>
713             <packageset dir="${icu4j.translit.dir}/src">
714                 <include name="com/ibm/icu/text/**"/>
715             </packageset>
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"/>
722             </doclet>
723         </javadoc>
724     </target>
725
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}"
729                 failonerror="true">
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" />
737         </java>
738     </target>
739
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/**"/>
749             </packageset>
750             <packageset dir="${icu4j.collate.dir}/src">
751                 <include name="com/ibm/icu/text/**"/>
752                 <include name="com/ibm/icu/util/**"/>
753             </packageset>
754             <packageset dir="${icu4j.charset.dir}/src">
755                 <include name="com/ibm/icu/charset/**"/>
756             </packageset>
757             <packageset dir="${icu4j.translit.dir}/src">
758                 <include name="com/ibm/icu/text/**"/>
759             </packageset>
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"/>
765             </doclet>
766         </javadoc>
767     </target>
768
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}"
772                 failonerror="true">
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" />
781         </java>
782     </target>
783
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}"
787                 failonerror="true">
788             <arg value="-f"/>
789             <arg value="Draft"/>
790             <arg value="-o"/>
791             <arg value="${out.dir}/draftAPIs.html"/>
792             <arg value="${out.dir}/icu4j${api.report.version}.api2.gz" />
793         </java>
794     </target>
795
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"/>
799         </antcall>
800     </target>
801
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"/>
805         </antcall>
806     </target>
807
808     <target name="_runSwatDeprecated">
809         <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
810                 classpath="${icu4j.build-tools.jar}"
811                 failonerror="true">
812             <arg value="${swat.deprecated.opt}"/>
813             <arg value="-src"/>
814             <arg value="${icu4j.core.dir}/src"/>
815             <arg value="-dst"/>
816             <arg value="${icu4j.core.dir}/src"/>
817             <arg value="-overwrite"/>
818             <arg value="-verbose"/>
819         </java>
820         <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
821                 classpath="${icu4j.build-tools.jar}"
822                 failonerror="true">
823             <arg value="${swat.deprecated.opt}"/>
824             <arg value="-src"/>
825             <arg value="${icu4j.charset.dir}/src"/>
826             <arg value="-dst"/>
827             <arg value="${icu4j.charset.dir}/src"/>
828             <arg value="-overwrite"/>
829             <arg value="-verbose"/>
830         </java>
831     </target>
832
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"/>
836  
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"/>
847         </javac>
848
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"/>
851
852         <mkdir dir="${translit.ime.out.dir}/lib"/>
853         <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar"
854                 compress="true"
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/*" />
859         </jar>
860     </target>
861
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"/>
864  
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"/>
874         </javac>
875
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"/>
878
879         <mkdir dir="${indic.ime.out.dir}/lib"/>
880         <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar"
881                 compress="true"
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/*" />
886         </jar>
887     </target>
888
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"/>
892
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">
898
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"/>
905
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" />
909         </javac>
910
911         <mkdir dir="${cldr.util.out.dir}/lib"/>
912         <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar"
913                 compress="true"
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"/>
922         </jar>
923     </target>
924
925     <target name="xliff" description="Build xliff converter tool">
926         <property name="xliff.out.dir" value="${out.dir}/xliff"/>
927
928         <mkdir dir="${xliff.out.dir}/bin"/>
929         <javac destdir="${xliff.out.dir}/bin"
930                 source="1.3"
931                 target="1.3"
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"/>
938        </javac>
939
940         <mkdir dir="${xliff.out.dir}/lib"/>
941
942         <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar"
943                 compress="true"
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"/>
948         </jar>
949
950         <jar jarfile="${xliff.out.dir}/lib/xliff.jar"
951                 compress="true"
952                 basedir="${xliff.out.dir}/bin"
953                 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/>
954     </target>
955
956
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"/>
963
964     <target name="moduleJar" description="Create a ICU4J module jar file">
965         <mkdir dir="${module.jar.dir}"/>
966         <jar jarfile="${module.jar}"
967                 compress="true"
968                 basedir="${module.bin.dir}">
969             <manifest>
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" />
981                 </section>
982             </manifest>
983         </jar>
984         <copy file="${module.jar}" tofile="icu4j.jar"/>
985     </target>
986
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"/>
991             <classpath>
992                 <pathelement path="${module.jar}"/>
993                 <pathelement location="${module.tests.dir}"/>
994             </classpath>
995         </java>
996     </target>
997
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"/>
1005     </patternset>
1006
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"/>
1021         </javac>
1022     </target>
1023
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"/>
1035
1036             <patternset refid="common.test.sources"/>
1037             <include name="com/ibm/icu/dev/test/rbbi/**/*.java"/>
1038         </javac>
1039
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"/>
1042     </target>
1043
1044     <!-- Calendar -->
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"/>
1059         </javac>
1060
1061         <!-- Calendar does not require Collation data, BreakIterator data -->
1062         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1063             <patternset>
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" />
1072             </patternset>
1073         </unjar>
1074     </target>
1075
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"/>
1087
1088             <patternset refid="common.test.sources"/>
1089             <include name="com/ibm/icu/dev/test/calendar/**/*.java" />
1090         </javac>
1091
1092         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1093             <patternset>
1094                 <include name="**/calendar.res"/>
1095             </patternset>
1096         </unjar>
1097     </target>
1098
1099     <!-- Collator -->
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"/>
1110
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"/>
1121         </javac>
1122
1123         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1124             <patternset>
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"/>
1130             </patternset>
1131         </unjar>
1132     </target>
1133
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"/>
1145
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"/>
1153         </javac>
1154
1155         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1156             <patternset>
1157                 <include name="**/DataDrivenCollationTest.res"/>
1158             </patternset>
1159         </unjar>
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"/>
1164             </fileset>
1165         </copy>
1166     </target>
1167
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"/>
1180         </javac>
1181     </target>
1182
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"/>
1194
1195             <patternset refid="common.test.sources"/>
1196             <include name="com/ibm/icu/dev/test/compression/**/*.java"/>
1197         </javac>
1198     </target>
1199
1200     <!-- Format -->
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"/>
1215         </javac>
1216
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"/>
1223
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"/>
1230
1231         <!-- Format does not require BreakIterator data -->
1232         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1233             <patternset>
1234                 <include name="**/*.icu"/>
1235                 <include name="**/*.res"/>
1236                 <exclude name="**/translit/*.res"/>
1237             </patternset>
1238         </unjar>
1239     </target>
1240
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"/>
1252
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"/>
1256         </javac>
1257
1258         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1259             <patternset>
1260                 <include name="**/format.res"/>
1261             </patternset>
1262         </unjar>
1263
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"/>
1266
1267     </target>
1268
1269     <!-- Normalizer -->
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"/>
1288         </javac>
1289
1290         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1291             <patternset>
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"/>
1299             </patternset>
1300         </unjar>
1301     </target>
1302
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"/>
1314
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"/>
1318         </javac>
1319
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"/>
1324             </fileset>
1325         </copy>
1326
1327         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1328             <patternset>
1329                 <include name="**/testnorm.nrm"/>
1330             </patternset>
1331         </unjar>
1332
1333     </target>
1334
1335     <!-- Character Properties -->
1336     <target name="_copyBasicPropsData">
1337         <mkdir dir="${module.bin.dir}"/>
1338         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1339             <patternset>
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"/>
1347             </patternset>
1348         </unjar>
1349     </target>
1350
1351     <target name="_copyFullPropsData">
1352         <mkdir dir="${module.bin.dir}"/>
1353         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1354             <patternset>
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"/>
1368             </patternset>
1369         </unjar>
1370     </target>
1371
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"/>
1385         </javac>
1386     </target>
1387
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"/>
1399
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"/>
1403         </javac>
1404
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"/>
1409             </fileset>
1410         </copy>
1411     </target>
1412
1413     <target name="propertiesBasic" depends="_propertiesClasses, _copyBasicPropsData" description="Modular build of basic character properties"/>
1414
1415     <target name="propertiesBasicTests" depends="propertiesBasic, _propertiesTests" description="Modular build of basic character properties test suite"/>
1416
1417     <target name="propertiesFull" depends="_propertiesClasses, _copyFullPropsData" description="Modular build of full character properties"/>
1418
1419     <target name="propertiesFullTests" depends="propertiesFull, _propertiesTests" description="Modular build of full character properties test suite"/>
1420
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"/>
1432
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"/>
1440         </javac>
1441
1442         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1443             <patternset>
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"/>
1455             </patternset>
1456         </unjar>
1457     </target>
1458
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"/>
1470
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"/>
1475         </javac>
1476
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"/>
1479     </target>
1480
1481     <!-- StringPrep -->
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"/>
1493         </javac>
1494
1495         <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
1496             <patternset>
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"/>
1504             </patternset>
1505         </unjar>
1506     </target>
1507
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"/>
1519
1520             <patternset refid="common.test.sources"/>
1521             <include name="com/ibm/icu/dev/test/stringprep/**/*.java"/>
1522         </javac>
1523
1524         <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
1525             <patternset>
1526                 <include name="**/*.spp"/>
1527                 <include name="**/idna_rules.res"/>
1528             </patternset>
1529         </unjar>
1530
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"/>
1533     </target>
1534
1535     <target name="publishToMavenRepo" depends="releaseBinaries, releaseSrcJars, releaseDocs">
1536         <!--
1537             Publish libraries to Maven repositories, snapshot or release depending on current
1538             version in pom.xml.
1539
1540             Prerequisites
1541             
1542             1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks
1543             2) GnuPG
1544             3) Put build-local.properties to specify followings
1545             
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]
1549
1550             4) Maven configuration file ~/.m2/settings.xml
1551                 <settings>
1552                     <servers>
1553                         <server>
1554                             <id>icu4j-releases</id>
1555                             <username>[your JIRA/Nexus ID]</username>
1556                             <password>[your JIRA/Nexus password]</password>
1557                         </server>
1558                         <server>
1559                             <id>icu4j-snapshots</id>
1560                             <username>[your JIRA/Nexus ID]</username>
1561                             <password>[your JIRA/Nexus password]</password>
1562                         </server>
1563                     </servers>
1564                 </settings>
1565
1566             Note: For now, charset.jar and localespi.jar are excluded.
1567         -->
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}"/>
1571         </condition>
1572         <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/>
1573
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"/>
1577
1578         <xmlproperty file="pom.xml" prefix="pom.xml"/>
1579
1580         <!-- copy release files -->
1581         <property name="maven.release.dir" value="${release.dir}/maven"/>
1582
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"/>
1586
1587         <mkdir dir="${maven.release.dir}"/>
1588
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}"/>
1592
1593         <copy file="pom.xml" todir="${maven.release.dir}"/>
1594
1595         <!-- sign release files-->
1596         <macrodef name="gpg">
1597             <attribute name="file"/>
1598             <sequential>
1599                 <delete file="@{file}.asc" failonerror="false"/>
1600                 <exec executable="gpg">
1601                     <arg value="-u"/>
1602                     <arg value="${gpg.user}"/>
1603                     <arg value="-ab"/>
1604                     <arg value="--passphrase"/>
1605                     <arg value="${gpg.passphrase}"/>
1606                     <arg value="-o"/>
1607                     <arg value="@{file}.asc"/>
1608                     <arg value="@{file}"/>
1609                 </exec>
1610             </sequential>
1611         </macrodef>
1612
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}"/>
1616
1617         <gpg file="${maven.release.dir}/pom.xml"/>
1618
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"/>
1623
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"/>
1629         </deploy>
1630     </target>
1631 </project>