12e5b6d6dSopenharmony_ci<!--
22e5b6d6dSopenharmony_ci* © 2016 and later: Unicode, Inc. and others.
32e5b6d6dSopenharmony_ci* License & terms of use: http://www.unicode.org/copyright.html
42e5b6d6dSopenharmony_ci*******************************************************************************
52e5b6d6dSopenharmony_ci* Copyright (C) 1997-2016, International Business Machines Corporation and    *
62e5b6d6dSopenharmony_ci* others. All Rights Reserved.                                                *
72e5b6d6dSopenharmony_ci*******************************************************************************
82e5b6d6dSopenharmony_ci-->
92e5b6d6dSopenharmony_ci<project name="icu4j" default="jar" basedir="."
102e5b6d6dSopenharmony_ci    xmlns:ivy="antlib:org.apache.ivy.ant"
112e5b6d6dSopenharmony_ci    xmlns:jacoco="antlib:org.jacoco.ant">
122e5b6d6dSopenharmony_ci
132e5b6d6dSopenharmony_ci    <property file="build-local.properties"/>
142e5b6d6dSopenharmony_ci    <property file="build.properties"/>
152e5b6d6dSopenharmony_ci
162e5b6d6dSopenharmony_ci    <property name="shared.dir" value="main/shared"/>
172e5b6d6dSopenharmony_ci    <import file="${shared.dir}/build/common-targets.xml"/>
182e5b6d6dSopenharmony_ci
192e5b6d6dSopenharmony_ci    <property environment="env"/>
202e5b6d6dSopenharmony_ci
212e5b6d6dSopenharmony_ci    <!-- icu4j binaries -->
222e5b6d6dSopenharmony_ci    <property name="icu4j.jar.file" value="icu4j.jar"/>
232e5b6d6dSopenharmony_ci    <property name="icu4jtests.jar.file" value="icu4jtests.jar"/>
242e5b6d6dSopenharmony_ci    <property name="icu4j-charset.jar.file" value="icu4j-charset.jar"/>
252e5b6d6dSopenharmony_ci    <property name="icu4j-localespi.jar.file" value="icu4j-localespi.jar"/>
262e5b6d6dSopenharmony_ci
272e5b6d6dSopenharmony_ci    <property name="icu4jdemos.jar.file" value="icu4jdemos.jar"/>
282e5b6d6dSopenharmony_ci
292e5b6d6dSopenharmony_ci    <!-- icu4j API doc jar file -->
302e5b6d6dSopenharmony_ci    <property name="icu4jdocs.jar.file" value="icu4j-docs.jar"/>
312e5b6d6dSopenharmony_ci
322e5b6d6dSopenharmony_ci    <!-- icu4j src jar files -->
332e5b6d6dSopenharmony_ci    <property name="icu4j-src.jar.file" value="icu4j-src.jar"/>
342e5b6d6dSopenharmony_ci    <property name="icu4j-charset-src.jar.file" value="icu4j-charset-src.jar"/>
352e5b6d6dSopenharmony_ci    <property name="icu4j-localespi-src.jar.file" value="icu4j-localespi-src.jar"/>
362e5b6d6dSopenharmony_ci
372e5b6d6dSopenharmony_ci    <!-- icu4j source package archive files -->
382e5b6d6dSopenharmony_ci    <property name="icu4jsrc.zip.file" value="icu4j.zip"/>
392e5b6d6dSopenharmony_ci    <property name="icu4jsrc.tgz.file" value="icu4j.tgz"/>
402e5b6d6dSopenharmony_ci
412e5b6d6dSopenharmony_ci    <!-- icu4j versioned release files -->
422e5b6d6dSopenharmony_ci    <property name="icu4j.jar.versioned.file" value="icu4j-${release.file.ver}.jar"/>
432e5b6d6dSopenharmony_ci    <property name="icu4j-charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}.jar"/>
442e5b6d6dSopenharmony_ci    <property name="icu4j-localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}.jar"/>
452e5b6d6dSopenharmony_ci
462e5b6d6dSopenharmony_ci    <property name="icu4j-src.jar.versioned.file" value="icu4j-${release.file.ver}-src.jar"/>
472e5b6d6dSopenharmony_ci    <property name="icu4j-charset-src.jar.versioned.file" value="icu4j-charset-${release.file.ver}-src.jar"/>
482e5b6d6dSopenharmony_ci    <property name="icu4j-localespi-src.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-src.jar"/>
492e5b6d6dSopenharmony_ci
502e5b6d6dSopenharmony_ci    <property name="icu4jdocs.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/>
512e5b6d6dSopenharmony_ci
522e5b6d6dSopenharmony_ci    <!-- <property name="icu4jsrc.zip.versioned.file" value="icu4j-${release.file.ver}.zip"/> -->
532e5b6d6dSopenharmony_ci    <property name="icu4jsrc.tgz.versioned.file" value="icu4j-${release.file.ver}.tgz"/>
542e5b6d6dSopenharmony_ci
552e5b6d6dSopenharmony_ci    <!-- API doc -->
562e5b6d6dSopenharmony_ci    <property name="icu4j.api.doc.title" value="ICU4J ${api.doc.version} API Specification"/>
572e5b6d6dSopenharmony_ci    <property name="icu4j.api.doc.window.title" value="ICU4J ${api.doc.version}"/>
582e5b6d6dSopenharmony_ci    <property name="icu4j.api.doc.header" value="ICU4J ${api.doc.version}"/>
592e5b6d6dSopenharmony_ci
602e5b6d6dSopenharmony_ci    <property name="icu4j.api.doc.jdk.link" value="https://docs.oracle.com/javase/8/docs/api/"/>
612e5b6d6dSopenharmony_ci    <property name="icu4j.api.doc.copyright.footer" value="&lt;font size=-1&gt;Copyright &#x00A9; 2016 Unicode, Inc. and others.&lt;/font&gt;"/>
622e5b6d6dSopenharmony_ci
632e5b6d6dSopenharmony_ci    <!-- API docs for maven repo -->
642e5b6d6dSopenharmony_ci    <property name="icu4jdocs.main.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/>
652e5b6d6dSopenharmony_ci    <property name="icu4j.main.api.doc.title" value="ICU4J (com.ibm.icu:icu4j) ${api.doc.version} API Specification"/>
662e5b6d6dSopenharmony_ci    <property name="icu4j.main.api.doc.window.title" value="ICU4J (com.ibm.icu:icu4j) ${api.doc.version}"/>
672e5b6d6dSopenharmony_ci    <property name="icu4j.main.api.doc.header" value="ICU4J (com.ibm.icu:icu4j) ${api.doc.version}"/>
682e5b6d6dSopenharmony_ci
692e5b6d6dSopenharmony_ci    <property name="icu4jdocs.charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}-docs.jar"/>
702e5b6d6dSopenharmony_ci    <property name="icu4j.charset.api.doc.title" value="ICU4J Charset (com.ibm.icu:icu4j-charset) ${api.doc.version} API Specification"/>
712e5b6d6dSopenharmony_ci    <property name="icu4j.charset.api.doc.window.title" value="ICU4J Charset (com.ibm.icu:icu4j-charset) ${api.doc.version}"/>
722e5b6d6dSopenharmony_ci    <property name="icu4j.charset.api.doc.header" value="ICU4J Charset (com.ibm.icu:icu4j-charset) ${api.doc.version}"/>
732e5b6d6dSopenharmony_ci
742e5b6d6dSopenharmony_ci    <property name="icu4jdocs.localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-docs.jar"/>
752e5b6d6dSopenharmony_ci    <property name="icu4j.locspi.api.doc.title" value="ICU4J Locale SPI Provider (com.ibm.icu:icu4j-localespi) ${api.doc.version} API Specification"/>
762e5b6d6dSopenharmony_ci    <property name="icu4j.locspi.api.doc.window.title" value="ICU4J Locale SPI Provider (com.ibm.icu:icu4j-localespi) ${api.doc.version}"/>
772e5b6d6dSopenharmony_ci    <property name="icu4j.locspi.api.doc.header" value="ICU4J Locale SPI Provider (com.ibm.icu:icu4j-localespi) ${api.doc.version}"/>
782e5b6d6dSopenharmony_ci
792e5b6d6dSopenharmony_ci
802e5b6d6dSopenharmony_ci    <!-- directories -->
812e5b6d6dSopenharmony_ci    <property name="release.dir" value="release"/>
822e5b6d6dSopenharmony_ci    <property name="doc.dir" value="doc"/>
832e5b6d6dSopenharmony_ci    <property name="maven.doc.base.dir" value="${out.dir}/mavendoc"/>
842e5b6d6dSopenharmony_ci    <property name="cldr.util.out.dir" value="${out.dir}/cldr_util"/>
852e5b6d6dSopenharmony_ci    <property name="cldr.release.dir" value="release_cldr"/>
862e5b6d6dSopenharmony_ci    <property name="external-jars" value="lib"/>
872e5b6d6dSopenharmony_ci
882e5b6d6dSopenharmony_ci    <!-- Java version check -->
892e5b6d6dSopenharmony_ci    <condition property="is.java8">
902e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^1\.8\.\d.*"/>
912e5b6d6dSopenharmony_ci    </condition>
922e5b6d6dSopenharmony_ci
932e5b6d6dSopenharmony_ci    <condition property="is.java9">
942e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^9((-.|\.\d).*)?"/>
952e5b6d6dSopenharmony_ci    </condition>
962e5b6d6dSopenharmony_ci
972e5b6d6dSopenharmony_ci    <condition property="is.java10">
982e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^10((-.|\.\d).*)?"/>
992e5b6d6dSopenharmony_ci    </condition>
1002e5b6d6dSopenharmony_ci
1012e5b6d6dSopenharmony_ci    <condition property="is.java11">
1022e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^11((-.|\.\d).*)?"/>
1032e5b6d6dSopenharmony_ci    </condition>
1042e5b6d6dSopenharmony_ci
1052e5b6d6dSopenharmony_ci    <condition property="is.java12">
1062e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^12((-.|\.\d).*)?"/>
1072e5b6d6dSopenharmony_ci    </condition>
1082e5b6d6dSopenharmony_ci
1092e5b6d6dSopenharmony_ci    <condition property="is.java13">
1102e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^13((-.|\.\d).*)?"/>
1112e5b6d6dSopenharmony_ci    </condition>
1122e5b6d6dSopenharmony_ci
1132e5b6d6dSopenharmony_ci    <condition property="is.java14">
1142e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^14((-.|\.\d).*)?"/>
1152e5b6d6dSopenharmony_ci    </condition>
1162e5b6d6dSopenharmony_ci
1172e5b6d6dSopenharmony_ci    <condition property="is.java15">
1182e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^15((-.|\.\d).*)?"/>
1192e5b6d6dSopenharmony_ci    </condition>
1202e5b6d6dSopenharmony_ci
1212e5b6d6dSopenharmony_ci    <condition property="is.java16">
1222e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^16((-.|\.\d).*)?"/>
1232e5b6d6dSopenharmony_ci    </condition>
1242e5b6d6dSopenharmony_ci
1252e5b6d6dSopenharmony_ci    <condition property="is.java17">
1262e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^17((-.|\.\d).*)?"/>
1272e5b6d6dSopenharmony_ci    </condition>
1282e5b6d6dSopenharmony_ci
1292e5b6d6dSopenharmony_ci    <condition property="is.java18">
1302e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^18((-.|\.\d).*)?"/>
1312e5b6d6dSopenharmony_ci    </condition>
1322e5b6d6dSopenharmony_ci
1332e5b6d6dSopenharmony_ci    <condition property="is.java19">
1342e5b6d6dSopenharmony_ci        <matches string="${java.version}" pattern="^19((-.|\.\d).*)?"/>
1352e5b6d6dSopenharmony_ci    </condition>
1362e5b6d6dSopenharmony_ci
1372e5b6d6dSopenharmony_ci  <condition property="is.java9.plus">
1382e5b6d6dSopenharmony_ci        <or>
1392e5b6d6dSopenharmony_ci            <isset property="is.java9"/>
1402e5b6d6dSopenharmony_ci            <isset property="is.java10"/>
1412e5b6d6dSopenharmony_ci            <isset property="is.java11"/>
1422e5b6d6dSopenharmony_ci            <isset property="is.java12"/>
1432e5b6d6dSopenharmony_ci            <isset property="is.java13"/>
1442e5b6d6dSopenharmony_ci            <isset property="is.java14"/>
1452e5b6d6dSopenharmony_ci            <isset property="is.java15"/>
1462e5b6d6dSopenharmony_ci            <isset property="is.java16"/>
1472e5b6d6dSopenharmony_ci            <isset property="is.java17"/>
1482e5b6d6dSopenharmony_ci            <isset property="is.java18"/>
1492e5b6d6dSopenharmony_ci            <isset property="is.java19"/>
1502e5b6d6dSopenharmony_ci        </or>
1512e5b6d6dSopenharmony_ci  </condition>
1522e5b6d6dSopenharmony_ci
1532e5b6d6dSopenharmony_ci    <condition property="is.java8.plus">
1542e5b6d6dSopenharmony_ci        <or>
1552e5b6d6dSopenharmony_ci            <isset property="is.java8"/>
1562e5b6d6dSopenharmony_ci            <isset property="is.java9.plus"/>
1572e5b6d6dSopenharmony_ci        </or>
1582e5b6d6dSopenharmony_ci    </condition>
1592e5b6d6dSopenharmony_ci
1602e5b6d6dSopenharmony_ci    <fail message="The JDK version is too old or unknown.">
1612e5b6d6dSopenharmony_ci        <condition>
1622e5b6d6dSopenharmony_ci            <not>
1632e5b6d6dSopenharmony_ci                <isset property="is.java8.plus"/>
1642e5b6d6dSopenharmony_ci            </not>
1652e5b6d6dSopenharmony_ci        </condition>
1662e5b6d6dSopenharmony_ci    </fail>
1672e5b6d6dSopenharmony_ci
1682e5b6d6dSopenharmony_ci    <!-- Build environment info -->
1692e5b6d6dSopenharmony_ci    <property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/>
1702e5b6d6dSopenharmony_ci    <target name="info" description="Display the build environment information">
1712e5b6d6dSopenharmony_ci        <echo message="----- Build Environment Information -------------------"/>
1722e5b6d6dSopenharmony_ci        <echo message="Java Home:    ${java.home}"/>
1732e5b6d6dSopenharmony_ci        <echo message="Java Version: ${java.version}"/>
1742e5b6d6dSopenharmony_ci        <echo message="Ant Home:     ${ant.home}"/>
1752e5b6d6dSopenharmony_ci        <echo message="Ant Version:  ${ant.version}"/>
1762e5b6d6dSopenharmony_ci        <echo message="OS:           ${os.name}"/>
1772e5b6d6dSopenharmony_ci        <echo message="OS Version:   ${os.version}"/>
1782e5b6d6dSopenharmony_ci        <echo message="OS Arch:      ${os.arch}"/>
1792e5b6d6dSopenharmony_ci        <echo message="Host:         ${env.COMPUTERNAME}"/>
1802e5b6d6dSopenharmony_ci        <echo message="-------------------------------------------------------"/>
1812e5b6d6dSopenharmony_ci    </target>
1822e5b6d6dSopenharmony_ci
1832e5b6d6dSopenharmony_ci    <target name="clean" description="Clean up build outputs">
1842e5b6d6dSopenharmony_ci        <ant dir="${icu4j.core.dir}" target="clean" inheritAll="false"/>
1852e5b6d6dSopenharmony_ci        <ant dir="${icu4j.collate.dir}" target="clean" inheritAll="false"/>
1862e5b6d6dSopenharmony_ci        <ant dir="${icu4j.charset.dir}" target="clean" inheritAll="false"/>
1872e5b6d6dSopenharmony_ci        <ant dir="${icu4j.currdata.dir}" target="clean" inheritAll="false"/>
1882e5b6d6dSopenharmony_ci        <ant dir="${icu4j.langdata.dir}" target="clean" inheritAll="false"/>
1892e5b6d6dSopenharmony_ci        <ant dir="${icu4j.localespi.dir}" target="clean" inheritAll="false"/>
1902e5b6d6dSopenharmony_ci        <ant dir="${icu4j.regiondata.dir}" target="clean" inheritAll="false"/>
1912e5b6d6dSopenharmony_ci        <ant dir="${icu4j.translit.dir}" target="clean" inheritAll="false"/>
1922e5b6d6dSopenharmony_ci        <ant dir="${icu4j.test-framework.dir}" target="clean" inheritAll="false"/>
1932e5b6d6dSopenharmony_ci        <ant dir="${icu4j.core-tests.dir}" target="clean" inheritAll="false"/>
1942e5b6d6dSopenharmony_ci        <ant dir="${icu4j.collate-tests.dir}" target="clean" inheritAll="false"/>
1952e5b6d6dSopenharmony_ci        <ant dir="${icu4j.charset-tests.dir}" target="clean" inheritAll="false"/>
1962e5b6d6dSopenharmony_ci        <ant dir="${icu4j.localespi-tests.dir}" target="clean" inheritAll="false"/>
1972e5b6d6dSopenharmony_ci        <ant dir="${icu4j.packaging-tests.dir}" target="clean" inheritAll="false"/>
1982e5b6d6dSopenharmony_ci        <ant dir="${icu4j.translit-tests.dir}" target="clean" inheritAll="false"/>
1992e5b6d6dSopenharmony_ci        <ant dir="${icu4j.build-tools.dir}" target="clean" inheritAll="false"/>
2002e5b6d6dSopenharmony_ci        <ant dir="${icu4j.tools.dir}" target="clean" inheritAll="false"/>
2012e5b6d6dSopenharmony_ci        <ant dir="${icu4j.demos.dir}" target="clean" inheritAll="false"/>
2022e5b6d6dSopenharmony_ci        <ant dir="${icu4j.samples.dir}" target="clean" inheritAll="false"/>
2032e5b6d6dSopenharmony_ci        <ant dir="${icu4j.perf-tests.dir}" target="clean" inheritAll="false"/>
2042e5b6d6dSopenharmony_ci
2052e5b6d6dSopenharmony_ci        <!-- delete all .jar files root directory -->
2062e5b6d6dSopenharmony_ci        <delete>
2072e5b6d6dSopenharmony_ci            <fileset dir="." includes="icu4j*.jar"/>
2082e5b6d6dSopenharmony_ci        </delete>
2092e5b6d6dSopenharmony_ci
2102e5b6d6dSopenharmony_ci        <delete dir="${release.dir}"/>
2112e5b6d6dSopenharmony_ci        <delete dir="${doc.dir}"/>
2122e5b6d6dSopenharmony_ci        <delete dir="${out.dir}"/>
2132e5b6d6dSopenharmony_ci        <delete dir="${module.dir}"/>
2142e5b6d6dSopenharmony_ci        <delete dir="${cldr.release.dir}"/>
2152e5b6d6dSopenharmony_ci    </target>
2162e5b6d6dSopenharmony_ci
2172e5b6d6dSopenharmony_ci    <target name="ivy-clean">
2182e5b6d6dSopenharmony_ci        <ivy:cleancache/>
2192e5b6d6dSopenharmony_ci    </target>
2202e5b6d6dSopenharmony_ci
2212e5b6d6dSopenharmony_ci    <!-- Ivy Targets -->
2222e5b6d6dSopenharmony_ci    <property name="ivy.install.version" value="2.5.0" />
2232e5b6d6dSopenharmony_ci    <condition property="ivy.home" value="${env.IVY_HOME}">
2242e5b6d6dSopenharmony_ci        <isset property="env.IVY_HOME" />
2252e5b6d6dSopenharmony_ci    </condition>
2262e5b6d6dSopenharmony_ci    <property name="ivy.home" value="${user.home}/.ant" />
2272e5b6d6dSopenharmony_ci    <property name="ivy.jar.dir" value="${ivy.home}/lib" />
2282e5b6d6dSopenharmony_ci    <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
2292e5b6d6dSopenharmony_ci
2302e5b6d6dSopenharmony_ci    <target name="download-ivy" unless="offline">
2312e5b6d6dSopenharmony_ci        <mkdir dir="${ivy.jar.dir}"/>
2322e5b6d6dSopenharmony_ci        <!-- download Ivy from web site so that it can be used even without any special installation -->
2332e5b6d6dSopenharmony_ci        <get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
2342e5b6d6dSopenharmony_ci             dest="${ivy.jar.file}" usetimestamp="true"/>
2352e5b6d6dSopenharmony_ci    </target>
2362e5b6d6dSopenharmony_ci
2372e5b6d6dSopenharmony_ci    <target name="init-ivy" depends="download-ivy">
2382e5b6d6dSopenharmony_ci      <!-- try to load ivy here from ivy home, in case the user has not already dropped
2392e5b6d6dSopenharmony_ci              it into ant's lib dir (note that the latter copy will always take precedence).
2402e5b6d6dSopenharmony_ci              We will not fail as long as local lib dir exists (it may be empty) and
2412e5b6d6dSopenharmony_ci              ivy is in at least one of ant's lib dir or the local lib dir. -->
2422e5b6d6dSopenharmony_ci        <path id="ivy.lib.path">
2432e5b6d6dSopenharmony_ci            <fileset dir="${ivy.jar.dir}" includes="*.jar"/>
2442e5b6d6dSopenharmony_ci        </path>
2452e5b6d6dSopenharmony_ci        <taskdef resource="org/apache/ivy/ant/antlib.xml"
2462e5b6d6dSopenharmony_ci                 uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
2472e5b6d6dSopenharmony_ci    </target>
2482e5b6d6dSopenharmony_ci
2492e5b6d6dSopenharmony_ci    <target name="test-init-junit-dependency" depends="init-ivy">
2502e5b6d6dSopenharmony_ci        <ivy:retrieve/>
2512e5b6d6dSopenharmony_ci    </target>
2522e5b6d6dSopenharmony_ci
2532e5b6d6dSopenharmony_ci    <target name="init" depends="test-init-junit-dependency"
2542e5b6d6dSopenharmony_ci            description="Initialize the environment for build and test. May require internet access."/>
2552e5b6d6dSopenharmony_ci
2562e5b6d6dSopenharmony_ci    <target name="_classifytests">
2572e5b6d6dSopenharmony_ci        <condition property="testaction.run">
2582e5b6d6dSopenharmony_ci            <isset property="testclass"/>
2592e5b6d6dSopenharmony_ci       </condition>
2602e5b6d6dSopenharmony_ci       <condition property="testaction.class">
2612e5b6d6dSopenharmony_ci            <and>
2622e5b6d6dSopenharmony_ci                <isset property="testclass"/>
2632e5b6d6dSopenharmony_ci                <not><isset property="testnames"/></not>
2642e5b6d6dSopenharmony_ci            </and>
2652e5b6d6dSopenharmony_ci        </condition>
2662e5b6d6dSopenharmony_ci        <condition property="testaction.tests">
2672e5b6d6dSopenharmony_ci            <and>
2682e5b6d6dSopenharmony_ci                <isset property="testclass"/>
2692e5b6d6dSopenharmony_ci                <isset property="testnames"/>
2702e5b6d6dSopenharmony_ci            </and>
2712e5b6d6dSopenharmony_ci        </condition>
2722e5b6d6dSopenharmony_ci        <condition property="testaction.error">
2732e5b6d6dSopenharmony_ci            <and>
2742e5b6d6dSopenharmony_ci                <not><isset property="testclass"/></not>
2752e5b6d6dSopenharmony_ci                <isset property="testnames"/>
2762e5b6d6dSopenharmony_ci            </and>
2772e5b6d6dSopenharmony_ci        </condition>
2782e5b6d6dSopenharmony_ci        <condition property="testaction.all">
2792e5b6d6dSopenharmony_ci            <and>
2802e5b6d6dSopenharmony_ci                <not><isset property="testclass"/></not>
2812e5b6d6dSopenharmony_ci                <not><isset property="testnames"/></not>
2822e5b6d6dSopenharmony_ci            </and>
2832e5b6d6dSopenharmony_ci        </condition>
2842e5b6d6dSopenharmony_ci    </target>
2852e5b6d6dSopenharmony_ci
2862e5b6d6dSopenharmony_ci    <target name="checkTest" depends="_classifytests, tests, runallTests, noTests" if="testaction.run" description="Run only the specified tests of the specified test class or, if no arguments are given, the standard ICU4J test suite.">
2872e5b6d6dSopenharmony_ci        <sequential>
2882e5b6d6dSopenharmony_ci            <delete dir="${junit.out.dir}/checkTest"/>
2892e5b6d6dSopenharmony_ci            <mkdir dir="${junit.out.dir}/checkTest"/>
2902e5b6d6dSopenharmony_ci
2912e5b6d6dSopenharmony_ci            <junit printsummary="yes" fork="yes">
2922e5b6d6dSopenharmony_ci                <jvmarg value="-ea"/>
2932e5b6d6dSopenharmony_ci                <jvmarg value="-Djava.awt.headless=true"/>
2942e5b6d6dSopenharmony_ci                <jvmarg value="-DICU.exhaustive=10"/>
2952e5b6d6dSopenharmony_ci                <classpath>
2962e5b6d6dSopenharmony_ci                    <path refid="junit.jars"/>
2972e5b6d6dSopenharmony_ci                    <path refid="junit.icu.jars"/>
2982e5b6d6dSopenharmony_ci                </classpath>
2992e5b6d6dSopenharmony_ci                <test name="${testclass}" todir="${junit.out.dir}/checkTest" outfile="checkTest" methods="${testnames}" if="testaction.tests">
3002e5b6d6dSopenharmony_ci                    <formatter type="xml"/>
3012e5b6d6dSopenharmony_ci                </test>
3022e5b6d6dSopenharmony_ci                <test name="${testclass}" todir="${junit.out.dir}/checkTest" outfile="checkTest" if="testaction.class">
3032e5b6d6dSopenharmony_ci                    <formatter type="xml"/>
3042e5b6d6dSopenharmony_ci                </test>
3052e5b6d6dSopenharmony_ci            </junit>
3062e5b6d6dSopenharmony_ci
3072e5b6d6dSopenharmony_ci            <junitreport todir="${junit.out.dir}/checkTest">
3082e5b6d6dSopenharmony_ci                <fileset dir="${junit.out.dir}/checkTest">
3092e5b6d6dSopenharmony_ci                    <include name="checkTest.xml"/>
3102e5b6d6dSopenharmony_ci                </fileset>
3112e5b6d6dSopenharmony_ci                <report format="frames" todir="${junit.out.dir}/checkTest/html"/>
3122e5b6d6dSopenharmony_ci            </junitreport>
3132e5b6d6dSopenharmony_ci
3142e5b6d6dSopenharmony_ci            <fail message="test failed: @{testdir}" if="@{failure-status}" />
3152e5b6d6dSopenharmony_ci        </sequential>
3162e5b6d6dSopenharmony_ci    </target>
3172e5b6d6dSopenharmony_ci
3182e5b6d6dSopenharmony_ci     <target name="runallTests" if="testaction.all">
3192e5b6d6dSopenharmony_ci        <antcall target="allTests"/>
3202e5b6d6dSopenharmony_ci     </target>
3212e5b6d6dSopenharmony_ci
3222e5b6d6dSopenharmony_ci    <target name="allTests" depends="check"/>
3232e5b6d6dSopenharmony_ci
3242e5b6d6dSopenharmony_ci    <target name="noTests" if="testaction.error">
3252e5b6d6dSopenharmony_ci        <echo>Execute JUnit testing using -Dtestclass='class-name' -Dtestnames='test-name1>, test-name2, ...'</echo>
3262e5b6d6dSopenharmony_ci    </target>
3272e5b6d6dSopenharmony_ci
3282e5b6d6dSopenharmony_ci    <!-- Junit Targets -->
3292e5b6d6dSopenharmony_ci    <macrodef name="icu-junit">
3302e5b6d6dSopenharmony_ci        <attribute name="test-name"/>
3312e5b6d6dSopenharmony_ci        <attribute name="jvm-options" default=""/>
3322e5b6d6dSopenharmony_ci        <attribute name="classpath" default="junit.icu.jars"/>
3332e5b6d6dSopenharmony_ci        <attribute name="failure-status" default="ignore"/>
3342e5b6d6dSopenharmony_ci        <element name="junit-fileset"/>
3352e5b6d6dSopenharmony_ci        <element name="junit-parameters" optional="true"/>
3362e5b6d6dSopenharmony_ci        <sequential>
3372e5b6d6dSopenharmony_ci        <echo message="@{jvm-options}"/>
3382e5b6d6dSopenharmony_ci            <!--set the property - if it was set before it won't override-->
3392e5b6d6dSopenharmony_ci            <property name="user-jvm-options" value=""/>
3402e5b6d6dSopenharmony_ci            <property name="internal-jvm-options" value=""/>
3412e5b6d6dSopenharmony_ci            <delete dir="${junit.out.dir}/@{test-name}"/>
3422e5b6d6dSopenharmony_ci            <mkdir  dir="${junit.out.dir}/@{test-name}"/>
3432e5b6d6dSopenharmony_ci
3442e5b6d6dSopenharmony_ci            <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no"
3452e5b6d6dSopenharmony_ci                failureproperty="@{failure-status}" tempdir="${junit.out.dir}">
3462e5b6d6dSopenharmony_ci                <jvmarg value="-Xss4m"/>
3472e5b6d6dSopenharmony_ci                <jvmarg value="-ea"/>
3482e5b6d6dSopenharmony_ci                <jvmarg value="-Djava.awt.headless=true"/>
3492e5b6d6dSopenharmony_ci                <jvmarg line="${user-jvm-options}"/>
3502e5b6d6dSopenharmony_ci                <jvmarg line="@{jvm-options}"/>
3512e5b6d6dSopenharmony_ci                <jvmarg line="${internal-jvm-options}"/>
3522e5b6d6dSopenharmony_ci                <junit-parameters/>
3532e5b6d6dSopenharmony_ci                <classpath>
3542e5b6d6dSopenharmony_ci                    <path refid="junit.jars"/>
3552e5b6d6dSopenharmony_ci                    <path refid="@{classpath}"/>
3562e5b6d6dSopenharmony_ci                </classpath>
3572e5b6d6dSopenharmony_ci                <formatter type="plain"/>
3582e5b6d6dSopenharmony_ci                <formatter type="xml"/>
3592e5b6d6dSopenharmony_ci
3602e5b6d6dSopenharmony_ci                <batchtest todir="${junit.out.dir}/@{test-name}">
3612e5b6d6dSopenharmony_ci                    <junit-fileset/>
3622e5b6d6dSopenharmony_ci                </batchtest>
3632e5b6d6dSopenharmony_ci            </junit>
3642e5b6d6dSopenharmony_ci
3652e5b6d6dSopenharmony_ci            <junitreport tofile="@{test-name}-TestSuite.xml" todir="${junit.out.dir}/@{test-name}">
3662e5b6d6dSopenharmony_ci                <fileset dir="${junit.out.dir}/@{test-name}">
3672e5b6d6dSopenharmony_ci                    <include name="*.xml"/>
3682e5b6d6dSopenharmony_ci                </fileset>
3692e5b6d6dSopenharmony_ci                <report format="frames" todir="${junit.out.dir}/@{test-name}/html"/>
3702e5b6d6dSopenharmony_ci            </junitreport>
3712e5b6d6dSopenharmony_ci
3722e5b6d6dSopenharmony_ci            <fail message="test failed: @{test-name}" if="@{failure-status}" />
3732e5b6d6dSopenharmony_ci
3742e5b6d6dSopenharmony_ci        </sequential>
3752e5b6d6dSopenharmony_ci    </macrodef>
3762e5b6d6dSopenharmony_ci
3772e5b6d6dSopenharmony_ci    <property name="junit.out.dir" value="${out.dir}/junit-results"/>
3782e5b6d6dSopenharmony_ci    <property name="junit.core.jar" value="${external-jars}/junit-4.12.jar"/>
3792e5b6d6dSopenharmony_ci    <property name="junit.hamcrest.jar" value="${external-jars}/hamcrest-core-1.3.jar"/>
3802e5b6d6dSopenharmony_ci    <property name="junit.junitparams.jar" value="${external-jars}/JUnitParams-1.0.5.jar"/>
3812e5b6d6dSopenharmony_ci    <path id="junit.jars">
3822e5b6d6dSopenharmony_ci        <pathelement path="${junit.core.jar}"/>
3832e5b6d6dSopenharmony_ci        <pathelement path="${junit.hamcrest.jar}"/>
3842e5b6d6dSopenharmony_ci        <pathelement path="${junit.junitparams.jar}"/>
3852e5b6d6dSopenharmony_ci    </path>
3862e5b6d6dSopenharmony_ci
3872e5b6d6dSopenharmony_ci    <path id="junit.icu.jars">
3882e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.core.jar}"/>
3892e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.collate.jar}"/>
3902e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.charset.jar}"/>
3912e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.currdata.jar}"/>
3922e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.langdata.jar}"/>
3932e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.regiondata.jar}"/>
3942e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.translit.jar}"/>
3952e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.test-framework.jar}"/>
3962e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.tools.jar}"/>
3972e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.core-tests.jar}"/>
3982e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.collate-tests.jar}"/>
3992e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.charset-tests.jar}"/>
4002e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.translit-tests.jar}"/>
4012e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.localespi-tests.jar}"/>
4022e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.packaging-tests.jar}"/>
4032e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.regiondata.jar}"/>
4042e5b6d6dSopenharmony_ci    </path>
4052e5b6d6dSopenharmony_ci
4062e5b6d6dSopenharmony_ci    <path id="junit.icu.release.jars">
4072e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.jar.file}"/>
4082e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.charset.jar}"/>
4092e5b6d6dSopenharmony_ci        <pathelement location="${icu4jtests.jar.file}"/>
4102e5b6d6dSopenharmony_ci    </path>
4112e5b6d6dSopenharmony_ci
4122e5b6d6dSopenharmony_ci    <path id="junit.icu.localespi-tests.jars">
4132e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.test-framework.jar}"/>
4142e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.localespi-tests.jar}"/>
4152e5b6d6dSopenharmony_ci    </path>
4162e5b6d6dSopenharmony_ci
4172e5b6d6dSopenharmony_ci    <path id="junit.icu.localespi-tests.java9.jars">
4182e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.test-framework.jar}"/>
4192e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.localespi-tests.jar}"/>
4202e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.localespi.jar}"/>
4212e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.core.jar}"/>
4222e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.collate.jar}"/>
4232e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.currdata.jar}"/>
4242e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.langdata.jar}"/>
4252e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.regiondata.jar}"/>
4262e5b6d6dSopenharmony_ci    </path>
4272e5b6d6dSopenharmony_ci
4282e5b6d6dSopenharmony_ci    <!--Class names that will be included/excluded as tests-->
4292e5b6d6dSopenharmony_ci    <patternset id="test-classes-patternset">
4302e5b6d6dSopenharmony_ci        <include name="**/*Test*"/>
4312e5b6d6dSopenharmony_ci        <exclude name="**/*Fmwk*"/>
4322e5b6d6dSopenharmony_ci        <exclude name="**/*TestUtility*"/>
4332e5b6d6dSopenharmony_ci        <exclude name="**/*TestHelper*"/>
4342e5b6d6dSopenharmony_ci        <exclude name="**/*TestCase*"/>
4352e5b6d6dSopenharmony_ci        <exclude name="**/*TestData*"/>
4362e5b6d6dSopenharmony_ci        <exclude name="**/*TestSample*"/>
4372e5b6d6dSopenharmony_ci        <exclude name="**/*$*.class"/>
4382e5b6d6dSopenharmony_ci        <exclude name="**/data/**"/>
4392e5b6d6dSopenharmony_ci        <exclude name="com/ibm/icu/dev/test/*"/>
4402e5b6d6dSopenharmony_ci    </patternset>
4412e5b6d6dSopenharmony_ci
4422e5b6d6dSopenharmony_ci    <!--Class names that will be included/excluded as tests for time zone check-->
4432e5b6d6dSopenharmony_ci    <patternset id="timeZoneCheck-patternset">
4442e5b6d6dSopenharmony_ci        <include name="**/TimeZoneFormatTest*"/>
4452e5b6d6dSopenharmony_ci        <exclude name="**/*$*.class"/>
4462e5b6d6dSopenharmony_ci    </patternset>
4472e5b6d6dSopenharmony_ci
4482e5b6d6dSopenharmony_ci    <!--Class names that will be included/excluded as tests for packaging check-->
4492e5b6d6dSopenharmony_ci    <patternset id="packagingCheck-patternset">
4502e5b6d6dSopenharmony_ci        <include name="**/TestLocaleNamePackaging*"/>
4512e5b6d6dSopenharmony_ci        <exclude name="**/*$*.class"/>
4522e5b6d6dSopenharmony_ci    </patternset>
4532e5b6d6dSopenharmony_ci
4542e5b6d6dSopenharmony_ci    <!--Class names that will be included/excluded as tests for locale SPI check-->
4552e5b6d6dSopenharmony_ci    <patternset id="localespiCheck-patternset">
4562e5b6d6dSopenharmony_ci        <include name="**/*Test*"/>
4572e5b6d6dSopenharmony_ci        <exclude name="com/ibm/icu/dev/test/localespi/TestUtil.*"/>
4582e5b6d6dSopenharmony_ci        <exclude name="**/*$*.class"/>
4592e5b6d6dSopenharmony_ci    </patternset>
4602e5b6d6dSopenharmony_ci
4612e5b6d6dSopenharmony_ci    <!-- meta build targets -->
4622e5b6d6dSopenharmony_ci    <target name="all" depends="info, main, tests, build-tools, tools, demos, samples, perf-tests, jar, docs" description="Build all primary targets"/>
4632e5b6d6dSopenharmony_ci    <target name="main" depends="info, core, collate, charset, currdata, langdata, regiondata, translit, localespi" description="Build ICU4J runtime library classes"/>
4642e5b6d6dSopenharmony_ci    <target name="tests" depends="info, core-tests, charset-tests, collate-tests, packaging-tests, translit-tests, localespi-tests" description="Build ICU4J test classes"/>
4652e5b6d6dSopenharmony_ci
4662e5b6d6dSopenharmony_ci    <target name="secure" depends="icu4jJar" description="(Deprecated)Build ICU4J API and test classes for running the ICU4J test suite with Java security manager enabled"/>
4672e5b6d6dSopenharmony_ci
4682e5b6d6dSopenharmony_ci    <!-- Check to see if JVM_OPTIONS environment variable is set. This can be use to set the heap size. -->
4692e5b6d6dSopenharmony_ci    <property name="env.JVM_OPTIONS" value=""/>
4702e5b6d6dSopenharmony_ci    <property name="jvm_options" value="${env.JVM_OPTIONS}"/>
4712e5b6d6dSopenharmony_ci
4722e5b6d6dSopenharmony_ci    <target name="_check">
4732e5b6d6dSopenharmony_ci    	<parallel>
4742e5b6d6dSopenharmony_ci	        <antcall target="_charsetCheck"/>
4752e5b6d6dSopenharmony_ci    	    <antcall target="_collateCheck"/>
4762e5b6d6dSopenharmony_ci        	<antcall target="_coreCheck"/>
4772e5b6d6dSopenharmony_ci        	<antcall target="_translitCheck"/>
4782e5b6d6dSopenharmony_ci        </parallel>
4792e5b6d6dSopenharmony_ci    </target>
4802e5b6d6dSopenharmony_ci
4812e5b6d6dSopenharmony_ci    <target name="exhaustiveCheck" description="Run the standard ICU4J test suite in exhaustive mode">
4822e5b6d6dSopenharmony_ci        <antcall target="check">
4832e5b6d6dSopenharmony_ci            <param name="internal-jvm-options" value="-DICU.exhaustive=10"/>
4842e5b6d6dSopenharmony_ci        </antcall>
4852e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
4862e5b6d6dSopenharmony_ci    </target>
4872e5b6d6dSopenharmony_ci
4882e5b6d6dSopenharmony_ci    <target name="check" depends="main, tests" description="Run the standard ICU4J test suite">
4892e5b6d6dSopenharmony_ci        <antcall target="_check"/>
4902e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
4912e5b6d6dSopenharmony_ci    </target>
4922e5b6d6dSopenharmony_ci
4932e5b6d6dSopenharmony_ci    <target name="runTest" description="Run the standard ICU4J test suite without calling any other build targets">
4942e5b6d6dSopenharmony_ci        <antcall target="_check"/>
4952e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
4962e5b6d6dSopenharmony_ci    </target>
4972e5b6d6dSopenharmony_ci
4982e5b6d6dSopenharmony_ci    <target name="releaseJarCheck" depends="jar, icu4jtestsJar" description="Run the ICU4J test suite with ICU4J release jar files">
4992e5b6d6dSopenharmony_ci        <icu-junit test-name="releaseJarCheck"
5002e5b6d6dSopenharmony_ci            classpath="junit.icu.release.jars"
5012e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
5022e5b6d6dSopenharmony_ci            <junit-fileset>
5032e5b6d6dSopenharmony_ci                <zipfileset src="${icu4jtests.jar.file}">
5042e5b6d6dSopenharmony_ci                    <patternset refid="test-classes-patternset"/>
5052e5b6d6dSopenharmony_ci                </zipfileset>
5062e5b6d6dSopenharmony_ci            </junit-fileset>
5072e5b6d6dSopenharmony_ci        </icu-junit>
5082e5b6d6dSopenharmony_ci        <fail message="test failed - icu4j/icu4j-charset" if="icu-junit-failure" />
5092e5b6d6dSopenharmony_ci
5102e5b6d6dSopenharmony_ci        <property name="test.java.ext.dir" value="${out.dir}/localespi-ext"/>
5112e5b6d6dSopenharmony_ci        <delete dir="${test.java.ext.dir}"/>
5122e5b6d6dSopenharmony_ci        <mkdir dir="${test.java.ext.dir}"/>
5132e5b6d6dSopenharmony_ci        <copy file="${icu4j-localespi.jar.file}" todir="${test.java.ext.dir}"/>
5142e5b6d6dSopenharmony_ci        <copy file="${icu4j.jar.file}" todir="${test.java.ext.dir}"/>
5152e5b6d6dSopenharmony_ci
5162e5b6d6dSopenharmony_ci        <icu-junit test-name="releaseJarCheck-localespi"
5172e5b6d6dSopenharmony_ci            classpath="junit.icu.localespi-tests.jars"
5182e5b6d6dSopenharmony_ci            jvm-options="-Djava.ext.dirs=${test.java.ext.dir}${path.separator}${java.ext.dirs}"
5192e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
5202e5b6d6dSopenharmony_ci            <junit-fileset>
5212e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.localespi-tests.dir}/${bin.dir}">
5222e5b6d6dSopenharmony_ci                    <patternset refid="localespiCheck-patternset"/>
5232e5b6d6dSopenharmony_ci                </fileset>
5242e5b6d6dSopenharmony_ci            </junit-fileset>
5252e5b6d6dSopenharmony_ci        </icu-junit>
5262e5b6d6dSopenharmony_ci        <fail message="test failed - icu4j-localespi" if="icu-junit-failure" />
5272e5b6d6dSopenharmony_ci    </target>
5282e5b6d6dSopenharmony_ci
5292e5b6d6dSopenharmony_ci    <target name="timeZoneCheck" depends="main, tests" description="Run the complete test for TimeZoneRoundTripAll">
5302e5b6d6dSopenharmony_ci        <icu-junit test-name="timeZoneCheck"
5312e5b6d6dSopenharmony_ci            jvm-options="-DTimeZoneRoundTripAll=true"
5322e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
5332e5b6d6dSopenharmony_ci            <junit-fileset>
5342e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.core-tests.dir}/${bin.dir}">
5352e5b6d6dSopenharmony_ci                    <patternset refid="timeZoneCheck-patternset"/>
5362e5b6d6dSopenharmony_ci                </fileset>
5372e5b6d6dSopenharmony_ci            </junit-fileset>
5382e5b6d6dSopenharmony_ci        </icu-junit>
5392e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
5402e5b6d6dSopenharmony_ci    </target>
5412e5b6d6dSopenharmony_ci
5422e5b6d6dSopenharmony_ci    <target name="jdktzCheck" description="Run the standard ICU4J test suite with JDK TimeZone">
5432e5b6d6dSopenharmony_ci        <antcall target="check">
5442e5b6d6dSopenharmony_ci            <param name="internal-jvm-options" value="-Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=JDK"/>
5452e5b6d6dSopenharmony_ci        </antcall>
5462e5b6d6dSopenharmony_ci    </target>
5472e5b6d6dSopenharmony_ci
5482e5b6d6dSopenharmony_ci    <path id="junit.icu.jars.PackagingCheckNoLangData">
5492e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.core.jar}"/>
5502e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.charset.jar}"/>
5512e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.test-framework.jar}"/>
5522e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.packaging-tests.jar}"/>
5532e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.regiondata.jar}"/>
5542e5b6d6dSopenharmony_ci    </path>
5552e5b6d6dSopenharmony_ci
5562e5b6d6dSopenharmony_ci    <path id="junit.icu.jars.PackagingCheckNoRegionData">
5572e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.core.jar}"/>
5582e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.charset.jar}"/>
5592e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.test-framework.jar}"/>
5602e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.packaging-tests.jar}"/>
5612e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.langdata.jar}"/>
5622e5b6d6dSopenharmony_ci    </path>
5632e5b6d6dSopenharmony_ci
5642e5b6d6dSopenharmony_ci    <path id="junit.icu.jars.PackagingCheckNoLangNorRegionData">
5652e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.core.jar}"/>
5662e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.charset.jar}"/>
5672e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.test-framework.jar}"/>
5682e5b6d6dSopenharmony_ci        <pathelement location="${icu4j.packaging-tests.jar}"/>
5692e5b6d6dSopenharmony_ci    </path>
5702e5b6d6dSopenharmony_ci
5712e5b6d6dSopenharmony_ci    <target name="_packagingCheckNoLangData">
5722e5b6d6dSopenharmony_ci        <!-- region data but no language data -->
5732e5b6d6dSopenharmony_ci        <icu-junit test-name="packaging-NoLangData"
5742e5b6d6dSopenharmony_ci            classpath="junit.icu.jars.PackagingCheckNoLangData"
5752e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
5762e5b6d6dSopenharmony_ci            <junit-fileset>
5772e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.packaging-tests.dir}/${bin.dir}">
5782e5b6d6dSopenharmony_ci                    <patternset refid="packagingCheck-patternset"/>
5792e5b6d6dSopenharmony_ci                </fileset>
5802e5b6d6dSopenharmony_ci            </junit-fileset>
5812e5b6d6dSopenharmony_ci        </icu-junit>
5822e5b6d6dSopenharmony_ci    </target>
5832e5b6d6dSopenharmony_ci
5842e5b6d6dSopenharmony_ci    <target name="_packagingCheckNoRegionData">
5852e5b6d6dSopenharmony_ci        <!-- language data but no region data -->
5862e5b6d6dSopenharmony_ci        <icu-junit test-name="packaging-NoRegionData"
5872e5b6d6dSopenharmony_ci            classpath="junit.icu.jars.PackagingCheckNoRegionData"
5882e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
5892e5b6d6dSopenharmony_ci            <junit-fileset>
5902e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.packaging-tests.dir}/${bin.dir}">
5912e5b6d6dSopenharmony_ci                    <patternset refid="packagingCheck-patternset"/>
5922e5b6d6dSopenharmony_ci                </fileset>
5932e5b6d6dSopenharmony_ci            </junit-fileset>
5942e5b6d6dSopenharmony_ci        </icu-junit>
5952e5b6d6dSopenharmony_ci    </target>
5962e5b6d6dSopenharmony_ci
5972e5b6d6dSopenharmony_ci    <target name="_packagingCheckNoLangNorRegionData">
5982e5b6d6dSopenharmony_ci        <!-- neither region nor language data -->
5992e5b6d6dSopenharmony_ci        <icu-junit test-name="packaging-NoLangNorRegionData"
6002e5b6d6dSopenharmony_ci            classpath="junit.icu.jars.PackagingCheckNoLangNorRegionData"
6012e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
6022e5b6d6dSopenharmony_ci            <junit-fileset>
6032e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.packaging-tests.dir}/${bin.dir}">
6042e5b6d6dSopenharmony_ci                    <patternset refid="packagingCheck-patternset"/>
6052e5b6d6dSopenharmony_ci                </fileset>
6062e5b6d6dSopenharmony_ci            </junit-fileset>
6072e5b6d6dSopenharmony_ci        </icu-junit>
6082e5b6d6dSopenharmony_ci    </target>
6092e5b6d6dSopenharmony_ci
6102e5b6d6dSopenharmony_ci    <target name="packagingCheck" depends="info, core, langdata, regiondata, packaging-tests" description="Run packaging tests">
6112e5b6d6dSopenharmony_ci        <antcall target="_packagingCheckNoLangData"/>
6122e5b6d6dSopenharmony_ci        <antcall target="_packagingCheckNoRegionData"/>
6132e5b6d6dSopenharmony_ci        <antcall target="_packagingCheckNoLangNorRegionData"/>
6142e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
6152e5b6d6dSopenharmony_ci    </target>
6162e5b6d6dSopenharmony_ci
6172e5b6d6dSopenharmony_ci    <target name="_coreCheck">
6182e5b6d6dSopenharmony_ci        <icu-junit test-name="core" failure-status="icu-junit-failure">
6192e5b6d6dSopenharmony_ci            <junit-fileset>
6202e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.core-tests.dir}/${bin.dir}">
6212e5b6d6dSopenharmony_ci                    <patternset refid="test-classes-patternset"/>
6222e5b6d6dSopenharmony_ci                </fileset>
6232e5b6d6dSopenharmony_ci            </junit-fileset>
6242e5b6d6dSopenharmony_ci        </icu-junit>
6252e5b6d6dSopenharmony_ci    </target>
6262e5b6d6dSopenharmony_ci
6272e5b6d6dSopenharmony_ci    <target name="coreCheck" depends="info, core, currdata, langdata, regiondata, core-tests" description="Run only the core tests">
6282e5b6d6dSopenharmony_ci        <antcall target="_coreCheck"/>
6292e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
6302e5b6d6dSopenharmony_ci    </target>
6312e5b6d6dSopenharmony_ci
6322e5b6d6dSopenharmony_ci    <target name="_charsetCheck">
6332e5b6d6dSopenharmony_ci        <icu-junit test-name="charset" failure-status="icu-junit-failure">
6342e5b6d6dSopenharmony_ci            <junit-fileset>
6352e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}">
6362e5b6d6dSopenharmony_ci                    <patternset refid="test-classes-patternset"/>
6372e5b6d6dSopenharmony_ci                </fileset>
6382e5b6d6dSopenharmony_ci            </junit-fileset>
6392e5b6d6dSopenharmony_ci        </icu-junit>
6402e5b6d6dSopenharmony_ci    </target>
6412e5b6d6dSopenharmony_ci
6422e5b6d6dSopenharmony_ci    <target name="charsetCheck" depends="info, core, charset, currdata, langdata, regiondata, core-tests, charset-tests" description="Run only the charset tests">
6432e5b6d6dSopenharmony_ci        <antcall target="_charsetCheck"/>
6442e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
6452e5b6d6dSopenharmony_ci    </target>
6462e5b6d6dSopenharmony_ci
6472e5b6d6dSopenharmony_ci    <target name="_collateCheck">
6482e5b6d6dSopenharmony_ci        <icu-junit test-name="collate" failure-status="icu-junit-failure">
6492e5b6d6dSopenharmony_ci            <junit-fileset>
6502e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}">
6512e5b6d6dSopenharmony_ci                    <patternset refid="test-classes-patternset"/>
6522e5b6d6dSopenharmony_ci                </fileset>
6532e5b6d6dSopenharmony_ci            </junit-fileset>
6542e5b6d6dSopenharmony_ci        </icu-junit>
6552e5b6d6dSopenharmony_ci    </target>
6562e5b6d6dSopenharmony_ci
6572e5b6d6dSopenharmony_ci    <target name="collateCheck" depends="info, core, collate, currdata, langdata, regiondata, core-tests, collate-tests" description="Run only the collation tests">
6582e5b6d6dSopenharmony_ci        <antcall target="_collateCheck"/>
6592e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
6602e5b6d6dSopenharmony_ci    </target>
6612e5b6d6dSopenharmony_ci
6622e5b6d6dSopenharmony_ci    <target name="_translitCheck">
6632e5b6d6dSopenharmony_ci        <icu-junit test-name="translit" failure-status="icu-junit-failure">
6642e5b6d6dSopenharmony_ci            <junit-fileset>
6652e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}">
6662e5b6d6dSopenharmony_ci                    <patternset refid="test-classes-patternset"/>
6672e5b6d6dSopenharmony_ci                </fileset>
6682e5b6d6dSopenharmony_ci            </junit-fileset>
6692e5b6d6dSopenharmony_ci        </icu-junit>
6702e5b6d6dSopenharmony_ci    </target>
6712e5b6d6dSopenharmony_ci
6722e5b6d6dSopenharmony_ci    <target name="translitCheck" depends="info, core, translit, langdata, translit-tests" description="Run the ICU4J Translit test suite">
6732e5b6d6dSopenharmony_ci        <antcall target="_translitCheck"/>
6742e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
6752e5b6d6dSopenharmony_ci    </target>
6762e5b6d6dSopenharmony_ci
6772e5b6d6dSopenharmony_ci    <target name="_localespiCheck" unless="is.java9.plus">
6782e5b6d6dSopenharmony_ci        <icu-junit test-name="localespi"
6792e5b6d6dSopenharmony_ci            classpath="junit.icu.localespi-tests.jars"
6802e5b6d6dSopenharmony_ci            jvm-options="-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}"
6812e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
6822e5b6d6dSopenharmony_ci            <junit-fileset>
6832e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.localespi-tests.dir}/${bin.dir}">
6842e5b6d6dSopenharmony_ci                    <patternset refid="localespiCheck-patternset"/>
6852e5b6d6dSopenharmony_ci                </fileset>
6862e5b6d6dSopenharmony_ci            </junit-fileset>
6872e5b6d6dSopenharmony_ci        </icu-junit>
6882e5b6d6dSopenharmony_ci    </target>
6892e5b6d6dSopenharmony_ci
6902e5b6d6dSopenharmony_ci    <target name="_localespiCheckJava9Plus" if="is.java9.plus">
6912e5b6d6dSopenharmony_ci        <icu-junit test-name="localespi"
6922e5b6d6dSopenharmony_ci            classpath="junit.icu.localespi-tests.java9.jars"
6932e5b6d6dSopenharmony_ci            jvm-options="-Djava.locale.providers=CLDR,COMPAT,SPI"
6942e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
6952e5b6d6dSopenharmony_ci            <junit-fileset>
6962e5b6d6dSopenharmony_ci                <fileset dir="${icu4j.localespi-tests.dir}/${bin.dir}">
6972e5b6d6dSopenharmony_ci                    <patternset refid="localespiCheck-patternset"/>
6982e5b6d6dSopenharmony_ci                </fileset>
6992e5b6d6dSopenharmony_ci            </junit-fileset>
7002e5b6d6dSopenharmony_ci        </icu-junit>
7012e5b6d6dSopenharmony_ci    </target>
7022e5b6d6dSopenharmony_ci
7032e5b6d6dSopenharmony_ci    <target name="localespiCheck" depends="info, localespi, localespi-tests" description="Run the ICU4J Locale SPI test suite">
7042e5b6d6dSopenharmony_ci        <antcall target="_localespiCheck"/>
7052e5b6d6dSopenharmony_ci        <antcall target="_localespiCheckJava9Plus"/>
7062e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
7072e5b6d6dSopenharmony_ci    </target>
7082e5b6d6dSopenharmony_ci
7092e5b6d6dSopenharmony_ci    <target name="secureCheck" depends="jar, icu4jtestsJar" description="Run the ICU4J test suite with Java security manager enabled">
7102e5b6d6dSopenharmony_ci        <icu-junit test-name="secureCheck"
7112e5b6d6dSopenharmony_ci            classpath="junit.icu.release.jars"
7122e5b6d6dSopenharmony_ci            jvm-options="-Djava.security.manager -Djava.security.policy=${user.dir}/${shared.dir}/data/security.policy"
7132e5b6d6dSopenharmony_ci            failure-status="icu-junit-failure">
7142e5b6d6dSopenharmony_ci            <junit-fileset>
7152e5b6d6dSopenharmony_ci                <zipfileset src="${icu4jtests.jar.file}">
7162e5b6d6dSopenharmony_ci                    <patternset refid="test-classes-patternset"/>
7172e5b6d6dSopenharmony_ci                </zipfileset>
7182e5b6d6dSopenharmony_ci            </junit-fileset>
7192e5b6d6dSopenharmony_ci        </icu-junit>
7202e5b6d6dSopenharmony_ci        <fail message="test failed" if="icu-junit-failure" />
7212e5b6d6dSopenharmony_ci    </target>
7222e5b6d6dSopenharmony_ci
7232e5b6d6dSopenharmony_ci    <!-- jar targets -->
7242e5b6d6dSopenharmony_ci    <target name="jar" depends="icu4jJar, charset, localespi" description="Build ICU4J runtime library jar files">
7252e5b6d6dSopenharmony_ci        <copy file="${icu4j.charset.jar}" tofile="${icu4j-charset.jar.file}"/>
7262e5b6d6dSopenharmony_ci        <copy file="${icu4j.localespi.jar}" tofile="${icu4j-localespi.jar.file}" failonerror="false"/>
7272e5b6d6dSopenharmony_ci    </target>
7282e5b6d6dSopenharmony_ci
7292e5b6d6dSopenharmony_ci    <target name="icu4jJar" depends="info, core, collate, currdata, langdata, regiondata, translit" description="Build ICU4J all-in-one core jar">
7302e5b6d6dSopenharmony_ci        <mkdir dir="${out.dir}"/>
7312e5b6d6dSopenharmony_ci
7322e5b6d6dSopenharmony_ci        <!-- manifest -->
7332e5b6d6dSopenharmony_ci        <copy file="manifest.stub" todir="${out.dir}">
7342e5b6d6dSopenharmony_ci            <filterset>
7352e5b6d6dSopenharmony_ci                <filter token="SPECVERSION" value="${jar.spec.version}"/>
7362e5b6d6dSopenharmony_ci                <filter token="IMPLVERSION" value="${jar.impl.version}"/>
7372e5b6d6dSopenharmony_ci                <filter token="COPYRIGHT" value="${jar.copyright.info}"/>
7382e5b6d6dSopenharmony_ci                <filter token="EXECENV" value="${jar.exec.env}"/>
7392e5b6d6dSopenharmony_ci            </filterset>
7402e5b6d6dSopenharmony_ci        </copy>
7412e5b6d6dSopenharmony_ci
7422e5b6d6dSopenharmony_ci        <!-- jar -->
7432e5b6d6dSopenharmony_ci        <jar jarfile="${icu4j.jar.file}"
7442e5b6d6dSopenharmony_ci                compress="true"
7452e5b6d6dSopenharmony_ci                manifest="${out.dir}/manifest.stub">
7462e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.core.dir}/${bin.dir}" includes="**/*"/>
7472e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.collate.dir}/${bin.dir}" includes="**/*"/>
7482e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.currdata.dir}/${bin.dir}" includes="**/*"/>
7492e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.langdata.dir}/${bin.dir}" includes="**/*"/>
7502e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.regiondata.dir}/${bin.dir}" includes="**/*"/>
7512e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.translit.dir}/${bin.dir}" includes="**/*"/>
7522e5b6d6dSopenharmony_ci            <fileset dir="${shared.dir}/licenses">
7532e5b6d6dSopenharmony_ci                <include name="LICENSE"/>
7542e5b6d6dSopenharmony_ci            </fileset>
7552e5b6d6dSopenharmony_ci        </jar>
7562e5b6d6dSopenharmony_ci    </target>
7572e5b6d6dSopenharmony_ci
7582e5b6d6dSopenharmony_ci    <target name="icu4jSrcJar" description="Build icu4j-src.jar">
7592e5b6d6dSopenharmony_ci        <jar jarfile="${icu4j-src.jar.file}"
7602e5b6d6dSopenharmony_ci                compress="true">
7612e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.core.dir}/${src.dir}" includes="**/*.java"/>
7622e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.collate.dir}/${src.dir}" includes="**/*.java"/>
7632e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.currdata.dir}/${src.dir}" includes="**/*.java"/>
7642e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.langdata.dir}/${src.dir}" includes="**/*.java"/>
7652e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.regiondata.dir}/${src.dir}" includes="**/*.java"/>
7662e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.translit.dir}/${src.dir}" includes="**/*.java"/>
7672e5b6d6dSopenharmony_ci            <fileset dir="${shared.dir}/licenses">
7682e5b6d6dSopenharmony_ci                <include name="LICENSE"/>
7692e5b6d6dSopenharmony_ci            </fileset>
7702e5b6d6dSopenharmony_ci        </jar>
7712e5b6d6dSopenharmony_ci    </target>
7722e5b6d6dSopenharmony_ci
7732e5b6d6dSopenharmony_ci    <target name="icu4jtestsJar" depends="info, tests, tools" description="Build ICU4J all-in-one test jar">
7742e5b6d6dSopenharmony_ci        <jar jarfile="${icu4jtests.jar.file}"
7752e5b6d6dSopenharmony_ci                compress="true">
7762e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.test-framework.dir}/${bin.dir}" includes="**/*"/>
7772e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.core-tests.dir}/${bin.dir}" includes="**/*"/>
7782e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}" includes="**/*"/>
7792e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}" includes="**/*"/>
7802e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}" includes="**/*"/>
7812e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.tools.dir}/${bin.dir}" includes="com/ibm/icu/dev/tool/locale/**"/>
7822e5b6d6dSopenharmony_ci        </jar>
7832e5b6d6dSopenharmony_ci    </target>
7842e5b6d6dSopenharmony_ci
7852e5b6d6dSopenharmony_ci    <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file">
7862e5b6d6dSopenharmony_ci        <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/>
7872e5b6d6dSopenharmony_ci    </target>
7882e5b6d6dSopenharmony_ci
7892e5b6d6dSopenharmony_ci
7902e5b6d6dSopenharmony_ci    <!-- release targets -->
7912e5b6d6dSopenharmony_ci    <target name="_check_config_for_release" depends="_checkJCite">
7922e5b6d6dSopenharmony_ci        <condition property="release.build.config.ok">
7932e5b6d6dSopenharmony_ci            <and>
7942e5b6d6dSopenharmony_ci                <isset property="is.java8"/>
7952e5b6d6dSopenharmony_ci                <isset property="jcite.libs"/>
7962e5b6d6dSopenharmony_ci            </and>
7972e5b6d6dSopenharmony_ci        </condition>
7982e5b6d6dSopenharmony_ci    </target>
7992e5b6d6dSopenharmony_ci
8002e5b6d6dSopenharmony_ci    <target name="_verify_config_for_release" depends="_check_config_for_release" unless="release.build.config.ok">
8012e5b6d6dSopenharmony_ci        <condition property="disp.is.java8" value="${java.version}" else="${java.version} - Must be 1.8!">
8022e5b6d6dSopenharmony_ci            <isset property="is.java8"/>
8032e5b6d6dSopenharmony_ci        </condition>
8042e5b6d6dSopenharmony_ci        <condition property="disp.jcite.libs" value="${jcite.libs}" else="Not Defined!">
8052e5b6d6dSopenharmony_ci            <isset property="jcite.libs"/>
8062e5b6d6dSopenharmony_ci        </condition>
8072e5b6d6dSopenharmony_ci
8082e5b6d6dSopenharmony_ci        <echo message="################################################################"/>
8092e5b6d6dSopenharmony_ci        <echo message="[WARNING] Insufficient Build Configuration for ICU4J Release"/>
8102e5b6d6dSopenharmony_ci        <echo message="JDK 8 Tools:                    ${disp.is.java8}"/>
8112e5b6d6dSopenharmony_ci        <echo message="JCite Library Path:             ${disp.jcite.libs}"/>
8122e5b6d6dSopenharmony_ci        <echo message="################################################################"/>
8132e5b6d6dSopenharmony_ci    </target>
8142e5b6d6dSopenharmony_ci
8152e5b6d6dSopenharmony_ci    <target name="_final_release_check" depends="_verify_config_for_release">
8162e5b6d6dSopenharmony_ci        <fail message="Insufficient Build Configuration for ICU4J Release" unless="release.build.config.ok"/>
8172e5b6d6dSopenharmony_ci
8182e5b6d6dSopenharmony_ci        <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"/>
8192e5b6d6dSopenharmony_ci        <condition property="no_maven-ant-tasks">
8202e5b6d6dSopenharmony_ci            <available file="${maven-ant-tasks.jar}"/>
8212e5b6d6dSopenharmony_ci        </condition>
8222e5b6d6dSopenharmony_ci        <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/>
8232e5b6d6dSopenharmony_ci    </target>
8242e5b6d6dSopenharmony_ci
8252e5b6d6dSopenharmony_ci    <!--
8262e5b6d6dSopenharmony_ci        The ant target releaseFinal is used for ICU official release.
8272e5b6d6dSopenharmony_ci        This target builds ICU4J library jars, source jars and API document jars.
8282e5b6d6dSopenharmony_ci        Also, this target publishes ICU4J artifacts to OSSRH staging repository.
8292e5b6d6dSopenharmony_ci
8302e5b6d6dSopenharmony_ci        Prerequisites
8312e5b6d6dSopenharmony_ci
8322e5b6d6dSopenharmony_ci        1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks
8332e5b6d6dSopenharmony_ci
8342e5b6d6dSopenharmony_ci        Note: Apache Maven Ant tasks was already deprecated. You can still
8352e5b6d6dSopenharmony_ci        download the latest version from Maven Central
8362e5b6d6dSopenharmony_ci        http://central.maven.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.jar
8372e5b6d6dSopenharmony_ci
8382e5b6d6dSopenharmony_ci        TODO: Because mavne-ant-tasks was already deprecated and no longer maintained,
8392e5b6d6dSopenharmony_ci        we should look for alternative solution.
8402e5b6d6dSopenharmony_ci
8412e5b6d6dSopenharmony_ci        2) GnuPG
8422e5b6d6dSopenharmony_ci
8432e5b6d6dSopenharmony_ci        3) Put build-local.properties to specify followings
8442e5b6d6dSopenharmony_ci
8452e5b6d6dSopenharmony_ci            maven-ant-tasks.jar = [location of maven ant tasks jar file]
8462e5b6d6dSopenharmony_ci            gpg.user = ICU Project
8472e5b6d6dSopenharmony_ci
8482e5b6d6dSopenharmony_ci        4) Maven configuration file ~/.m2/settings.xml
8492e5b6d6dSopenharmony_ci            <settings>
8502e5b6d6dSopenharmony_ci                <servers>
8512e5b6d6dSopenharmony_ci                    <server>
8522e5b6d6dSopenharmony_ci                        <id>icu4j-releases</id>
8532e5b6d6dSopenharmony_ci                        <username>[oss.sonatype.org Nexus account ID]</username>
8542e5b6d6dSopenharmony_ci                        <password>[oss.sonatype.org Nexus account password]</password>
8552e5b6d6dSopenharmony_ci                    </server>
8562e5b6d6dSopenharmony_ci                    <server>
8572e5b6d6dSopenharmony_ci                        <id>icu4j-snapshots</id>
8582e5b6d6dSopenharmony_ci                        <username>[oss.sonatype.org Nexus account ID]</username>
8592e5b6d6dSopenharmony_ci                        <password>[oss.sonatype.org Nexus account password]</password>
8602e5b6d6dSopenharmony_ci                    </server>
8612e5b6d6dSopenharmony_ci                </servers>
8622e5b6d6dSopenharmony_ci            </settings>
8632e5b6d6dSopenharmony_ci    -->
8642e5b6d6dSopenharmony_ci    <target name="releaseFinal" depends="info, _final_release_check, releaseVer, docsMaven"
8652e5b6d6dSopenharmony_ci        description="Build all ICU4J release files for distribution and upload them to the OSSRH staging repository">
8662e5b6d6dSopenharmony_ci
8672e5b6d6dSopenharmony_ci        <property name="maven.pom.dir" value="maven"/>
8682e5b6d6dSopenharmony_ci        <property name="maven.icu4j.release.dir" value="${release.dir}/maven/icu4j"/>
8692e5b6d6dSopenharmony_ci        <property name="maven.charset.release.dir" value="${release.dir}/maven/icu4j-charset"/>
8702e5b6d6dSopenharmony_ci        <property name="maven.localespi.release.dir" value="${release.dir}/maven/icu4j-localespi"/>
8712e5b6d6dSopenharmony_ci
8722e5b6d6dSopenharmony_ci        <property name="maven.icu4j.jar.file" value="icu4j-${maven.pom.ver}.jar"/>
8732e5b6d6dSopenharmony_ci        <property name="maven.icu4j.src.jar.file" value="icu4j-${maven.pom.ver}-sources.jar"/>
8742e5b6d6dSopenharmony_ci        <property name="maven.icu4j.doc.jar.file" value="icu4j-${maven.pom.ver}-javadoc.jar"/>
8752e5b6d6dSopenharmony_ci
8762e5b6d6dSopenharmony_ci        <property name="maven.charset.jar.file" value="icu4j-charset-${maven.pom.ver}.jar"/>
8772e5b6d6dSopenharmony_ci        <property name="maven.charset.src.jar.file" value="icu4j-charset-${maven.pom.ver}-sources.jar"/>
8782e5b6d6dSopenharmony_ci        <property name="maven.charset.doc.jar.file" value="icu4j-charset-${maven.pom.ver}-javadoc.jar"/>
8792e5b6d6dSopenharmony_ci
8802e5b6d6dSopenharmony_ci        <property name="maven.localespi.jar.file" value="icu4j-localespi-${maven.pom.ver}.jar"/>
8812e5b6d6dSopenharmony_ci        <property name="maven.localespi.src.jar.file" value="icu4j-localespi-${maven.pom.ver}-sources.jar"/>
8822e5b6d6dSopenharmony_ci        <property name="maven.localespi.doc.jar.file" value="icu4j-localespi-${maven.pom.ver}-javadoc.jar"/>
8832e5b6d6dSopenharmony_ci
8842e5b6d6dSopenharmony_ci
8852e5b6d6dSopenharmony_ci        <delete dir="${release.dir}/maven"/>
8862e5b6d6dSopenharmony_ci        <mkdir dir="${maven.icu4j.release.dir}"/>
8872e5b6d6dSopenharmony_ci        <mkdir dir="${maven.charset.release.dir}"/>
8882e5b6d6dSopenharmony_ci        <mkdir dir="${maven.localespi.release.dir}"/>
8892e5b6d6dSopenharmony_ci
8902e5b6d6dSopenharmony_ci
8912e5b6d6dSopenharmony_ci        <!-- copy pom.xml with version -->
8922e5b6d6dSopenharmony_ci        <copy file="${maven.pom.dir}/icu4j/pom.xml" todir="${maven.icu4j.release.dir}">
8932e5b6d6dSopenharmony_ci            <filterset>
8942e5b6d6dSopenharmony_ci                <filter token="POMVERSION" value="${maven.pom.ver}"/>
8952e5b6d6dSopenharmony_ci            </filterset>
8962e5b6d6dSopenharmony_ci        </copy>
8972e5b6d6dSopenharmony_ci        <copy file="${maven.pom.dir}/icu4j-charset/pom.xml" todir="${maven.charset.release.dir}">
8982e5b6d6dSopenharmony_ci            <filterset>
8992e5b6d6dSopenharmony_ci                <filter token="POMVERSION" value="${maven.pom.ver}"/>
9002e5b6d6dSopenharmony_ci            </filterset>
9012e5b6d6dSopenharmony_ci        </copy>
9022e5b6d6dSopenharmony_ci        <copy file="${maven.pom.dir}/icu4j-localespi/pom.xml" todir="${maven.localespi.release.dir}">
9032e5b6d6dSopenharmony_ci            <filterset>
9042e5b6d6dSopenharmony_ci                <filter token="POMVERSION" value="${maven.pom.ver}"/>
9052e5b6d6dSopenharmony_ci            </filterset>
9062e5b6d6dSopenharmony_ci        </copy>
9072e5b6d6dSopenharmony_ci
9082e5b6d6dSopenharmony_ci        <!-- copy ICU release binaries and source archive to the maven release directory -->
9092e5b6d6dSopenharmony_ci        <copy file="${release.dir}/${icu4j.jar.versioned.file}"
9102e5b6d6dSopenharmony_ci            tofile="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}"/>
9112e5b6d6dSopenharmony_ci        <copy file="${release.dir}/${icu4j-charset.jar.versioned.file}"
9122e5b6d6dSopenharmony_ci            tofile="${maven.charset.release.dir}/${maven.charset.jar.file}"/>
9132e5b6d6dSopenharmony_ci        <copy file="${release.dir}/${icu4j-localespi.jar.versioned.file}"
9142e5b6d6dSopenharmony_ci            tofile="${maven.localespi.release.dir}/${maven.localespi.jar.file}"/>
9152e5b6d6dSopenharmony_ci
9162e5b6d6dSopenharmony_ci        <copy file="${release.dir}/${icu4j-src.jar.versioned.file}"
9172e5b6d6dSopenharmony_ci            tofile="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}"/>
9182e5b6d6dSopenharmony_ci        <copy file="${release.dir}/${icu4j-charset-src.jar.versioned.file}"
9192e5b6d6dSopenharmony_ci            tofile="${maven.charset.release.dir}/${maven.charset.src.jar.file}"/>
9202e5b6d6dSopenharmony_ci        <copy file="${release.dir}/${icu4j-localespi-src.jar.versioned.file}"
9212e5b6d6dSopenharmony_ci            tofile="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}"/>
9222e5b6d6dSopenharmony_ci
9232e5b6d6dSopenharmony_ci        <!-- javadoc jar for maven release -->
9242e5b6d6dSopenharmony_ci        <jar jarfile="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}"
9252e5b6d6dSopenharmony_ci            compress="true"
9262e5b6d6dSopenharmony_ci            basedir="${maven.doc.base.dir}/icu4j"/>
9272e5b6d6dSopenharmony_ci        <jar jarfile="${maven.charset.release.dir}/${maven.charset.doc.jar.file}"
9282e5b6d6dSopenharmony_ci            compress="true"
9292e5b6d6dSopenharmony_ci            basedir="${maven.doc.base.dir}/charset"/>
9302e5b6d6dSopenharmony_ci        <jar jarfile="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}"
9312e5b6d6dSopenharmony_ci            compress="true"
9322e5b6d6dSopenharmony_ci            basedir="${maven.doc.base.dir}/localespi"/>
9332e5b6d6dSopenharmony_ci
9342e5b6d6dSopenharmony_ci        <!-- sign release files-->
9352e5b6d6dSopenharmony_ci        <macrodef name="gpg">
9362e5b6d6dSopenharmony_ci            <attribute name="file"/>
9372e5b6d6dSopenharmony_ci            <sequential>
9382e5b6d6dSopenharmony_ci                <delete file="@{file}.asc" failonerror="false"/>
9392e5b6d6dSopenharmony_ci                <exec executable="gpg">
9402e5b6d6dSopenharmony_ci                    <arg value="-u"/>
9412e5b6d6dSopenharmony_ci                    <arg value="${gpg.user}"/>
9422e5b6d6dSopenharmony_ci                    <arg value="-ab"/>
9432e5b6d6dSopenharmony_ci                    <arg value="-o"/>
9442e5b6d6dSopenharmony_ci                    <arg value="@{file}.asc"/>
9452e5b6d6dSopenharmony_ci                    <arg value="@{file}"/>
9462e5b6d6dSopenharmony_ci                </exec>
9472e5b6d6dSopenharmony_ci            </sequential>
9482e5b6d6dSopenharmony_ci        </macrodef>
9492e5b6d6dSopenharmony_ci
9502e5b6d6dSopenharmony_ci        <gpg file="${maven.icu4j.release.dir}/pom.xml"/>
9512e5b6d6dSopenharmony_ci        <gpg file="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}"/>
9522e5b6d6dSopenharmony_ci        <gpg file="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}"/>
9532e5b6d6dSopenharmony_ci        <gpg file="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}"/>
9542e5b6d6dSopenharmony_ci
9552e5b6d6dSopenharmony_ci        <gpg file="${maven.charset.release.dir}/pom.xml"/>
9562e5b6d6dSopenharmony_ci        <gpg file="${maven.charset.release.dir}/${maven.charset.jar.file}"/>
9572e5b6d6dSopenharmony_ci        <gpg file="${maven.charset.release.dir}/${maven.charset.src.jar.file}"/>
9582e5b6d6dSopenharmony_ci        <gpg file="${maven.charset.release.dir}/${maven.charset.doc.jar.file}"/>
9592e5b6d6dSopenharmony_ci
9602e5b6d6dSopenharmony_ci        <gpg file="${maven.localespi.release.dir}/pom.xml"/>
9612e5b6d6dSopenharmony_ci        <gpg file="${maven.localespi.release.dir}/${maven.localespi.jar.file}"/>
9622e5b6d6dSopenharmony_ci        <gpg file="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}"/>
9632e5b6d6dSopenharmony_ci        <gpg file="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}"/>
9642e5b6d6dSopenharmony_ci
9652e5b6d6dSopenharmony_ci        <!-- deploy ICU4J artifacts to the OSSRH staging repository -->
9662e5b6d6dSopenharmony_ci        <path id="maven-ant-tasks.classpath" path="${maven-ant-tasks.jar}"/>
9672e5b6d6dSopenharmony_ci        <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
9682e5b6d6dSopenharmony_ci            classpathref="maven-ant-tasks.classpath"/>
9692e5b6d6dSopenharmony_ci
9702e5b6d6dSopenharmony_ci        <deploy xmlns="urn:maven-artifact-ant" file="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}">
9712e5b6d6dSopenharmony_ci            <pom file="${maven.icu4j.release.dir}/pom.xml"/>
9722e5b6d6dSopenharmony_ci            <attach file="${maven.icu4j.release.dir}/pom.xml.asc" type="pom.asc"/>
9732e5b6d6dSopenharmony_ci            <attach file="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}.asc" type="jar.asc"/>
9742e5b6d6dSopenharmony_ci            <attach file="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}" classifier="sources"/>
9752e5b6d6dSopenharmony_ci            <attach file="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}.asc" classifier="sources" type="jar.asc"/>
9762e5b6d6dSopenharmony_ci            <attach file="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}" classifier="javadoc"/>
9772e5b6d6dSopenharmony_ci            <attach file="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}.asc" classifier="javadoc" type="jar.asc"/>
9782e5b6d6dSopenharmony_ci        </deploy>
9792e5b6d6dSopenharmony_ci
9802e5b6d6dSopenharmony_ci        <deploy xmlns="urn:maven-artifact-ant" file="${maven.charset.release.dir}/${maven.charset.jar.file}">
9812e5b6d6dSopenharmony_ci            <pom file="${maven.charset.release.dir}/pom.xml"/>
9822e5b6d6dSopenharmony_ci            <attach file="${maven.charset.release.dir}/pom.xml.asc" type="pom.asc"/>
9832e5b6d6dSopenharmony_ci            <attach file="${maven.charset.release.dir}/${maven.charset.jar.file}.asc" type="jar.asc"/>
9842e5b6d6dSopenharmony_ci            <attach file="${maven.charset.release.dir}/${maven.charset.src.jar.file}" classifier="sources"/>
9852e5b6d6dSopenharmony_ci            <attach file="${maven.charset.release.dir}/${maven.charset.src.jar.file}.asc" classifier="sources" type="jar.asc"/>
9862e5b6d6dSopenharmony_ci            <attach file="${maven.charset.release.dir}/${maven.charset.doc.jar.file}" classifier="javadoc"/>
9872e5b6d6dSopenharmony_ci            <attach file="${maven.charset.release.dir}/${maven.charset.doc.jar.file}.asc" classifier="javadoc" type="jar.asc"/>
9882e5b6d6dSopenharmony_ci        </deploy>
9892e5b6d6dSopenharmony_ci
9902e5b6d6dSopenharmony_ci        <deploy xmlns="urn:maven-artifact-ant" file="${maven.localespi.release.dir}/${maven.localespi.jar.file}">
9912e5b6d6dSopenharmony_ci            <pom file="${maven.localespi.release.dir}/pom.xml"/>
9922e5b6d6dSopenharmony_ci            <attach file="${maven.localespi.release.dir}/pom.xml.asc" type="pom.asc"/>
9932e5b6d6dSopenharmony_ci            <attach file="${maven.localespi.release.dir}/${maven.localespi.jar.file}.asc" type="jar.asc"/>
9942e5b6d6dSopenharmony_ci            <attach file="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}" classifier="sources"/>
9952e5b6d6dSopenharmony_ci            <attach file="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}.asc" classifier="sources" type="jar.asc"/>
9962e5b6d6dSopenharmony_ci            <attach file="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}" classifier="javadoc"/>
9972e5b6d6dSopenharmony_ci            <attach file="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}.asc" classifier="javadoc" type="jar.asc"/>
9982e5b6d6dSopenharmony_ci        </deploy>
9992e5b6d6dSopenharmony_ci    </target>
10002e5b6d6dSopenharmony_ci
10012e5b6d6dSopenharmony_ci    <target name="releaseVer" depends="info, releaseBinaries, releaseJarCheck, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz"
10022e5b6d6dSopenharmony_ci            description="Build all ICU4J release files for distribution with versioned file names">
10032e5b6d6dSopenharmony_ci        <!-- binaries -->
10042e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.versioned.file}"/>
10052e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4j-charset.jar.file}" tofile="${release.dir}/${icu4j-charset.jar.versioned.file}"/>
10062e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4j-localespi.jar.file}" tofile="${release.dir}/${icu4j-localespi.jar.versioned.file}"/>
10072e5b6d6dSopenharmony_ci
10082e5b6d6dSopenharmony_ci        <!-- source jars -->
10092e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.versioned.file}"/>
10102e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.versioned.file}"/>
10112e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.versioned.file}"/>
10122e5b6d6dSopenharmony_ci
10132e5b6d6dSopenharmony_ci        <!-- docs -->
10142e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4jdocs.jar.file}" tofile="${release.dir}/${icu4jdocs.jar.versioned.file}"/>
10152e5b6d6dSopenharmony_ci
10162e5b6d6dSopenharmony_ci        <!-- package archive -->
10172e5b6d6dSopenharmony_ci        <move file="${release.dir}/${icu4jsrc.tgz.file}" tofile="${release.dir}/${icu4jsrc.tgz.versioned.file}"/>
10182e5b6d6dSopenharmony_ci
10192e5b6d6dSopenharmony_ci        <!-- md5 checksum file -->
10202e5b6d6dSopenharmony_ci        <mkdir dir="${out.dir}/checksum"/>
10212e5b6d6dSopenharmony_ci        <delete dir="${out.dir}/checksum" includes="**/*"/>
10222e5b6d6dSopenharmony_ci
10232e5b6d6dSopenharmony_ci        <checksum todir="${out.dir}/checksum" format="MD5SUM">
10242e5b6d6dSopenharmony_ci            <fileset dir="${release.dir}">
10252e5b6d6dSopenharmony_ci                <include name="*.jar"/>
10262e5b6d6dSopenharmony_ci                <include name="*.tgz"/>
10272e5b6d6dSopenharmony_ci            </fileset>
10282e5b6d6dSopenharmony_ci        </checksum>
10292e5b6d6dSopenharmony_ci
10302e5b6d6dSopenharmony_ci        <concat destfile="${release.dir}/icu4j-${release.file.ver}.md5">
10312e5b6d6dSopenharmony_ci            <fileset dir="${out.dir}/checksum" includes="*"/>
10322e5b6d6dSopenharmony_ci            <filterchain>
10332e5b6d6dSopenharmony_ci                <fixcrlf eol="lf"/>
10342e5b6d6dSopenharmony_ci            </filterchain>
10352e5b6d6dSopenharmony_ci        </concat>
10362e5b6d6dSopenharmony_ci
10372e5b6d6dSopenharmony_ci        <antcall target="_verify_config_for_release"/>
10382e5b6d6dSopenharmony_ci    </target>
10392e5b6d6dSopenharmony_ci
10402e5b6d6dSopenharmony_ci    <target name="release" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz" description="Build all ICU4J release files for distribution">
10412e5b6d6dSopenharmony_ci        <mkdir dir="${out.dir}/checksum"/>
10422e5b6d6dSopenharmony_ci        <delete dir="${out.dir}/checksum" includes="**/*"/>
10432e5b6d6dSopenharmony_ci
10442e5b6d6dSopenharmony_ci        <checksum todir="${out.dir}/checksum" format="MD5SUM">
10452e5b6d6dSopenharmony_ci            <fileset dir="${release.dir}">
10462e5b6d6dSopenharmony_ci                <include name="*.jar"/>
10472e5b6d6dSopenharmony_ci                <include name="*.tgz"/>
10482e5b6d6dSopenharmony_ci            </fileset>
10492e5b6d6dSopenharmony_ci        </checksum>
10502e5b6d6dSopenharmony_ci
10512e5b6d6dSopenharmony_ci        <concat destfile="${release.dir}/icu4j.md5">
10522e5b6d6dSopenharmony_ci            <fileset dir="${out.dir}/checksum" includes="*"/>
10532e5b6d6dSopenharmony_ci            <filterchain>
10542e5b6d6dSopenharmony_ci                <fixcrlf eol="lf"/>
10552e5b6d6dSopenharmony_ci            </filterchain>
10562e5b6d6dSopenharmony_ci        </concat>
10572e5b6d6dSopenharmony_ci
10582e5b6d6dSopenharmony_ci        <antcall target="_verify_config_for_release"/>
10592e5b6d6dSopenharmony_ci    </target>
10602e5b6d6dSopenharmony_ci
10612e5b6d6dSopenharmony_ci    <target name="releaseBinaries" depends="icu4jJar, charset, localespi" description="Build ICU4J binary files for distribution">
10622e5b6d6dSopenharmony_ci        <mkdir dir="${release.dir}"/>
10632e5b6d6dSopenharmony_ci        <copy file="${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.file}"/>
10642e5b6d6dSopenharmony_ci        <copy file="${icu4j.charset.jar}" tofile="${release.dir}/${icu4j-charset.jar.file}"/>
10652e5b6d6dSopenharmony_ci        <copy file="${icu4j.localespi.jar}" tofile="${release.dir}/${icu4j-localespi.jar.file}"/>
10662e5b6d6dSopenharmony_ci    </target>
10672e5b6d6dSopenharmony_ci
10682e5b6d6dSopenharmony_ci    <target name="releaseSrcJars" depends="icu4jSrcJar" description="Build ICU4J src jar files for distribution">
10692e5b6d6dSopenharmony_ci        <mkdir dir="${release.dir}"/>
10702e5b6d6dSopenharmony_ci
10712e5b6d6dSopenharmony_ci        <!-- icu4j src-jar -->
10722e5b6d6dSopenharmony_ci        <copy file="${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.file}"/>
10732e5b6d6dSopenharmony_ci
10742e5b6d6dSopenharmony_ci        <!-- charset/localespi src-jar -->
10752e5b6d6dSopenharmony_ci        <ant dir="${icu4j.charset.dir}" target="src-jar" inheritAll="false"/>
10762e5b6d6dSopenharmony_ci        <ant dir="${icu4j.localespi.dir}" target="src-jar" inheritAll="false"/>
10772e5b6d6dSopenharmony_ci
10782e5b6d6dSopenharmony_ci        <copy file="${icu4j.charset.dir}/${out.dir}/lib/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.file}"/>
10792e5b6d6dSopenharmony_ci        <copy file="${icu4j.localespi.dir}/${out.dir}/lib/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.file}"/>
10802e5b6d6dSopenharmony_ci    </target>
10812e5b6d6dSopenharmony_ci
10822e5b6d6dSopenharmony_ci
10832e5b6d6dSopenharmony_ci    <target name="releaseDocs" depends="docs" description="Build ICU4J API reference doc jar file for distribution">
10842e5b6d6dSopenharmony_ci        <mkdir dir="${release.dir}"/>
10852e5b6d6dSopenharmony_ci        <jar jarfile="${release.dir}/${icu4jdocs.jar.file}" compress="true" basedir="${doc.dir}"/>
10862e5b6d6dSopenharmony_ci    </target>
10872e5b6d6dSopenharmony_ci
10882e5b6d6dSopenharmony_ci    <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/>
10892e5b6d6dSopenharmony_ci
10902e5b6d6dSopenharmony_ci    <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)">
10912e5b6d6dSopenharmony_ci        <delete dir="${src.release.wrk.dir}"/>
10922e5b6d6dSopenharmony_ci        <delete file="${icu4jsrc.zip.file}"/>
10932e5b6d6dSopenharmony_ci
10942e5b6d6dSopenharmony_ci        <mkdir dir="${src.release.wrk.dir}"/>
10952e5b6d6dSopenharmony_ci
10962e5b6d6dSopenharmony_ci        <fixcrlf srcdir="."
10972e5b6d6dSopenharmony_ci                destdir="${src.release.wrk.dir}"
10982e5b6d6dSopenharmony_ci                encoding="UTF-8"
10992e5b6d6dSopenharmony_ci                eol="crlf">
11002e5b6d6dSopenharmony_ci            <include name="demos/**/*"/>
11012e5b6d6dSopenharmony_ci            <include name="main/**/*"/>
11022e5b6d6dSopenharmony_ci            <include name="perf-tests/**/*"/>
11032e5b6d6dSopenharmony_ci            <include name="samples/**/*"/>
11042e5b6d6dSopenharmony_ci            <include name="tools/**/*"/>
11052e5b6d6dSopenharmony_ci            <include name="*.html"/>
11062e5b6d6dSopenharmony_ci            <include name="*.xml"/>
11072e5b6d6dSopenharmony_ci            <include name="*.properties"/>
11082e5b6d6dSopenharmony_ci            <include name="*.css"/>
11092e5b6d6dSopenharmony_ci            <include name="*.stub"/>
11102e5b6d6dSopenharmony_ci            <exclude name="**/out/**/*"/>
11112e5b6d6dSopenharmony_ci            <exclude name="**/*.jar"/>
11122e5b6d6dSopenharmony_ci            <exclude name="**/build-local.properties"/>
11132e5b6d6dSopenharmony_ci            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
11142e5b6d6dSopenharmony_ci            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
11152e5b6d6dSopenharmony_ci            <exclude name="tools/build/icu4j*.api*.gz"/>
11162e5b6d6dSopenharmony_ci        </fixcrlf>
11172e5b6d6dSopenharmony_ci
11182e5b6d6dSopenharmony_ci        <mkdir dir="${release.dir}"/>
11192e5b6d6dSopenharmony_ci        <zip destfile="${release.dir}/${icu4jsrc.zip.file}">
11202e5b6d6dSopenharmony_ci            <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
11212e5b6d6dSopenharmony_ci            <fileset dir="${basedir}">
11222e5b6d6dSopenharmony_ci                <include name="main/shared/data/*.jar"/>
11232e5b6d6dSopenharmony_ci                <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
11242e5b6d6dSopenharmony_ci                <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
11252e5b6d6dSopenharmony_ci                <include name="tools/build/icu4j*.api*.gz"/>
11262e5b6d6dSopenharmony_ci            </fileset>
11272e5b6d6dSopenharmony_ci        </zip>
11282e5b6d6dSopenharmony_ci
11292e5b6d6dSopenharmony_ci        <delete dir="${src.release.wrk.dir}"/>
11302e5b6d6dSopenharmony_ci    </target>
11312e5b6d6dSopenharmony_ci
11322e5b6d6dSopenharmony_ci    <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)">
11332e5b6d6dSopenharmony_ci        <delete dir="${src.release.wrk.dir}"/>
11342e5b6d6dSopenharmony_ci        <delete file="${icu4jsrc.tgz.file}"/>
11352e5b6d6dSopenharmony_ci
11362e5b6d6dSopenharmony_ci        <mkdir dir="${src.release.wrk.dir}"/>
11372e5b6d6dSopenharmony_ci
11382e5b6d6dSopenharmony_ci        <fixcrlf srcdir="."
11392e5b6d6dSopenharmony_ci                destdir="${src.release.wrk.dir}"
11402e5b6d6dSopenharmony_ci                encoding="UTF-8"
11412e5b6d6dSopenharmony_ci                eol="lf">
11422e5b6d6dSopenharmony_ci            <include name="demos/**/*"/>
11432e5b6d6dSopenharmony_ci            <include name="main/**/*"/>
11442e5b6d6dSopenharmony_ci            <include name="maven/**/*"/>
11452e5b6d6dSopenharmony_ci            <include name="perf-tests/**/*"/>
11462e5b6d6dSopenharmony_ci            <include name="samples/**/*"/>
11472e5b6d6dSopenharmony_ci            <include name="tools/**/*"/>
11482e5b6d6dSopenharmony_ci            <include name="*.html"/>
11492e5b6d6dSopenharmony_ci            <include name="*.xml"/>
11502e5b6d6dSopenharmony_ci            <include name="*.properties"/>
11512e5b6d6dSopenharmony_ci            <include name="*.css"/>
11522e5b6d6dSopenharmony_ci            <include name="*.stub"/>
11532e5b6d6dSopenharmony_ci            <exclude name="**/out/**/*"/>
11542e5b6d6dSopenharmony_ci            <exclude name="**/*.jar"/>
11552e5b6d6dSopenharmony_ci            <exclude name="**/build-local.properties"/>
11562e5b6d6dSopenharmony_ci            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
11572e5b6d6dSopenharmony_ci            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
11582e5b6d6dSopenharmony_ci            <exclude name="tools/build/icu4j*.api*.gz"/>
11592e5b6d6dSopenharmony_ci        </fixcrlf>
11602e5b6d6dSopenharmony_ci
11612e5b6d6dSopenharmony_ci        <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/>
11622e5b6d6dSopenharmony_ci
11632e5b6d6dSopenharmony_ci        <tar destfile="${icu4jsrc.tar}" longfile="gnu">
11642e5b6d6dSopenharmony_ci            <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
11652e5b6d6dSopenharmony_ci            <fileset dir="${basedir}">
11662e5b6d6dSopenharmony_ci                <include name="main/shared/data/*.jar"/>
11672e5b6d6dSopenharmony_ci                <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
11682e5b6d6dSopenharmony_ci                <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
11692e5b6d6dSopenharmony_ci                <include name="tools/build/icu4j*.api*.gz"/>
11702e5b6d6dSopenharmony_ci            </fileset>
11712e5b6d6dSopenharmony_ci        </tar>
11722e5b6d6dSopenharmony_ci
11732e5b6d6dSopenharmony_ci        <mkdir dir="${release.dir}"/>
11742e5b6d6dSopenharmony_ci        <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/>
11752e5b6d6dSopenharmony_ci
11762e5b6d6dSopenharmony_ci        <delete dir="${src.release.wrk.dir}"/>
11772e5b6d6dSopenharmony_ci        <delete file="${icu4jsrc.tar}"/>
11782e5b6d6dSopenharmony_ci    </target>
11792e5b6d6dSopenharmony_ci
11802e5b6d6dSopenharmony_ci    <!-- findbugs targets -->
11812e5b6d6dSopenharmony_ci
11822e5b6d6dSopenharmony_ci    <target name="findbugs" description="Run FindBugs on all library sub projects.">
11832e5b6d6dSopenharmony_ci        <property name="findbugs.out.dir" value="${out.dir}/findbugs"/>
11842e5b6d6dSopenharmony_ci        <mkdir dir="${findbugs.out.dir}"/>
11852e5b6d6dSopenharmony_ci
11862e5b6d6dSopenharmony_ci        <ant dir="${icu4j.core.dir}" inheritAll="false" target="findbugs"/>
11872e5b6d6dSopenharmony_ci        <copy file="${icu4j.core.dir}/${out.dir}/fb-core.html" todir="${findbugs.out.dir}"/>
11882e5b6d6dSopenharmony_ci
11892e5b6d6dSopenharmony_ci        <ant dir="${icu4j.collate.dir}" inheritAll="false" target="findbugs"/>
11902e5b6d6dSopenharmony_ci        <copy file="${icu4j.collate.dir}/${out.dir}/fb-collate.html" todir="${findbugs.out.dir}"/>
11912e5b6d6dSopenharmony_ci
11922e5b6d6dSopenharmony_ci        <ant dir="${icu4j.currdata.dir}" inheritAll="false" target="findbugs"/>
11932e5b6d6dSopenharmony_ci        <copy file="${icu4j.currdata.dir}/${out.dir}/fb-currdata.html" todir="${findbugs.out.dir}"/>
11942e5b6d6dSopenharmony_ci
11952e5b6d6dSopenharmony_ci        <ant dir="${icu4j.langdata.dir}" inheritAll="false" target="findbugs"/>
11962e5b6d6dSopenharmony_ci        <copy file="${icu4j.langdata.dir}/${out.dir}/fb-langdata.html" todir="${findbugs.out.dir}"/>
11972e5b6d6dSopenharmony_ci
11982e5b6d6dSopenharmony_ci        <ant dir="${icu4j.regiondata.dir}" inheritAll="false" target="findbugs"/>
11992e5b6d6dSopenharmony_ci        <copy file="${icu4j.regiondata.dir}/${out.dir}/fb-regiondata.html" todir="${findbugs.out.dir}"/>
12002e5b6d6dSopenharmony_ci
12012e5b6d6dSopenharmony_ci        <ant dir="${icu4j.translit.dir}" inheritAll="false" target="findbugs"/>
12022e5b6d6dSopenharmony_ci        <copy file="${icu4j.translit.dir}/${out.dir}/fb-translit.html" todir="${findbugs.out.dir}"/>
12032e5b6d6dSopenharmony_ci
12042e5b6d6dSopenharmony_ci
12052e5b6d6dSopenharmony_ci        <ant dir="${icu4j.charset.dir}" inheritAll="false" target="findbugs"/>
12062e5b6d6dSopenharmony_ci        <copy file="${icu4j.charset.dir}/${out.dir}/fb-charset.html" todir="${findbugs.out.dir}"/>
12072e5b6d6dSopenharmony_ci
12082e5b6d6dSopenharmony_ci        <ant dir="${icu4j.localespi.dir}" inheritAll="false" target="findbugs"/>
12092e5b6d6dSopenharmony_ci        <copy file="${icu4j.localespi.dir}/${out.dir}/fb-localespi.html" todir="${findbugs.out.dir}"/>
12102e5b6d6dSopenharmony_ci    </target>
12112e5b6d6dSopenharmony_ci
12122e5b6d6dSopenharmony_ci    <!-- compile targets -->
12132e5b6d6dSopenharmony_ci    <target name="core" description="Build core classes">
12142e5b6d6dSopenharmony_ci        <ant dir="${icu4j.core.dir}" inheritAll="false"/>
12152e5b6d6dSopenharmony_ci    </target>
12162e5b6d6dSopenharmony_ci
12172e5b6d6dSopenharmony_ci    <target name="collate" depends="core" description="Build collation classes">
12182e5b6d6dSopenharmony_ci        <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
12192e5b6d6dSopenharmony_ci    </target>
12202e5b6d6dSopenharmony_ci
12212e5b6d6dSopenharmony_ci    <target name="charset" depends="core" description="Build charset classes">
12222e5b6d6dSopenharmony_ci        <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
12232e5b6d6dSopenharmony_ci    </target>
12242e5b6d6dSopenharmony_ci
12252e5b6d6dSopenharmony_ci    <target name="currdata" depends="core" description="Build currency data classes">
12262e5b6d6dSopenharmony_ci        <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
12272e5b6d6dSopenharmony_ci    </target>
12282e5b6d6dSopenharmony_ci
12292e5b6d6dSopenharmony_ci    <target name="langdata" depends="core" description="Build language data classes">
12302e5b6d6dSopenharmony_ci        <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
12312e5b6d6dSopenharmony_ci    </target>
12322e5b6d6dSopenharmony_ci
12332e5b6d6dSopenharmony_ci    <target name="localespi" depends="core, collate, currdata, langdata, regiondata" description="Build Locale SPI classes">
12342e5b6d6dSopenharmony_ci        <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
12352e5b6d6dSopenharmony_ci    </target>
12362e5b6d6dSopenharmony_ci
12372e5b6d6dSopenharmony_ci    <target name="regiondata" depends="core" description="Build region data classes">
12382e5b6d6dSopenharmony_ci        <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
12392e5b6d6dSopenharmony_ci    </target>
12402e5b6d6dSopenharmony_ci
12412e5b6d6dSopenharmony_ci    <target name="translit" depends="core" description="Build translit classes">
12422e5b6d6dSopenharmony_ci        <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
12432e5b6d6dSopenharmony_ci    </target>
12442e5b6d6dSopenharmony_ci
12452e5b6d6dSopenharmony_ci    <target name="test-framework" depends="core, init" description="Build test framework classes">
12462e5b6d6dSopenharmony_ci        <ant dir="${icu4j.test-framework.dir}" inheritAll="false">
12472e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12482e5b6d6dSopenharmony_ci        </ant>
12492e5b6d6dSopenharmony_ci    </target>
12502e5b6d6dSopenharmony_ci
12512e5b6d6dSopenharmony_ci    <target name="core-tests" depends="core, test-framework, tools" description="Build core tests">
12522e5b6d6dSopenharmony_ci        <ant dir="${icu4j.core-tests.dir}" inheritAll="false">
12532e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12542e5b6d6dSopenharmony_ci        </ant>
12552e5b6d6dSopenharmony_ci    </target>
12562e5b6d6dSopenharmony_ci
12572e5b6d6dSopenharmony_ci    <target name="collate-tests" depends="collate, test-framework" description="Build core tests">
12582e5b6d6dSopenharmony_ci        <ant dir="${icu4j.collate-tests.dir}" inheritAll="false">
12592e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12602e5b6d6dSopenharmony_ci        </ant>
12612e5b6d6dSopenharmony_ci    </target>
12622e5b6d6dSopenharmony_ci
12632e5b6d6dSopenharmony_ci    <target name="charset-tests" depends="charset, test-framework" description="Build charset tests">
12642e5b6d6dSopenharmony_ci        <ant dir="${icu4j.charset-tests.dir}" inheritAll="false">
12652e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12662e5b6d6dSopenharmony_ci        </ant>
12672e5b6d6dSopenharmony_ci    </target>
12682e5b6d6dSopenharmony_ci
12692e5b6d6dSopenharmony_ci    <target name="localespi-tests" depends="localespi, test-framework" description="Build Locale SPI tests">
12702e5b6d6dSopenharmony_ci        <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false">
12712e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12722e5b6d6dSopenharmony_ci        </ant>
12732e5b6d6dSopenharmony_ci    </target>
12742e5b6d6dSopenharmony_ci
12752e5b6d6dSopenharmony_ci    <target name="packaging-tests" depends="test-framework" description="Build packaging tests">
12762e5b6d6dSopenharmony_ci        <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false">
12772e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12782e5b6d6dSopenharmony_ci        </ant>
12792e5b6d6dSopenharmony_ci    </target>
12802e5b6d6dSopenharmony_ci
12812e5b6d6dSopenharmony_ci    <target name="translit-tests" depends="translit, test-framework" description="Build translit tests">
12822e5b6d6dSopenharmony_ci        <ant dir="${icu4j.translit-tests.dir}" inheritAll="false">
12832e5b6d6dSopenharmony_ci            <reference refid="junit.jars"/>
12842e5b6d6dSopenharmony_ci        </ant>
12852e5b6d6dSopenharmony_ci    </target>
12862e5b6d6dSopenharmony_ci
12872e5b6d6dSopenharmony_ci    <target name="demos" depends="core, charset, translit" description="Build demo classes">
12882e5b6d6dSopenharmony_ci        <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
12892e5b6d6dSopenharmony_ci    </target>
12902e5b6d6dSopenharmony_ci
12912e5b6d6dSopenharmony_ci    <target name="samples" depends="core, charset, collate, translit" description="Build sample classes">
12922e5b6d6dSopenharmony_ci        <ant dir="${icu4j.samples.dir}" inheritAll="false"/>
12932e5b6d6dSopenharmony_ci    </target>
12942e5b6d6dSopenharmony_ci
12952e5b6d6dSopenharmony_ci    <target name="_checkBuildToolsSupported" unless="is.java8">
12962e5b6d6dSopenharmony_ci        <fail>JDK8 is required to build build-tools.</fail>
12972e5b6d6dSopenharmony_ci    </target>
12982e5b6d6dSopenharmony_ci
12992e5b6d6dSopenharmony_ci    <target name="build-tools" depends="_checkBuildToolsSupported" description="Build build-tool classes">
13002e5b6d6dSopenharmony_ci        <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
13012e5b6d6dSopenharmony_ci    </target>
13022e5b6d6dSopenharmony_ci
13032e5b6d6dSopenharmony_ci    <target name="tools" depends="core, collate, translit" description="Build tool classes">
13042e5b6d6dSopenharmony_ci        <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
13052e5b6d6dSopenharmony_ci    </target>
13062e5b6d6dSopenharmony_ci
13072e5b6d6dSopenharmony_ci    <target name="perf-tests" depends="core, charset, collate, tools" description="Build performance test classes">
13082e5b6d6dSopenharmony_ci        <ant dir="${icu4j.perf-tests.dir}" inheritAll="false"/>
13092e5b6d6dSopenharmony_ci    </target>
13102e5b6d6dSopenharmony_ci
13112e5b6d6dSopenharmony_ci    <!-- doc targets -->
13122e5b6d6dSopenharmony_ci    <target name="docs" depends="info, build-tools, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/>
13132e5b6d6dSopenharmony_ci
13142e5b6d6dSopenharmony_ci    <target name="docsStrict" description="Build API documents with all doclint check enabled">
13152e5b6d6dSopenharmony_ci        <condition property="doclint.option" value="-Xdoclint:all">
13162e5b6d6dSopenharmony_ci            <isset property="is.java8.plus"/>
13172e5b6d6dSopenharmony_ci        </condition>
13182e5b6d6dSopenharmony_ci        <antcall target="docs"/>
13192e5b6d6dSopenharmony_ci    </target>
13202e5b6d6dSopenharmony_ci
13212e5b6d6dSopenharmony_ci    <target name="_checkJCite" if="env.JCITE_DIR">
13222e5b6d6dSopenharmony_ci        <fileset dir="${env.JCITE_DIR}" id="jcite.files">
13232e5b6d6dSopenharmony_ci            <include name="build/*.jar"/>
13242e5b6d6dSopenharmony_ci            <include name="lib/*.jar"/>
13252e5b6d6dSopenharmony_ci        </fileset>
13262e5b6d6dSopenharmony_ci        <pathconvert property="jcite.libs" refid="jcite.files"/>
13272e5b6d6dSopenharmony_ci
13282e5b6d6dSopenharmony_ci        <dirset dir="${basedir}" id="jcite.src.dirs">
13292e5b6d6dSopenharmony_ci            <include name="samples/src"/>
13302e5b6d6dSopenharmony_ci            <include name="demos/src"/>
13312e5b6d6dSopenharmony_ci            <include name="main/tests/*/src"/>
13322e5b6d6dSopenharmony_ci        </dirset>
13332e5b6d6dSopenharmony_ci        <pathconvert property="jcite.addl.src" refid="jcite.src.dirs"/>
13342e5b6d6dSopenharmony_ci    </target>
13352e5b6d6dSopenharmony_ci
13362e5b6d6dSopenharmony_ci    <target name="_docsOptions">
13372e5b6d6dSopenharmony_ci        <property name="docs.style.sheet" value="stylesheet8.css"/>
13382e5b6d6dSopenharmony_ci        <property name="doclint.option" value="-Xdoclint:reference,html"/>
13392e5b6d6dSopenharmony_ci    </target>
13402e5b6d6dSopenharmony_ci
13412e5b6d6dSopenharmony_ci    <target name="_docsWithJCite" depends="_checkJCite, _docsOptions" if="jcite.libs">
13422e5b6d6dSopenharmony_ci        <echo message="Javadoc lint option:            ${doclint.option}"/>
13432e5b6d6dSopenharmony_ci        <echo message="JCite library path:             ${jcite.libs}"/>
13442e5b6d6dSopenharmony_ci        <echo message="JCite additional source path:   ${jcite.addl.src}"/>
13452e5b6d6dSopenharmony_ci        <echo message="Custom stylesheet:              ${docs.style.sheet}"/>
13462e5b6d6dSopenharmony_ci        <javadoc
13472e5b6d6dSopenharmony_ci                destdir="${doc.dir}"
13482e5b6d6dSopenharmony_ci                nodeprecatedlist="true"
13492e5b6d6dSopenharmony_ci                windowtitle="${icu4j.api.doc.window.title}"
13502e5b6d6dSopenharmony_ci                doctitle="${icu4j.api.doc.title}"
13512e5b6d6dSopenharmony_ci                header="${icu4j.api.doc.header}"
13522e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
13532e5b6d6dSopenharmony_ci                docencoding="UTF-8"
13542e5b6d6dSopenharmony_ci                charset="UTF-8"
13552e5b6d6dSopenharmony_ci                bottom="${icu4j.api.doc.copyright.footer}"
13562e5b6d6dSopenharmony_ci                additionalparam="${doclint.option} -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"
13572e5b6d6dSopenharmony_ci                link="${icu4j.api.doc.jdk.link}"
13582e5b6d6dSopenharmony_ci                source="${javac.source}"
13592e5b6d6dSopenharmony_ci                stylesheetfile="${docs.style.sheet}"
13602e5b6d6dSopenharmony_ci                failonerror="true">
13612e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.core.dir}/src">
13622e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/lang/**"/>
13632e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/math/**"/>
13642e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/message2/**"/>
13652e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/number/**"/>
13662e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
13672e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
13682e5b6d6dSopenharmony_ci            </packageset>
13692e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.collate.dir}/src">
13702e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
13712e5b6d6dSopenharmony_ci            </packageset>
13722e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.translit.dir}/src">
13732e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
13742e5b6d6dSopenharmony_ci            </packageset>
13752e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.charset.dir}/src">
13762e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/charset/**"/>
13772e5b6d6dSopenharmony_ci            </packageset>
13782e5b6d6dSopenharmony_ci        </javadoc>
13792e5b6d6dSopenharmony_ci    </target>
13802e5b6d6dSopenharmony_ci
13812e5b6d6dSopenharmony_ci    <target name="_docsWithoutJCite" depends="_checkJCite, _docsOptions" unless="jcite.libs">
13822e5b6d6dSopenharmony_ci        <echo message="Javadoc lint option:            ${doclint.option}"/>
13832e5b6d6dSopenharmony_ci        <javadoc
13842e5b6d6dSopenharmony_ci                destdir="${doc.dir}"
13852e5b6d6dSopenharmony_ci                nodeprecatedlist="true"
13862e5b6d6dSopenharmony_ci                windowtitle="${icu4j.api.doc.window.title}"
13872e5b6d6dSopenharmony_ci                doctitle="${icu4j.api.doc.title}"
13882e5b6d6dSopenharmony_ci                header="${icu4j.api.doc.header}"
13892e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
13902e5b6d6dSopenharmony_ci                docencoding="UTF-8"
13912e5b6d6dSopenharmony_ci                charset="UTF-8"
13922e5b6d6dSopenharmony_ci                bottom="${icu4j.api.doc.copyright.footer}"
13932e5b6d6dSopenharmony_ci                additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet"
13942e5b6d6dSopenharmony_ci                link="${icu4j.api.doc.jdk.link}"
13952e5b6d6dSopenharmony_ci                source="${javac.source}"
13962e5b6d6dSopenharmony_ci                failonerror="true">
13972e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.core.dir}/src">
13982e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/lang/**"/>
13992e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/math/**"/>
14002e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/message2/**"/>
14012e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/number/**"/>
14022e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
14032e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
14042e5b6d6dSopenharmony_ci            </packageset>
14052e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.collate.dir}/src">
14062e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
14072e5b6d6dSopenharmony_ci            </packageset>
14082e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.translit.dir}/src">
14092e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
14102e5b6d6dSopenharmony_ci            </packageset>
14112e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.charset.dir}/src">
14122e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/charset/**"/>
14132e5b6d6dSopenharmony_ci            </packageset>
14142e5b6d6dSopenharmony_ci        </javadoc>
14152e5b6d6dSopenharmony_ci    </target>
14162e5b6d6dSopenharmony_ci
14172e5b6d6dSopenharmony_ci    <!-- Component document targets, only used for Maven repository releases -->
14182e5b6d6dSopenharmony_ci    <target name="docsMaven" depends="info, build-tools, _checkJCite, _mavenIcu4jDoc, _mavenCharsetDoc, _mavenLocalespiDoc"
14192e5b6d6dSopenharmony_ci        description="Build API docs for each ICU4J maven artifact"/>
14202e5b6d6dSopenharmony_ci
14212e5b6d6dSopenharmony_ci    <target name="_mavenIcu4jDoc" depends="_docsOptions">
14222e5b6d6dSopenharmony_ci        <fail message="JCite must be configured." unless="jcite.libs"/>
14232e5b6d6dSopenharmony_ci        <delete dir="${maven.doc.base.dir}/icu4j"/>
14242e5b6d6dSopenharmony_ci
14252e5b6d6dSopenharmony_ci        <echo message="Javadoc lint option:            ${doclint.option}"/>
14262e5b6d6dSopenharmony_ci        <echo message="JCite library path:             ${jcite.libs}"/>
14272e5b6d6dSopenharmony_ci        <echo message="JCite additional source path:   ${jcite.addl.src}"/>
14282e5b6d6dSopenharmony_ci        <echo message="Custom stylesheet:              ${docs.style.sheet}"/>
14292e5b6d6dSopenharmony_ci        <javadoc
14302e5b6d6dSopenharmony_ci                destdir="${maven.doc.base.dir}/icu4j"
14312e5b6d6dSopenharmony_ci                nodeprecatedlist="true"
14322e5b6d6dSopenharmony_ci                windowtitle="${icu4j.main.api.doc.window.title}"
14332e5b6d6dSopenharmony_ci                doctitle="${icu4j.main.api.doc.title}"
14342e5b6d6dSopenharmony_ci                header="${icu4j.main.api.doc.header}"
14352e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
14362e5b6d6dSopenharmony_ci                docencoding="UTF-8"
14372e5b6d6dSopenharmony_ci                charset="UTF-8"
14382e5b6d6dSopenharmony_ci                bottom="${icu4j.api.doc.copyright.footer}"
14392e5b6d6dSopenharmony_ci                additionalparam="${doclint.option} -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"
14402e5b6d6dSopenharmony_ci                link="${icu4j.api.doc.jdk.link}"
14412e5b6d6dSopenharmony_ci                source="${javac.source}"
14422e5b6d6dSopenharmony_ci                stylesheetfile="${docs.style.sheet}"
14432e5b6d6dSopenharmony_ci                failonerror="true">
14442e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.core.dir}/src">
14452e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/lang/**"/>
14462e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/math/**"/>
14472e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/message2/**"/>
14482e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/number/**"/>
14492e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
14502e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
14512e5b6d6dSopenharmony_ci            </packageset>
14522e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.collate.dir}/src">
14532e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
14542e5b6d6dSopenharmony_ci            </packageset>
14552e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.translit.dir}/src">
14562e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
14572e5b6d6dSopenharmony_ci            </packageset>
14582e5b6d6dSopenharmony_ci        </javadoc>
14592e5b6d6dSopenharmony_ci    </target>
14602e5b6d6dSopenharmony_ci
14612e5b6d6dSopenharmony_ci    <target name="_mavenCharsetDoc" depends="_docsOptions, icu4jJar">
14622e5b6d6dSopenharmony_ci        <fail message="JCite must be configured." unless="jcite.libs"/>
14632e5b6d6dSopenharmony_ci        <delete dir="${maven.doc.base.dir}/charset"/>
14642e5b6d6dSopenharmony_ci
14652e5b6d6dSopenharmony_ci        <echo message="Javadoc lint option:            ${doclint.option}"/>
14662e5b6d6dSopenharmony_ci        <echo message="JCite library path:             ${jcite.libs}"/>
14672e5b6d6dSopenharmony_ci        <echo message="JCite additional source path:   ${jcite.addl.src}"/>
14682e5b6d6dSopenharmony_ci        <echo message="Custom stylesheet:              ${docs.style.sheet}"/>
14692e5b6d6dSopenharmony_ci        <javadoc
14702e5b6d6dSopenharmony_ci                destdir="${maven.doc.base.dir}/charset"
14712e5b6d6dSopenharmony_ci                nodeprecatedlist="true"
14722e5b6d6dSopenharmony_ci                windowtitle="${icu4j.charset.api.doc.window.title}"
14732e5b6d6dSopenharmony_ci                doctitle="${icu4j.charset.api.doc.title}"
14742e5b6d6dSopenharmony_ci                header="${icu4j.charset.api.doc.header}"
14752e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
14762e5b6d6dSopenharmony_ci                docencoding="UTF-8"
14772e5b6d6dSopenharmony_ci                charset="UTF-8"
14782e5b6d6dSopenharmony_ci                bottom="${icu4j.api.doc.copyright.footer}"
14792e5b6d6dSopenharmony_ci                additionalparam="${doclint.option} -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"
14802e5b6d6dSopenharmony_ci                link="${icu4j.api.doc.jdk.link}"
14812e5b6d6dSopenharmony_ci                source="${javac.source}"
14822e5b6d6dSopenharmony_ci                stylesheetfile="${docs.style.sheet}"
14832e5b6d6dSopenharmony_ci                failonerror="true"
14842e5b6d6dSopenharmony_ci                classpath="${icu4j.jar.file}">
14852e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.charset.dir}/src">
14862e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/charset/**"/>
14872e5b6d6dSopenharmony_ci            </packageset>
14882e5b6d6dSopenharmony_ci        </javadoc>
14892e5b6d6dSopenharmony_ci    </target>
14902e5b6d6dSopenharmony_ci
14912e5b6d6dSopenharmony_ci    <target name="_mavenLocalespiDoc" depends="_docsOptions">
14922e5b6d6dSopenharmony_ci        <delete dir="${maven.doc.base.dir}/localespi"/>
14932e5b6d6dSopenharmony_ci
14942e5b6d6dSopenharmony_ci        <echo message="Javadoc lint option:            ${doclint.option}"/>
14952e5b6d6dSopenharmony_ci        <echo message="Custom stylesheet:              ${docs.style.sheet}"/>
14962e5b6d6dSopenharmony_ci        <javadoc
14972e5b6d6dSopenharmony_ci                destdir="${maven.doc.base.dir}/localespi"
14982e5b6d6dSopenharmony_ci                nodeprecatedlist="true"
14992e5b6d6dSopenharmony_ci                windowtitle="${icu4j.localespi.api.doc.window.title}"
15002e5b6d6dSopenharmony_ci                doctitle="${icu4j.localespi.api.doc.title}"
15012e5b6d6dSopenharmony_ci                header="${icu4j.localespi.api.doc.header}"
15022e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
15032e5b6d6dSopenharmony_ci                docencoding="UTF-8"
15042e5b6d6dSopenharmony_ci                charset="UTF-8"
15052e5b6d6dSopenharmony_ci                bottom="${icu4j.api.doc.copyright.footer}"
15062e5b6d6dSopenharmony_ci                additionalparam="${doclint.option} -breakiterator -use"
15072e5b6d6dSopenharmony_ci                link="${icu4j.api.doc.jdk.link}"
15082e5b6d6dSopenharmony_ci                source="${javac.source}"
15092e5b6d6dSopenharmony_ci                failonerror="true"
15102e5b6d6dSopenharmony_ci                classpath="${icu4j.jar.file}">
15112e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.localespi.dir}/src">
15122e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/impl/javaspi"/>
15132e5b6d6dSopenharmony_ci            </packageset>
15142e5b6d6dSopenharmony_ci        </javadoc>
15152e5b6d6dSopenharmony_ci
15162e5b6d6dSopenharmony_ci    </target>
15172e5b6d6dSopenharmony_ci
15182e5b6d6dSopenharmony_ci
15192e5b6d6dSopenharmony_ci    <!-- JaCoCo code coverage target -->
15202e5b6d6dSopenharmony_ci    <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" onerror="ignore">
15212e5b6d6dSopenharmony_ci        <classpath path="${env.JACOCO_DIR}/lib/jacocoant.jar"/>
15222e5b6d6dSopenharmony_ci    </taskdef>
15232e5b6d6dSopenharmony_ci
15242e5b6d6dSopenharmony_ci    <target name="coverageJaCoCo" depends="build-tools, jar, tests" description="Run the ICU4J unit tests and generate code coverage report">
15252e5b6d6dSopenharmony_ci        <property name="jacoco.out.dir" value="${out.dir}/jacoco"/>
15262e5b6d6dSopenharmony_ci        <property name="jacoco.exec.data.file" value="${jacoco.out.dir}/jacoco.exec"/>
15272e5b6d6dSopenharmony_ci        <property name="jacoco.report.html.zip" value="${jacoco.out.dir}/report_html.zip"/>
15282e5b6d6dSopenharmony_ci        <property name="jacoco.report.xml" value="${jacoco.out.dir}/report.xml"/>
15292e5b6d6dSopenharmony_ci        <property name="jacoco.report.csv" value="${jacoco.out.dir}/report.csv"/>
15302e5b6d6dSopenharmony_ci        <property name="jacoco.exclusion.txt" value="coverage-exclusion.txt"/>
15312e5b6d6dSopenharmony_ci
15322e5b6d6dSopenharmony_ci        <delete dir="${jacoco.out.dir}"/>
15332e5b6d6dSopenharmony_ci        <mkdir dir="${jacoco.out.dir}"/>
15342e5b6d6dSopenharmony_ci
15352e5b6d6dSopenharmony_ci        <!-- core -->
15362e5b6d6dSopenharmony_ci        <jacoco:coverage destfile="${jacoco.exec.data.file}">
15372e5b6d6dSopenharmony_ci            <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no">
15382e5b6d6dSopenharmony_ci                <jvmarg value="-ea"/>
15392e5b6d6dSopenharmony_ci                <jvmarg value="-Djava.awt.headless=true"/>
15402e5b6d6dSopenharmony_ci                <classpath>
15412e5b6d6dSopenharmony_ci                    <path refid="junit.jars"/>
15422e5b6d6dSopenharmony_ci                    <path refid="junit.icu.jars"/>
15432e5b6d6dSopenharmony_ci                </classpath>
15442e5b6d6dSopenharmony_ci
15452e5b6d6dSopenharmony_ci                <batchtest todir="${junit.out.dir}/core">
15462e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.core-tests.dir}/${bin.dir}">
15472e5b6d6dSopenharmony_ci                        <patternset refid="test-classes-patternset"/>
15482e5b6d6dSopenharmony_ci                    </fileset>
15492e5b6d6dSopenharmony_ci                </batchtest>
15502e5b6d6dSopenharmony_ci            </junit>
15512e5b6d6dSopenharmony_ci        </jacoco:coverage>
15522e5b6d6dSopenharmony_ci
15532e5b6d6dSopenharmony_ci        <!-- charset -->
15542e5b6d6dSopenharmony_ci        <jacoco:coverage destfile="${jacoco.exec.data.file}">
15552e5b6d6dSopenharmony_ci            <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no">
15562e5b6d6dSopenharmony_ci                <jvmarg value="-ea"/>
15572e5b6d6dSopenharmony_ci                <jvmarg value="-Djava.awt.headless=true"/>
15582e5b6d6dSopenharmony_ci                <classpath>
15592e5b6d6dSopenharmony_ci                    <path refid="junit.jars"/>
15602e5b6d6dSopenharmony_ci                    <path refid="junit.icu.jars"/>
15612e5b6d6dSopenharmony_ci                </classpath>
15622e5b6d6dSopenharmony_ci
15632e5b6d6dSopenharmony_ci                <batchtest todir="${junit.out.dir}/charset">
15642e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}">
15652e5b6d6dSopenharmony_ci                        <patternset refid="test-classes-patternset"/>
15662e5b6d6dSopenharmony_ci                    </fileset>
15672e5b6d6dSopenharmony_ci                </batchtest>
15682e5b6d6dSopenharmony_ci            </junit>
15692e5b6d6dSopenharmony_ci        </jacoco:coverage>
15702e5b6d6dSopenharmony_ci
15712e5b6d6dSopenharmony_ci        <!-- collate -->
15722e5b6d6dSopenharmony_ci        <jacoco:coverage destfile="${jacoco.exec.data.file}">
15732e5b6d6dSopenharmony_ci            <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no">
15742e5b6d6dSopenharmony_ci                <jvmarg value="-ea"/>
15752e5b6d6dSopenharmony_ci                <jvmarg value="-Djava.awt.headless=true"/>
15762e5b6d6dSopenharmony_ci                <classpath>
15772e5b6d6dSopenharmony_ci                    <path refid="junit.jars"/>
15782e5b6d6dSopenharmony_ci                    <path refid="junit.icu.jars"/>
15792e5b6d6dSopenharmony_ci                </classpath>
15802e5b6d6dSopenharmony_ci
15812e5b6d6dSopenharmony_ci                <batchtest todir="${junit.out.dir}/collate">
15822e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}">
15832e5b6d6dSopenharmony_ci                        <patternset refid="test-classes-patternset"/>
15842e5b6d6dSopenharmony_ci                    </fileset>
15852e5b6d6dSopenharmony_ci                </batchtest>
15862e5b6d6dSopenharmony_ci            </junit>
15872e5b6d6dSopenharmony_ci        </jacoco:coverage>
15882e5b6d6dSopenharmony_ci
15892e5b6d6dSopenharmony_ci        <!-- translit -->
15902e5b6d6dSopenharmony_ci        <jacoco:coverage destfile="${jacoco.exec.data.file}">
15912e5b6d6dSopenharmony_ci            <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no">
15922e5b6d6dSopenharmony_ci                <jvmarg value="-ea"/>
15932e5b6d6dSopenharmony_ci                <jvmarg value="-Djava.awt.headless=true"/>
15942e5b6d6dSopenharmony_ci                <classpath>
15952e5b6d6dSopenharmony_ci                    <path refid="junit.jars"/>
15962e5b6d6dSopenharmony_ci                    <path refid="junit.icu.jars"/>
15972e5b6d6dSopenharmony_ci                </classpath>
15982e5b6d6dSopenharmony_ci
15992e5b6d6dSopenharmony_ci                <batchtest todir="${junit.out.dir}/translit">
16002e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}">
16012e5b6d6dSopenharmony_ci                        <patternset refid="test-classes-patternset"/>
16022e5b6d6dSopenharmony_ci                    </fileset>
16032e5b6d6dSopenharmony_ci                </batchtest>
16042e5b6d6dSopenharmony_ci            </junit>
16052e5b6d6dSopenharmony_ci        </jacoco:coverage>
16062e5b6d6dSopenharmony_ci
16072e5b6d6dSopenharmony_ci        <jacoco:report>
16082e5b6d6dSopenharmony_ci            <executiondata>
16092e5b6d6dSopenharmony_ci                <file file="${jacoco.exec.data.file}"/>
16102e5b6d6dSopenharmony_ci            </executiondata>
16112e5b6d6dSopenharmony_ci
16122e5b6d6dSopenharmony_ci            <structure name="ICU4J Project">
16132e5b6d6dSopenharmony_ci                <classfiles>
16142e5b6d6dSopenharmony_ci                    <fileset dir=".">
16152e5b6d6dSopenharmony_ci                        <include name="${icu4j.jar.file}"/>
16162e5b6d6dSopenharmony_ci                        <include name="${icu4j-charset.jar.file}"/>
16172e5b6d6dSopenharmony_ci                    </fileset>
16182e5b6d6dSopenharmony_ci                </classfiles>
16192e5b6d6dSopenharmony_ci                <sourcefiles encoding="UTF-8">
16202e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.core.dir}/src"/>
16212e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.collate.dir}/src"/>
16222e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.currdata.dir}/src"/>
16232e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.langdata.dir}/src"/>
16242e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.regiondata.dir}/src"/>
16252e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.translit.dir}/src"/>
16262e5b6d6dSopenharmony_ci
16272e5b6d6dSopenharmony_ci                    <fileset dir="${icu4j.charset.dir}/src"/>
16282e5b6d6dSopenharmony_ci                </sourcefiles>
16292e5b6d6dSopenharmony_ci            </structure>
16302e5b6d6dSopenharmony_ci
16312e5b6d6dSopenharmony_ci            <html destfile="${jacoco.report.html.zip}"/>
16322e5b6d6dSopenharmony_ci            <xml destfile="${jacoco.report.xml}"/>
16332e5b6d6dSopenharmony_ci            <csv destfile="${jacoco.report.csv}"/>
16342e5b6d6dSopenharmony_ci        </jacoco:report>
16352e5b6d6dSopenharmony_ci
16362e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.tool.coverage.JacocoReportCheck" failonerror="true">
16372e5b6d6dSopenharmony_ci            <arg line="${jacoco.report.xml}  ${jacoco.exclusion.txt}"/>
16382e5b6d6dSopenharmony_ci            <classpath>
16392e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.build-tools.jar}"/>
16402e5b6d6dSopenharmony_ci            </classpath>
16412e5b6d6dSopenharmony_ci        </java>
16422e5b6d6dSopenharmony_ci
16432e5b6d6dSopenharmony_ci    </target>
16442e5b6d6dSopenharmony_ci
16452e5b6d6dSopenharmony_ci    <!-- Release management targets -->
16462e5b6d6dSopenharmony_ci    <target name="checktags" depends="info, build-tools" description="Check API tags before release - This is currently not working as designed">
16472e5b6d6dSopenharmony_ci        <javadoc source="${javac.source}"
16482e5b6d6dSopenharmony_ci                 encoding="${java.src.encoding}">
16492e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.core.dir}/src">
16502e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/lang/**"/>
16512e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/math/**"/>
16522e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/message2/**"/>
16532e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/number/**"/>
16542e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
16552e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
16562e5b6d6dSopenharmony_ci            </packageset>
16572e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.collate.dir}/src">
16582e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
16592e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
16602e5b6d6dSopenharmony_ci            </packageset>
16612e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.charset.dir}/src">
16622e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/charset/**"/>
16632e5b6d6dSopenharmony_ci            </packageset>
16642e5b6d6dSopenharmony_ci            <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
16652e5b6d6dSopenharmony_ci        </javadoc>
16662e5b6d6dSopenharmony_ci    </target>
16672e5b6d6dSopenharmony_ci
16682e5b6d6dSopenharmony_ci    <target name="gatherapi" depends="info, build-tools" description="Run API database generator tool">
16692e5b6d6dSopenharmony_ci        <mkdir dir="${out.dir}"/>
16702e5b6d6dSopenharmony_ci        <javadoc source="${javac.source}"
16712e5b6d6dSopenharmony_ci                 encoding="${java.src.encoding}">
16722e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.core.dir}/src">
16732e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/lang/**"/>
16742e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/math/**"/>
16752e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/message2/**"/>
16762e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/number/**"/>
16772e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
16782e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
16792e5b6d6dSopenharmony_ci            </packageset>
16802e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.collate.dir}/src">
16812e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
16822e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/util/**"/>
16832e5b6d6dSopenharmony_ci            </packageset>
16842e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.charset.dir}/src">
16852e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/charset/**"/>
16862e5b6d6dSopenharmony_ci            </packageset>
16872e5b6d6dSopenharmony_ci            <packageset dir="${icu4j.translit.dir}/src">
16882e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/text/**"/>
16892e5b6d6dSopenharmony_ci            </packageset>
16902e5b6d6dSopenharmony_ci            <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${icu4j.build-tools.jar}">
16912e5b6d6dSopenharmony_ci                <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
16922e5b6d6dSopenharmony_ci                <param name="-output" value="${out.dir}/icu4j${api.report.version}.api3"/>
16932e5b6d6dSopenharmony_ci                <param name="-internal"/>
16942e5b6d6dSopenharmony_ci                <param name="-version"/>
16952e5b6d6dSopenharmony_ci                <param name="-gzip"/>
16962e5b6d6dSopenharmony_ci            </doclet>
16972e5b6d6dSopenharmony_ci        </javadoc>
16982e5b6d6dSopenharmony_ci    </target>
16992e5b6d6dSopenharmony_ci
17002e5b6d6dSopenharmony_ci    <target name="apireport" depends="info, gatherapi" description="Run API report generator tool">
17012e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
17022e5b6d6dSopenharmony_ci                classpath="${icu4j.build-tools.jar}"
17032e5b6d6dSopenharmony_ci                failonerror="true">
17042e5b6d6dSopenharmony_ci            <arg value="-old:" />
17052e5b6d6dSopenharmony_ci            <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api3.gz" />
17062e5b6d6dSopenharmony_ci            <arg value="-new:" />
17072e5b6d6dSopenharmony_ci            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
17082e5b6d6dSopenharmony_ci            <arg value="-html" />
17092e5b6d6dSopenharmony_ci            <arg value="-out:" />
17102e5b6d6dSopenharmony_ci            <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
17112e5b6d6dSopenharmony_ci        </java>
17122e5b6d6dSopenharmony_ci    </target>
17132e5b6d6dSopenharmony_ci
17142e5b6d6dSopenharmony_ci    <target name="checkDeprecated" depends="info, build-tools, gatherapi, main"
17152e5b6d6dSopenharmony_ci        description="Check consistency between javadoc @deprecated and @Deprecated annotation">
17162e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.tool.docs.DeprecatedAPIChecker"
17172e5b6d6dSopenharmony_ci                failonerror="true">
17182e5b6d6dSopenharmony_ci            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
17192e5b6d6dSopenharmony_ci            <classpath>
17202e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.build-tools.jar}"/>
17212e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.core.jar}"/>
17222e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.collate.jar}"/>
17232e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.charset.jar}"/>
17242e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.currdata.jar}"/>
17252e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.langdata.jar}"/>
17262e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.regiondata.jar}"/>
17272e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.translit.jar}"/>
17282e5b6d6dSopenharmony_ci            </classpath>
17292e5b6d6dSopenharmony_ci        </java>
17302e5b6d6dSopenharmony_ci    </target>
17312e5b6d6dSopenharmony_ci
17322e5b6d6dSopenharmony_ci    <target name="checkAPIStatusConsistency" depends="info, build-tools, gatherapi"
17332e5b6d6dSopenharmony_ci        description="Check consistency between API class status and methods overriding java.lang.Object">
17342e5b6d6dSopenharmony_ci        <!--
17352e5b6d6dSopenharmony_ci            If you need classes excluded from this check, define following property in build-local.properties.
17362e5b6d6dSopenharmony_ci            e.g. checkAPIStatusConsistency.skip.classes=com.ibm.icu.text.Normalizer;com.ibm.icu.util.ULocale
17372e5b6d6dSopenharmony_ci        -->
17382e5b6d6dSopenharmony_ci        <property name="checkAPIStatusConsistency.skip.classes" value=""/>
17392e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.tool.docs.APIStatusConsistencyChecker"
17402e5b6d6dSopenharmony_ci                failonerror="true">
17412e5b6d6dSopenharmony_ci            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
17422e5b6d6dSopenharmony_ci            <arg value="${checkAPIStatusConsistency.skip.classes}" />
17432e5b6d6dSopenharmony_ci            <classpath>
17442e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.build-tools.jar}"/>
17452e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.core.jar}"/>
17462e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.collate.jar}"/>
17472e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.charset.jar}"/>
17482e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.currdata.jar}"/>
17492e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.langdata.jar}"/>
17502e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.regiondata.jar}"/>
17512e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.translit.jar}"/>
17522e5b6d6dSopenharmony_ci            </classpath>
17532e5b6d6dSopenharmony_ci        </java>
17542e5b6d6dSopenharmony_ci    </target>
17552e5b6d6dSopenharmony_ci
17562e5b6d6dSopenharmony_ci    <target name="checkAPIStatus" depends="checkAPIStatusConsistency, checkDeprecated"/>
17572e5b6d6dSopenharmony_ci
17582e5b6d6dSopenharmony_ci    <target name="draftAPIs" depends="info, gatherapi" description="Run API collector tool and generate draft API report in html">
17592e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.tool.docs.CollectAPI"
17602e5b6d6dSopenharmony_ci                classpath="${icu4j.build-tools.jar}"
17612e5b6d6dSopenharmony_ci                failonerror="true">
17622e5b6d6dSopenharmony_ci            <arg value="-f"/>
17632e5b6d6dSopenharmony_ci            <arg value="Draft"/>
17642e5b6d6dSopenharmony_ci            <arg value="-o"/>
17652e5b6d6dSopenharmony_ci            <arg value="${out.dir}/draftAPIs.html"/>
17662e5b6d6dSopenharmony_ci            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
17672e5b6d6dSopenharmony_ci        </java>
17682e5b6d6dSopenharmony_ci    </target>
17692e5b6d6dSopenharmony_ci
17702e5b6d6dSopenharmony_ci    <target name="draftAPIsTSV" depends="info, gatherapi" description="Run API collector tool and generate draft API report in TSV">
17712e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.tool.docs.CollectAPI"
17722e5b6d6dSopenharmony_ci                classpath="${icu4j.build-tools.jar}"
17732e5b6d6dSopenharmony_ci                failonerror="true">
17742e5b6d6dSopenharmony_ci            <arg value="-f"/>
17752e5b6d6dSopenharmony_ci            <arg value="Draft"/>
17762e5b6d6dSopenharmony_ci            <arg value="-o"/>
17772e5b6d6dSopenharmony_ci            <arg value="${out.dir}/draftAPIs.tsv"/>
17782e5b6d6dSopenharmony_ci            <arg value="-t"/>
17792e5b6d6dSopenharmony_ci            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
17802e5b6d6dSopenharmony_ci        </java>
17812e5b6d6dSopenharmony_ci    </target>
17822e5b6d6dSopenharmony_ci
17832e5b6d6dSopenharmony_ci    <target name="serialTestData" depends="main, tests">
17842e5b6d6dSopenharmony_ci        <property name="serial.test.data.dir" value="${out.dir}/serialTestData"/>
17852e5b6d6dSopenharmony_ci        <delete dir="${serial.test.data.dir}"/>
17862e5b6d6dSopenharmony_ci        <mkdir dir="${serial.test.data.dir}"/>
17872e5b6d6dSopenharmony_ci        <java classname="com.ibm.icu.dev.test.serializable.SerializableWriter" fork="yes" failonerror="true">
17882e5b6d6dSopenharmony_ci            <arg line="${serial.test.data.dir}"/>
17892e5b6d6dSopenharmony_ci            <classpath>
17902e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.core.jar}"/>
17912e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.collate.jar}"/>
17922e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.charset.jar}"/>
17932e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.currdata.jar}"/>
17942e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.langdata.jar}"/>
17952e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.regiondata.jar}"/>
17962e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.translit.jar}"/>
17972e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.test-framework.jar}"/>
17982e5b6d6dSopenharmony_ci                <pathelement location="${icu4j.core-tests.jar}"/>
17992e5b6d6dSopenharmony_ci            </classpath>
18002e5b6d6dSopenharmony_ci        </java>
18012e5b6d6dSopenharmony_ci        <echo message="Note: The serialization compatibility test data files were"/>
18022e5b6d6dSopenharmony_ci        <echo message="created in ${serial.test.data.dir}. Once you confirm"/>
18032e5b6d6dSopenharmony_ci        <echo message="the test runs clean, you should copy the data file directory to"/>
18042e5b6d6dSopenharmony_ci        <echo message="main/tests/core/src/com/ibm/icu/dev/test/serializable/data."/>
18052e5b6d6dSopenharmony_ci    </target>
18062e5b6d6dSopenharmony_ci
18072e5b6d6dSopenharmony_ci    <!-- Special packaging targets -->
18082e5b6d6dSopenharmony_ci    <target name="translitIMEJar" depends="info" description="Build transliterator IME 'icutransime.jar' jar file">
18092e5b6d6dSopenharmony_ci        <property name="translit.ime.out.dir" value="${out.dir}/translit_ime"/>
18102e5b6d6dSopenharmony_ci
18112e5b6d6dSopenharmony_ci        <mkdir dir="${translit.ime.out.dir}/bin"/>
18122e5b6d6dSopenharmony_ci        <javac destdir="${translit.ime.out.dir}/bin"
18132e5b6d6dSopenharmony_ci                source="${javac.source}"
18142e5b6d6dSopenharmony_ci                target="${javac.target}"
18152e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
18162e5b6d6dSopenharmony_ci                debug="on" deprecation="off">
18172e5b6d6dSopenharmony_ci            <src path="${icu4j.core.dir}/src"/>
18182e5b6d6dSopenharmony_ci            <src path="${icu4j.translit.dir}/src"/>
18192e5b6d6dSopenharmony_ci            <src path="${icu4j.tools.dir}/src"/>
18202e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/ime/translit/*.java"/>
18212e5b6d6dSopenharmony_ci        </javac>
18222e5b6d6dSopenharmony_ci
18232e5b6d6dSopenharmony_ci        <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/Transliterator.properties"
18242e5b6d6dSopenharmony_ci                todir="${translit.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/translit"/>
18252e5b6d6dSopenharmony_ci
18262e5b6d6dSopenharmony_ci        <mkdir dir="${translit.ime.out.dir}/lib"/>
18272e5b6d6dSopenharmony_ci        <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar"
18282e5b6d6dSopenharmony_ci                compress="true"
18292e5b6d6dSopenharmony_ci                basedir="${translit.ime.out.dir}/bin"
18302e5b6d6dSopenharmony_ci                includes="com/ibm/icu/dev/tool/ime/translit/**/*"
18312e5b6d6dSopenharmony_ci                manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/manifest.stub">
18322e5b6d6dSopenharmony_ci            <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit" includes="services/*" />
18332e5b6d6dSopenharmony_ci        </jar>
18342e5b6d6dSopenharmony_ci    </target>
18352e5b6d6dSopenharmony_ci
18362e5b6d6dSopenharmony_ci    <target name="indicIMEJar" depends="info" description="Build indic IME 'icuindicime.jar' jar file">
18372e5b6d6dSopenharmony_ci        <property name="indic.ime.out.dir" value="${out.dir}/indic_ime"/>
18382e5b6d6dSopenharmony_ci
18392e5b6d6dSopenharmony_ci        <mkdir dir="${indic.ime.out.dir}/bin"/>
18402e5b6d6dSopenharmony_ci        <javac destdir="${indic.ime.out.dir}/bin"
18412e5b6d6dSopenharmony_ci                source="${javac.source}"
18422e5b6d6dSopenharmony_ci                target="${javac.target}"
18432e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
18442e5b6d6dSopenharmony_ci                debug="on" deprecation="off">
18452e5b6d6dSopenharmony_ci            <src path="${icu4j.core.dir}/src"/>
18462e5b6d6dSopenharmony_ci            <src path="${icu4j.tools.dir}/src"/>
18472e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/ime/indic/*.java"/>
18482e5b6d6dSopenharmony_ci        </javac>
18492e5b6d6dSopenharmony_ci
18502e5b6d6dSopenharmony_ci        <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/DisplayNames.properties"
18512e5b6d6dSopenharmony_ci                todir="${indic.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/indic"/>
18522e5b6d6dSopenharmony_ci
18532e5b6d6dSopenharmony_ci        <mkdir dir="${indic.ime.out.dir}/lib"/>
18542e5b6d6dSopenharmony_ci        <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar"
18552e5b6d6dSopenharmony_ci                compress="true"
18562e5b6d6dSopenharmony_ci                basedir="${indic.ime.out.dir}/bin"
18572e5b6d6dSopenharmony_ci                includes="com/ibm/icu/dev/tool/ime/indic/**/*"
18582e5b6d6dSopenharmony_ci                manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/manifest.stub">
18592e5b6d6dSopenharmony_ci            <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic" includes="services/*" />
18602e5b6d6dSopenharmony_ci        </jar>
18612e5b6d6dSopenharmony_ci    </target>
18622e5b6d6dSopenharmony_ci
18632e5b6d6dSopenharmony_ci    <target name="cldrUtil" depends="icu4jJar" description="Build Utilities for CLDR tooling">
18642e5b6d6dSopenharmony_ci        <mkdir dir="${cldr.util.out.dir}/bin"/>
18652e5b6d6dSopenharmony_ci        <javac destdir="${cldr.util.out.dir}/bin"
18662e5b6d6dSopenharmony_ci                source="${javac.source}"
18672e5b6d6dSopenharmony_ci                target="${javac.target}"
18682e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
18692e5b6d6dSopenharmony_ci                debug="on" deprecation="off"
18702e5b6d6dSopenharmony_ci                classpath="${icu4j.jar.file}">
18712e5b6d6dSopenharmony_ci
18722e5b6d6dSopenharmony_ci            <src path="${icu4j.tools.dir}/src"/>
18732e5b6d6dSopenharmony_ci            <src path="${icu4j.test-framework.dir}/src"/>
18742e5b6d6dSopenharmony_ci
18752e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/util/CollectionUtilities.java" />
18762e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/util/ElapsedTimer.java" />
18772e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/util/UnicodeMap.java" />
18782e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/util/UnicodeMapIterator.java" />
18792e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/UOption.java" />
18802e5b6d6dSopenharmony_ci        </javac>
18812e5b6d6dSopenharmony_ci
18822e5b6d6dSopenharmony_ci        <mkdir dir="${cldr.util.out.dir}/lib"/>
18832e5b6d6dSopenharmony_ci        <copy file="tools/build/manifest-utilities.stub" todir="${out.dir}">
18842e5b6d6dSopenharmony_ci            <filterset>
18852e5b6d6dSopenharmony_ci                <filter token="SPECVERSION" value="${jar.spec.version}"/>
18862e5b6d6dSopenharmony_ci                <filter token="IMPLVERSION" value="${jar.impl.version}"/>
18872e5b6d6dSopenharmony_ci                <filter token="COPYRIGHT" value="${jar.copyright.info}"/>
18882e5b6d6dSopenharmony_ci                <filter token="EXECENV" value="${jar.exec.env}"/>
18892e5b6d6dSopenharmony_ci            </filterset>
18902e5b6d6dSopenharmony_ci        </copy>
18912e5b6d6dSopenharmony_ci        <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar"
18922e5b6d6dSopenharmony_ci                compress="true"
18932e5b6d6dSopenharmony_ci                manifest="${out.dir}/manifest-utilities.stub"
18942e5b6d6dSopenharmony_ci                basedir="${cldr.util.out.dir}/bin">
18952e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/util/*.class"/>
18962e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/UOption*.class"/>
18972e5b6d6dSopenharmony_ci        </jar>
18982e5b6d6dSopenharmony_ci    </target>
18992e5b6d6dSopenharmony_ci
19002e5b6d6dSopenharmony_ci    <target name="releaseCLDR" depends="icu4jJar,icu4jSrcJar,cldrUtil" description="Build release files for CLDR tooling">
19012e5b6d6dSopenharmony_ci        <mkdir dir="${cldr.release.dir}"/>
19022e5b6d6dSopenharmony_ci        <!-- icu4j.jar -->
19032e5b6d6dSopenharmony_ci        <copy file="${icu4j.jar.file}" todir="${cldr.release.dir}"/>
19042e5b6d6dSopenharmony_ci        <!-- icu4j-src.jar -->
19052e5b6d6dSopenharmony_ci        <copy file="${icu4j-src.jar.file}" todir="${cldr.release.dir}"/>
19062e5b6d6dSopenharmony_ci        <!-- utilities.jar -->
19072e5b6d6dSopenharmony_ci        <copy file="${cldr.util.out.dir}/lib/utilities.jar" todir="${cldr.release.dir}"/>
19082e5b6d6dSopenharmony_ci        <!-- utilities-src.jar -->
19092e5b6d6dSopenharmony_ci        <jar jarfile="${cldr.release.dir}/utilities-src.jar" compress="true">
19102e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.test-framework.dir}/${src.dir}">
19112e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/dev/util/CollectionUtilities.java" />
19122e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/dev/util/ElapsedTimer.java" />
19132e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/dev/util/UnicodeMap.java" />
19142e5b6d6dSopenharmony_ci                <include name="com/ibm/icu/dev/util/UnicodeMapIterator.java" />
19152e5b6d6dSopenharmony_ci            </fileset>
19162e5b6d6dSopenharmony_ci            <fileset dir="${icu4j.tools.dir}/${src.dir}" includes="com/ibm/icu/dev/tool/UOption.java"/>
19172e5b6d6dSopenharmony_ci       </jar>
19182e5b6d6dSopenharmony_ci    </target>
19192e5b6d6dSopenharmony_ci
19202e5b6d6dSopenharmony_ci    <target name="xliff" description="Build xliff converter tool">
19212e5b6d6dSopenharmony_ci        <property name="xliff.out.dir" value="${out.dir}/xliff"/>
19222e5b6d6dSopenharmony_ci
19232e5b6d6dSopenharmony_ci        <mkdir dir="${xliff.out.dir}/bin"/>
19242e5b6d6dSopenharmony_ci        <javac destdir="${xliff.out.dir}/bin"
19252e5b6d6dSopenharmony_ci                source="1.3"
19262e5b6d6dSopenharmony_ci                target="1.3"
19272e5b6d6dSopenharmony_ci                encoding="${java.src.encoding}"
19282e5b6d6dSopenharmony_ci                debug="on" deprecation="off">
19292e5b6d6dSopenharmony_ci            <src path="${icu4j.tools.dir}/src"/>
19302e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
19312e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
19322e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/UOption.java"/>
19332e5b6d6dSopenharmony_ci       </javac>
19342e5b6d6dSopenharmony_ci
19352e5b6d6dSopenharmony_ci        <mkdir dir="${xliff.out.dir}/lib"/>
19362e5b6d6dSopenharmony_ci
19372e5b6d6dSopenharmony_ci        <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar"
19382e5b6d6dSopenharmony_ci                compress="true"
19392e5b6d6dSopenharmony_ci                basedir="${icu4j.tools.dir}/src">
19402e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
19412e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
19422e5b6d6dSopenharmony_ci            <include name="com/ibm/icu/dev/tool/UOption.java"/>
19432e5b6d6dSopenharmony_ci        </jar>
19442e5b6d6dSopenharmony_ci
19452e5b6d6dSopenharmony_ci        <jar jarfile="${xliff.out.dir}/lib/xliff.jar"
19462e5b6d6dSopenharmony_ci                compress="true"
19472e5b6d6dSopenharmony_ci                basedir="${xliff.out.dir}/bin"
19482e5b6d6dSopenharmony_ci                manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/>
19492e5b6d6dSopenharmony_ci    </target>
19502e5b6d6dSopenharmony_ci</project>
1951