Copy ICU4J 54 from icu-project.org to AOSP/master.

These files were exported from the ICU Subversion repository by running
the following command:

svn export \
  http://source.icu-project.org/repos/icu/icu4j/tags/release-54-1/ icu4j

Only the subdirectory "main" and the files in the root directory were
added in this commit. The other subdirectories only contain files that
are not relevant (demos, tools, etc.) when using ICU4J in Android.

Change-Id: I852d59c7d601d72e279c599b9f9e675cd3ef27b1
diff --git a/icu4j/build.xml b/icu4j/build.xml
new file mode 100644
index 0000000..694827d
--- /dev/null
+++ b/icu4j/build.xml
@@ -0,0 +1,2005 @@
+<!--
+*******************************************************************************
+* Copyright (C) 1997-2014, International Business Machines Corporation and    *
+* others. All Rights Reserved.                                                *
+*******************************************************************************
+-->
+<project name="icu4j" default="jar" basedir="."
+    xmlns:jacoco="antlib:org.jacoco.ant">
+
+    <property file="build-local.properties"/>
+    <property file="build.properties"/>
+
+    <property name="shared.dir" value="main/shared"/>
+    <import file="${shared.dir}/build/common-targets.xml"/>
+
+    <property environment="env"/>
+
+    <!-- icu4j binaries -->
+    <property name="icu4j.jar.file" value="icu4j.jar"/>
+    <property name="icu4jtests.jar.file" value="icu4jtests.jar"/>
+    <property name="icu4j-charset.jar.file" value="icu4j-charset.jar"/>
+    <property name="icu4j-localespi.jar.file" value="icu4j-localespi.jar"/>
+
+    <property name="icu4jdemos.jar.file" value="icu4jdemos.jar"/>
+
+    <!-- icu4j API doc jar file -->
+    <property name="icu4jdocs.jar.file" value="icu4j-docs.jar"/>
+
+    <!-- icu4j src jar files -->
+    <property name="icu4j-src.jar.file" value="icu4j-src.jar"/>
+    <property name="icu4j-charset-src.jar.file" value="icu4j-charset-src.jar"/>
+    <property name="icu4j-localespi-src.jar.file" value="icu4j-localespi-src.jar"/>
+
+    <!-- icu4j source package archive files -->
+    <property name="icu4jsrc.zip.file" value="icu4j.zip"/>
+    <property name="icu4jsrc.tgz.file" value="icu4j.tgz"/>
+
+    <!-- icu4j versioned release files -->
+    <property name="icu4j.jar.versioned.file" value="icu4j-${release.file.ver}.jar"/>
+    <property name="icu4j-charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}.jar"/>
+    <property name="icu4j-localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}.jar"/>
+
+    <property name="icu4j-src.jar.versioned.file" value="icu4j-${release.file.ver}-src.jar"/>
+    <property name="icu4j-charset-src.jar.versioned.file" value="icu4j-charset-${release.file.ver}-src.jar"/>
+    <property name="icu4j-localespi-src.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-src.jar"/>
+
+    <property name="icu4jdocs.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/>
+
+    <!-- <property name="icu4jsrc.zip.versioned.file" value="icu4j-${release.file.ver}.zip"/> -->
+    <property name="icu4jsrc.tgz.versioned.file" value="icu4j-${release.file.ver}.tgz"/>
+
+    <!-- API doc -->
+    <property name="icu4j.api.doc.title" value="ICU4J ${api.doc.version} API Specification"/>
+    <property name="icu4j.api.doc.window.title" value="ICU4J ${api.doc.version}"/>
+    <property name="icu4j.api.doc.header" value="ICU4J ${api.doc.version}"/>
+    <property name="icu4j.api.doc.jdk.link" value="http://docs.oracle.com/javase/7/docs/api/"/>
+
+    <!-- directories -->
+    <property name="release.dir" value="release"/>
+    <property name="doc.dir" value="doc"/>
+    <property name="cldr.util.out.dir" value="${out.dir}/cldr_util"/>
+    <property name="cldr.release.dir" value="release_cldr"/>
+
+    <!-- Java version check -->
+    <condition property="is.java6.plus">
+        <or>
+            <contains string="${java.version}" substring="1.6."/>
+            <contains string="${java.version}" substring="1.7."/>
+            <contains string="${java.version}" substring="1.8."/>
+        </or>
+    </condition>
+    <condition property="is.java5">
+        <contains string="${java.version}" substring="1.5."/>
+    </condition>
+    <fail message="The JDK version is too old or unknown.">
+        <condition>
+            <not>
+                <or>
+                    <isset property="is.java6.plus"/>
+                    <isset property="is.java5"/>
+                </or>
+             </not>
+        </condition>
+    </fail>
+
+    <condition property="is.java7.plus">
+        <or>
+            <contains string="${java.version}" substring="1.7."/>
+            <contains string="${java.version}" substring="1.8."/>
+        </or>
+    </condition>
+
+    <!-- Build environment info -->
+    <property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/>
+    <target name="info" description="Display the build environment information">
+        <echo message="----- Build Environment Information -------------------"/>
+        <echo message="Java Home:    ${java.home}"/>
+        <echo message="Java Version: ${java.version}"/>
+        <echo message="Ant Home:     ${ant.home}"/>
+        <echo message="Ant Version:  ${ant.version}"/>
+        <echo message="OS:           ${os.name}"/>
+        <echo message="OS Version:   ${os.version}"/>
+        <echo message="OS Arch:      ${os.arch}"/>
+        <echo message="Host:         ${env.COMPUTERNAME}"/>
+        <echo message="-------------------------------------------------------"/>
+    </target>
+
+    <target name="clean" description="Clean up build outputs">
+        <ant dir="${icu4j.core.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.collate.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.charset.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.currdata.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.langdata.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.localespi.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.regiondata.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.translit.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.test-framework.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.core-tests.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.collate-tests.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.charset-tests.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.localespi-tests.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.packaging-tests.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.translit-tests.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.testall.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.build-tools.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.tools.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.demos.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.samples.dir}" target="clean" inheritAll="false"/>
+        <ant dir="${icu4j.perf-tests.dir}" target="clean" inheritAll="false"/>
+
+        <!-- delete all .jar files root directory -->
+        <delete>
+            <fileset dir="." includes="icu4j*.jar"/>
+        </delete>
+
+        <delete dir="${release.dir}"/>
+        <delete dir="${doc.dir}"/>
+        <delete dir="${out.dir}"/>
+        <delete dir="${module.dir}"/>
+        <delete dir="${cldr.release.dir}"/>
+
+        <available file="eclipse-build" type="dir" property="eclipse-build.dir.present"/>
+        <antcall target="_clean.eclipse-build"/>
+    </target>
+
+    <target name="_clean.eclipse-build" if="eclipse-build.dir.present">
+        <ant dir="eclipse-build" target="clean" inheritAll="false"/>
+    </target>
+
+    <!-- meta build targets -->
+    <target name="all" depends="info, main, tests, build-tools, tools, demos, samples, perf-tests, jar, docs" description="Build all primary targets"/>
+    <target name="main" depends="info, core, collate, charset, currdata, langdata, regiondata, translit, localespi" description="Build ICU4J runtime library classes"/>
+    <target name="tests" depends="info, core-tests, charset-tests, collate-tests, packaging-tests, translit-tests, testall, localespi-tests" description="Build ICU4J test classes"/>
+
+    <target name="secure" depends="icu4jJar" description="(Deprecated)Build ICU4J API and test classes for running the ICU4J test suite with Java security manager enabled"/>
+    
+    <!-- Check to see if JVM_OPTIONS enviroment variable is set. This can be use to set the heap size. -->
+    <property name="env.JVM_OPTIONS" value=""/>
+    <property name="jvm_options" value="${env.JVM_OPTIONS}"/>
+    <target name="check" description="Run the standard ICU4J test suite">
+        <antcall target="_runCheck">
+            <param name="runcheck.arg" value="-n"/>
+            <param name="runcheck.jvmarg" value="${jvm_options} -ea"/>
+        </antcall>
+    </target>
+
+    <target name="exhaustiveCheck" description="Run the standard ICU4J test suite in exhaustive mode">
+        <antcall target="_runCheck">
+            <param name="runcheck.arg" value="-n -e10"/>
+            <param name="runcheck.jvmarg" value="${jvm_options} -ea"/>
+        </antcall>
+    </target>
+
+    <target name="timeZoneCheck" description="Run the complete test for TimeZoneRoundTripAll">
+        <antcall target="_runCheck">
+            <param name="runcheck.arg" value="-n -prop:TimeZoneRoundTripAll=true Core/Format/DateFormat/TimeZoneFormatTest -v"/>
+            <param name="runcheck.jvmarg" value="${jvm_options}"/>
+        </antcall>
+    </target>
+
+    <target name="jdktzCheck" description="Run the standard ICU4J test suite with JDK TimeZone">
+        <antcall target="_runCheck">
+            <param name="runcheck.arg" value="-n"/>
+            <param name="runcheck.jvmarg" value="${jvm_options} -Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=JDK"/>
+        </antcall>
+    </target>
+
+    <target name="_runCheck" depends="main, tests">
+        <echo message="JVM argument:   ${runcheck.jvmarg} -Djava.awt.headless=true"/>
+        <echo message="Test argument:   ${runcheck.arg}"/>
+
+        <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
+            <arg line="${runcheck.arg}"/>
+            <jvmarg line="${runcheck.jvmarg} -Djava.awt.headless=true"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.collate.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.translit.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.core-tests.jar}"/>
+                <pathelement location="${icu4j.collate-tests.jar}"/> 
+                <pathelement location="${icu4j.charset-tests.jar}"/>
+                <pathelement location="${icu4j.translit-tests.jar}"/>
+                <pathelement location="${icu4j.testall.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="_runTestArgCheck" unless="testarg">
+        <echo message="No test arguments are supplied. Using the default argument '-n'."/>
+        <echo message="For specifying test arguments, use '-Dtestarg=[test args]' as"/>
+        <echo message="ant command line argument. For example:"/>
+        <echo message="  &#x3E;ant runTest -Dtestarg=&#x22;Core/Format -e10&#x22;"/>
+        <echo message="for running ICU4J core format test suite in exhaustive mode."/>
+        <property name="testarg" value="-n"/>
+    </target>
+
+    <target name="runTest" depends="_runTestArgCheck" description="Run a ICU4J test case, without calling any other build targets">
+        <echo message="JVM argument:   ${jvm_options} -Djava.awt.headless=true"/>
+        <echo message="Test argument:   ${testarg}"/>
+
+        <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
+            <arg line="${testarg}"/>
+            <jvmarg line="${jvm_options} -Djava.awt.headless=true"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.collate.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.translit.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.core-tests.jar}"/>
+                <pathelement location="${icu4j.collate-tests.jar}"/> 
+                <pathelement location="${icu4j.charset-tests.jar}"/>
+                <pathelement location="${icu4j.translit-tests.jar}"/>
+                <pathelement location="${icu4j.testall.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="packagingCheck" depends="info, core, packaging-tests" description="Run packaging tests">
+        <!-- region data but no language data -->
+        <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
+            <arg line="-n -w"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.packaging-tests.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+            </classpath>
+        </java>
+        <!-- language data but no region data -->
+        <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
+            <arg line="-n -w"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.packaging-tests.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+            </classpath>
+        </java>
+        <!-- neither region nor language data -->
+        <java classname="com.ibm.icu.dev.test.TestPackaging" fork="yes" failonerror="true">
+            <arg line="-n -w"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.packaging-tests.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="coreCheck" depends="info, core, currdata, langdata, regiondata, core-tests" description="Run only the core tests">
+        <java classname="com.ibm.icu.dev.test.TestAllCore" fork="yes" failonerror="true">
+            <arg line="-n"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.core-tests.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="collateCheck" depends="info, core, collate, currdata, langdata, regiondata, core-tests, collate-tests" description="Run only the collation tests">
+        <java classname="com.ibm.icu.dev.test.TestAllCollate" fork="yes" failonerror="true">
+            <arg line="-n"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.collate.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.collate-tests.jar}"/>
+
+                <!-- for now, collateCheck needs currdata, langdata and regiondata, because of GlobalizationPreferencesTest" -->
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.core-tests.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="translitCheck" depends="info, core, translit, translit-tests" description="Run the ICU4J Translit test suite">
+        <java classname="com.ibm.icu.dev.test.TestAllTranslit" fork="yes" failonerror="true">
+            <arg line="-n"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.translit.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.translit-tests.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="localespiCheck" if="is.java6.plus" depends="info" description="Run the ICU4J Locale SPI test suite">
+        <antcall target="_runLocalespiCheck"/>
+    </target>
+
+    <target name="_runLocalespiCheck" depends="localespi, localespi-tests">
+        <java classname="com.ibm.icu.dev.test.localespi.TestAll" fork="yes" failonerror="true">
+            <jvmarg line="-Djava.ext.dirs=${icu4j.core.dir}/${jar.dir}${path.separator}${icu4j.localespi.dir}/${jar.dir}${path.separator}${icu4j.collate.dir}/${jar.dir}${path.separator}${icu4j.currdata.dir}/${jar.dir}${path.separator}${icu4j.langdata.dir}/${jar.dir}${path.separator}${icu4j.regiondata.dir}/${jar.dir}${path.separator}${java.ext.dirs}"/>
+            <arg value="-n"/>
+            <classpath>
+                <pathelement location="${icu4j.localespi-tests.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="secureCheck" depends="main, jar, icu4jtestsJar" description="Run the secure (applet-like) ICU4J test suite">
+        <property name="securecheck.arg" value="-n -w"/>
+        <property name="securecheck.jvmarg"
+                value="${jvm_options} -Djava.security.manager -Djava.security.policy=${shared.dir}/data/security.policy -Djava.awt.headless=true"/>
+
+        <echo message="JVM argument:   ${securecheck.jvmarg}"/>
+        <echo message="Test argument:  ${securecheck.arg}"/>
+
+        <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
+            <arg line="${securecheck.arg}"/>
+            <jvmarg line="${securecheck.jvmarg}"/>
+            <classpath>
+                <pathelement location="${icu4j.jar.file}"/>
+                <pathelement location="${icu4j-charset.jar.file}"/>
+                <pathelement location="${icu4jtests.jar.file}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <!-- jar targets -->
+    <target name="jar" depends="icu4jJar, charset, localespi" description="Build ICU4J runtime library jar files">
+        <copy file="${icu4j.charset.jar}" tofile="${icu4j-charset.jar.file}"/>
+        <copy file="${icu4j.localespi.jar}" tofile="${icu4j-localespi.jar.file}" failonerror="false"/>
+    </target>
+
+    <target name="icu4jJar" depends="info, core, collate, currdata, langdata, regiondata, translit" description="Build ICU4J all-in-one core jar">
+        <mkdir dir="${out.dir}"/>
+
+        <!-- manifest -->
+        <copy file="manifest.stub" todir="${out.dir}">
+            <filterset>
+                <filter token="SPECVERSION" value="${jar.spec.version}"/>
+                <filter token="IMPLVERSION" value="${jar.impl.version}"/>
+                <filter token="COPYRIGHT" value="${jar.copyright.info}"/>
+                <filter token="EXECENV" value="${jar.exec.env}"/>
+            </filterset>
+        </copy>
+
+        <!-- jar -->
+        <jar jarfile="${icu4j.jar.file}"
+                compress="true"
+                manifest="${out.dir}/manifest.stub">
+            <fileset dir="${icu4j.core.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.collate.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.currdata.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.langdata.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.regiondata.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.translit.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${shared.dir}/licenses">
+                <include name="license.html"/>
+            </fileset>
+        </jar>
+    </target>
+
+    <target name="icu4jSrcJar" description="Build icu4j-src.jar">
+        <jar jarfile="${icu4j-src.jar.file}"
+                compress="true">
+            <fileset dir="${icu4j.core.dir}/${src.dir}" includes="**/*.java"/>
+            <fileset dir="${icu4j.collate.dir}/${src.dir}" includes="**/*.java"/>
+            <fileset dir="${icu4j.currdata.dir}/${src.dir}" includes="**/*.java"/>
+            <fileset dir="${icu4j.langdata.dir}/${src.dir}" includes="**/*.java"/>
+            <fileset dir="${icu4j.regiondata.dir}/${src.dir}" includes="**/*.java"/>
+            <fileset dir="${icu4j.translit.dir}/${src.dir}" includes="**/*.java"/>
+            <fileset dir="${shared.dir}/licenses">
+                <include name="license.html"/>
+            </fileset>
+        </jar>
+    </target>
+
+    <target name="icu4jtestsJar" depends="info, tests" description="Build ICU4J all-in-one test jar">
+        <jar jarfile="${icu4jtests.jar.file}"
+                compress="true">
+            <fileset dir="${icu4j.test-framework.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.core-tests.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}" includes="**/*"/>
+            <fileset dir="${icu4j.testall.dir}/${bin.dir}" includes="**/*"/>
+        </jar>
+    </target>
+
+    <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file">
+        <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/>
+    </target>
+
+
+    <!-- release targets -->
+    <target name="releaseVer" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz"
+            description="Build all ICU4J release files for distribution with versioned file names">
+        <!-- binaries -->
+        <move file="${release.dir}/${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.versioned.file}"/>
+        <move file="${release.dir}/${icu4j-charset.jar.file}" tofile="${release.dir}/${icu4j-charset.jar.versioned.file}"/>
+        <move file="${release.dir}/${icu4j-localespi.jar.file}" tofile="${release.dir}/${icu4j-localespi.jar.versioned.file}"/>
+
+        <!-- source jars -->
+        <move file="${release.dir}/${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.versioned.file}"/>
+        <move file="${release.dir}/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.versioned.file}"/>
+        <move file="${release.dir}/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.versioned.file}"/>
+
+        <!-- docs -->
+        <move file="${release.dir}/${icu4jdocs.jar.file}" tofile="${release.dir}/${icu4jdocs.jar.versioned.file}"/>
+
+        <!-- package archive -->
+        <move file="${release.dir}/${icu4jsrc.tgz.file}" tofile="${release.dir}/${icu4jsrc.tgz.versioned.file}"/>
+
+        <!-- md5 checksum file -->
+        <mkdir dir="${out.dir}/checksum"/>
+        <delete dir="${out.dir}/checksum" includes="**/*"/>
+
+        <checksum todir="${out.dir}/checksum" format="MD5SUM">
+            <fileset dir="${release.dir}">
+                <include name="*.jar"/>
+                <include name="*.tgz"/>
+            </fileset>
+        </checksum>
+
+        <concat destfile="${release.dir}/icu4j-${release.file.ver}.md5">
+            <fileset dir="${out.dir}/checksum" includes="*"/>
+            <filterchain>
+                <fixcrlf eol="lf"/>
+            </filterchain>
+        </concat>
+    </target>
+
+    <target name="release" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz" description="Build all ICU4J release files for distribution">
+        <mkdir dir="${out.dir}/checksum"/>
+        <delete dir="${out.dir}/checksum" includes="**/*"/>
+
+        <checksum todir="${out.dir}/checksum" format="MD5SUM">
+            <fileset dir="${release.dir}">
+                <include name="*.jar"/>
+                <include name="*.tgz"/>
+            </fileset>
+        </checksum>
+
+        <concat destfile="${release.dir}/icu4j.md5">
+            <fileset dir="${out.dir}/checksum" includes="*"/>
+            <filterchain>
+                <fixcrlf eol="lf"/>
+            </filterchain>
+        </concat>
+    </target>
+
+    <target name="releaseBinaries" depends="icu4jJar, charset, localespi" description="Build ICU4J binary files for distribution">
+        <mkdir dir="${release.dir}"/>
+        <copy file="${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.file}"/>
+        <copy file="${icu4j.charset.jar}" tofile="${release.dir}/${icu4j-charset.jar.file}"/>
+        <copy file="${icu4j.localespi.jar}" tofile="${release.dir}/${icu4j-localespi.jar.file}"/>
+    </target>
+
+    <target name="releaseSrcJars" depends="icu4jSrcJar" description="Build ICU4J src jar files for distribution">
+        <mkdir dir="${release.dir}"/>
+
+        <!-- icu4j src-jar -->
+        <copy file="${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.file}"/>
+
+        <!-- charset/localespi src-jar -->
+        <ant dir="${icu4j.charset.dir}" target="src-jar" inheritAll="false"/>
+        <ant dir="${icu4j.localespi.dir}" target="src-jar" inheritAll="false"/>
+
+        <copy file="${icu4j.charset.dir}/${out.dir}/lib/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.file}"/>
+        <copy file="${icu4j.localespi.dir}/${out.dir}/lib/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.file}"/>
+    </target>
+
+
+    <target name="releaseDocs" depends="docs" description="Build ICU4J API reference doc jar file for distribution">
+        <mkdir dir="${release.dir}"/>
+        <jar jarfile="${release.dir}/${icu4jdocs.jar.file}" compress="true" basedir="${doc.dir}"/>
+    </target>
+
+    <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/>
+
+    <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)">
+        <delete dir="${src.release.wrk.dir}"/>
+        <delete file="${icu4jsrc.zip.file}"/>
+
+        <mkdir dir="${src.release.wrk.dir}"/>
+
+        <fixcrlf srcdir="."
+                destdir="${src.release.wrk.dir}"
+                encoding="UTF-8"
+                eol="crlf">
+            <include name="demos/**/*"/>
+            <include name="main/**/*"/>
+            <include name="perf-tests/**/*"/>
+            <include name="samples/**/*"/>
+            <include name="tools/**/*"/>
+            <include name="*.html"/>
+            <include name="*.xml"/>
+            <include name="*.properties"/>
+            <include name="*.css"/>
+            <include name="*.stub"/>
+            <exclude name="**/out/**/*"/>
+            <exclude name="**/*.jar"/>
+            <exclude name="**/build-local.properties"/>
+            <exclude name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
+            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
+            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
+            <exclude name="tools/build/icu4j*.api*.gz"/>
+        </fixcrlf>
+
+        <mkdir dir="${release.dir}"/>
+        <zip destfile="${release.dir}/${icu4jsrc.zip.file}">
+            <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
+            <fileset dir="${basedir}">
+                <include name="main/shared/data/*.jar"/>
+                <include name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
+                <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
+                <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
+                <include name="tools/build/icu4j*.api*.gz"/>
+            </fileset>
+        </zip>
+
+        <delete dir="${src.release.wrk.dir}"/>
+    </target>
+
+    <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)">
+        <delete dir="${src.release.wrk.dir}"/>
+        <delete file="${icu4jsrc.tgz.file}"/>
+
+        <mkdir dir="${src.release.wrk.dir}"/>
+
+        <fixcrlf srcdir="."
+                destdir="${src.release.wrk.dir}"
+                encoding="UTF-8"
+                eol="lf">
+            <include name="demos/**/*"/>
+            <include name="main/**/*"/>
+            <include name="perf-tests/**/*"/>
+            <include name="samples/**/*"/>
+            <include name="tools/**/*"/>
+            <include name="*.html"/>
+            <include name="*.xml"/>
+            <include name="*.properties"/>
+            <include name="*.css"/>
+            <include name="*.stub"/>
+            <exclude name="**/out/**/*"/>
+            <exclude name="**/*.jar"/>
+            <exclude name="**/build-local.properties"/>
+            <exclude name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
+            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
+            <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
+            <exclude name="tools/build/icu4j*.api*.gz"/>
+        </fixcrlf>
+
+        <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/>
+
+        <tar destfile="${icu4jsrc.tar}" longfile="gnu">
+            <fileset dir="${src.release.wrk.dir}" includes="**/*"/>
+            <fileset dir="${basedir}">
+                <include name="main/shared/data/*.jar"/>
+                <include name="main/tests/core/src/com/ibm/icu/dev/data/rbbi/english.dict"/>
+                <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/>
+                <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/>
+                <include name="tools/build/icu4j*.api*.gz"/>
+            </fileset>
+        </tar>
+
+        <mkdir dir="${release.dir}"/>
+        <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/>
+
+        <delete dir="${src.release.wrk.dir}"/>
+        <delete file="${icu4jsrc.tar}"/>
+    </target>
+
+    <!-- findbugs targets -->
+
+    <target name="findbugs" description="Run FindBugs on all library sub projects.">
+        <property name="findbugs.out.dir" value="${out.dir}/findbugs"/>
+        <mkdir dir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.core.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.core.dir}/${out.dir}/fb-core.html" todir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.collate.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.collate.dir}/${out.dir}/fb-collate.html" todir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.currdata.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.currdata.dir}/${out.dir}/fb-currdata.html" todir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.langdata.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.langdata.dir}/${out.dir}/fb-langdata.html" todir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.regiondata.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.regiondata.dir}/${out.dir}/fb-regiondata.html" todir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.translit.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.translit.dir}/${out.dir}/fb-translit.html" todir="${findbugs.out.dir}"/>
+
+
+        <ant dir="${icu4j.charset.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.charset.dir}/${out.dir}/fb-charset.html" todir="${findbugs.out.dir}"/>
+
+        <ant dir="${icu4j.localespi.dir}" inheritAll="false" target="findbugs"/>
+        <copy file="${icu4j.localespi.dir}/${out.dir}/fb-localespi.html" todir="${findbugs.out.dir}"/>
+    </target>
+
+    <!-- compile targets -->
+    <target name="core" description="Build core classes">
+        <ant dir="${icu4j.core.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="collate" depends="core" description="Build collation classes">
+        <ant dir="${icu4j.collate.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="charset" depends="core" description="Build charset classes">
+        <ant dir="${icu4j.charset.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="currdata" depends="core" description="Build currency data classes">
+        <ant dir="${icu4j.currdata.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="langdata" depends="core" description="Build language data classes">
+        <ant dir="${icu4j.langdata.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="localespi" if="is.java6.plus" description="Build Locale SPI classes">
+        <antcall target="_build-localespi"/>
+    </target>
+
+    <target name="_build-localespi" depends="core, collate, currdata, langdata, regiondata">
+        <ant dir="${icu4j.localespi.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="regiondata" depends="core" description="Build region data classes">
+        <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="translit" depends="core" description="Build translit classes">
+        <ant dir="${icu4j.translit.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="test-framework" depends="core" description="Build test framework classes">
+        <ant dir="${icu4j.test-framework.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="core-tests" depends="core, test-framework" description="Build core tests">
+        <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="collate-tests" depends="collate, test-framework" description="Build core tests">
+        <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="charset-tests" depends="charset, test-framework" description="Build charset tests">
+        <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="localespi-tests" if="is.java6.plus" description="Build Locale SPI tests">
+        <antcall target="_build-localespi-tests"/>
+    </target>
+
+    <target name="_build-localespi-tests" depends="localespi, test-framework">
+        <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="packaging-tests" depends="test-framework" description="Build packaging tests">
+        <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="translit-tests" depends="translit, test-framework" description="Build translit tests">
+        <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="testall" depends="test-framework" description="Build top level TestAll">
+        <ant dir="${icu4j.testall.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="demos" depends="core, charset, translit" description="Build demo classes">
+        <ant dir="${icu4j.demos.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="samples" depends="core, charset, collate, translit" description="Build sample classes">
+        <ant dir="${icu4j.samples.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="build-tools" description="Build build-tool classes">
+        <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="tools" depends="core, core-tests, collate, translit, translit-tests" description="Build tool classes">
+        <ant dir="${icu4j.tools.dir}" inheritAll="false"/>
+    </target>
+
+    <target name="perf-tests" if="is.java6.plus" depends="core, charset, collate, tools" description="Build performance test classes">
+        <ant dir="${icu4j.perf-tests.dir}" inheritAll="false"/>
+    </target>
+
+    <!-- doc targets -->
+    <target name="docs" depends="info, build-tools, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/>
+
+    <target name="_checkJCite" if="env.JCITE_DIR">
+        <fileset dir="${env.JCITE_DIR}" id="jcite.files">
+            <include name="build/*.jar"/>
+            <include name="lib/*.jar"/>
+        </fileset>
+        <pathconvert property="jcite.libs" refid="jcite.files"/>
+
+        <dirset dir="${basedir}" id="jcite.src.dirs">
+            <include name="samples/src"/>
+            <include name="demos/src"/>
+            <include name="main/tests/*/src"/>
+        </dirset>
+        <pathconvert property="jcite.addl.src" refid="jcite.src.dirs"/>
+    </target>
+
+    <target name="_docsStyleSheet">
+        <condition property="docs.style.sheet" value="stylesheet7.css" else="stylesheet.css">
+            <isset property="is.java7.plus"/>
+        </condition>
+    </target>
+
+    <target name="_docsWithJCite" depends="_docsStyleSheet" if="jcite.libs">
+        <echo message="JCite library path:             ${jcite.libs}"/>
+        <echo message="JCite additional source path:   ${jcite.addl.src}"/>
+        <echo message="Custom stylesheet:              ${docs.style.sheet}"/>
+        <javadoc
+                destdir="${doc.dir}"
+                nodeprecatedlist="true"
+                windowtitle="${icu4j.api.doc.window.title}"
+                doctitle="${icu4j.api.doc.title}"
+                header="${icu4j.api.doc.header}"
+                encoding="${java.src.encoding}"
+                docencoding="UTF-8"
+                charset="UTF-8"
+                bottom="&lt;font size=-1&gt;Copyright (c) ${current.year} IBM Corporation and others.&lt;/font&gt;"
+                additionalparam="-breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
+                link="${icu4j.api.doc.jdk.link}"
+                source="1.5"
+                stylesheetfile="${docs.style.sheet}">
+            <packageset dir="${icu4j.core.dir}/src">
+                <include name="com/ibm/icu/lang/**"/>
+                <include name="com/ibm/icu/math/**"/>
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.collate.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+            </packageset>
+            <packageset dir="${icu4j.translit.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+            </packageset>
+            <packageset dir="${icu4j.charset.dir}/src">
+                <include name="com/ibm/icu/charset/**"/>
+            </packageset>
+        </javadoc>
+    </target>
+
+    <target name="_docsWithoutJCite" unless="jcite.libs">
+        <javadoc
+                destdir="${doc.dir}"
+                nodeprecatedlist="true"
+                windowtitle="${icu4j.api.doc.window.title}"
+                doctitle="${icu4j.api.doc.title}"
+                header="${icu4j.api.doc.header}"
+                encoding="${java.src.encoding}"
+                docencoding="UTF-8"
+                charset="UTF-8"
+                bottom="&lt;font size=-1&gt;Copyright (c) ${current.year} IBM Corporation and others.&lt;/font&gt;"
+                additionalparam="-breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet"
+                link="${icu4j.api.doc.jdk.link}"
+                source="1.5">
+            <packageset dir="${icu4j.core.dir}/src">
+                <include name="com/ibm/icu/lang/**"/>
+                <include name="com/ibm/icu/math/**"/>
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.collate.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+            </packageset>
+            <packageset dir="${icu4j.translit.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+            </packageset>
+            <packageset dir="${icu4j.charset.dir}/src">
+                <include name="com/ibm/icu/charset/**"/>
+            </packageset>
+        </javadoc>
+    </target>
+
+    <!-- JaCoCo code coverage target -->
+    <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" onerror="ignore">
+        <classpath path="${env.JACOCO_DIR}/lib/jacocoant.jar"/>
+    </taskdef>
+
+    <target name="coverageJaCoCo" depends="jar, tests" description="Run the ICU4J unit tests and generate code coverage report">
+        <property name="jacoco.out.dir" value="${out.dir}/jacoco"/>
+        <property name="jacoco.exec.data.file" value="${jacoco.out.dir}/jacoco.exec"/>
+        <property name="jacoco.report.html.zip" value="${jacoco.out.dir}/report_html.zip"/>
+        <property name="jacoco.report.xml" value="${jacoco.out.dir}/report.xml"/>
+        <property name="jacoco.report.csv" value="${jacoco.out.dir}/report.csv"/>
+
+        <delete dir="${jacoco.out.dir}"/>
+        <mkdir dir="${jacoco.out.dir}"/>
+
+        <jacoco:coverage destfile="${jacoco.exec.data.file}">
+            <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
+                <arg value="-n"/>
+                <jvmarg line="${jvm_options} -ea -Djava.awt.headless=true"/>
+                <classpath>
+                    <pathelement location="${icu4j.jar.file}"/>
+                    <pathelement location="${icu4j-charset.jar.file}"/>
+                    <pathelement location="${icu4j.test-framework.jar}"/>
+                    <pathelement location="${icu4j.core-tests.jar}"/>
+                    <pathelement location="${icu4j.collate-tests.jar}"/>
+                    <pathelement location="${icu4j.charset-tests.jar}"/>
+                    <pathelement location="${icu4j.translit-tests.jar}"/>
+                    <pathelement location="${icu4j.testall.jar}"/>
+            </classpath>
+        </java>
+        </jacoco:coverage>
+
+        <jacoco:report>
+            <executiondata>
+                <file file="${jacoco.exec.data.file}"/>
+            </executiondata>
+
+            <structure name="ICU4J Project">
+                <classfiles>
+                    <fileset dir=".">
+                        <include name="${icu4j.jar.file}"/>
+                        <include name="${icu4j-charset.jar.file}"/>
+                    </fileset>
+                </classfiles>
+                <sourcefiles encoding="UTF-8">
+                    <fileset dir="${icu4j.core.dir}/src"/>
+                    <fileset dir="${icu4j.collate.dir}/src"/>
+                    <fileset dir="${icu4j.currdata.dir}/src"/>
+                    <fileset dir="${icu4j.langdata.dir}/src"/>
+                    <fileset dir="${icu4j.regiondata.dir}/src"/>
+                    <fileset dir="${icu4j.translit.dir}/src"/>
+
+                    <fileset dir="${icu4j.charset.dir}/src"/>
+                </sourcefiles>
+            </structure>
+
+            <html destfile="${jacoco.report.html.zip}"/>
+            <xml destfile="${jacoco.report.xml}"/>
+            <csv destfile="${jacoco.report.csv}"/>
+        </jacoco:report>
+    </target>
+
+    <!-- Clover code coverage target -->
+    <property name="clover.out.dir" value="${out.dir}/clover"/>
+    <property name="clover.jar" location="${env.CLOVER_DIR}/clover.jar"/>
+    <taskdef resource="cloverlib.xml" classpath="${clover.jar}" onerror="ignore"/>
+
+    <target name="codeCoverage" depends="clean" description="Generate code coverage report with clover">
+        <!-- Set up clover -->
+        <mkdir dir="${clover.out.dir}"/>
+        <clover-setup initstring="${clover.out.dir}/clover.db">
+            <files>
+                <exclude name="**/dev/**/*.java"/>
+            </files>
+            <methodContext name="API" regexp="(.* )?public .*"/>
+        </clover-setup>
+
+        <!-- Build components with clover instrumentation -->
+        <ant dir="${icu4j.core.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.collate.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.charset.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.currdata.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.langdata.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.regiondata.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.translit.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.test-framework.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.core-tests.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.collate-tests.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.charset-tests.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.translit-tests.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+        <ant dir="${icu4j.testall.dir}" inheritAll="false" inheritRefs="true">
+            <property name="build.compiler" value="${build.compiler}"/>
+        </ant>
+
+        <!-- Run the test suites -->
+        <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
+            <arg value="-n"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.collate.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.translit.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.core-tests.jar}"/>
+                <pathelement location="${icu4j.collate-tests.jar}"/>
+                <pathelement location="${icu4j.charset-tests.jar}"/>
+                <pathelement location="${icu4j.translit-tests.jar}"/>
+                <pathelement location="${icu4j.testall.jar}"/>
+                <pathelement location="${clover.jar}"/>
+            </classpath>
+        </java>
+
+        <!-- Generate HTML coverage report -->
+        <!-- <clover-html-report outdir="${clover.out.dir}/html" title="ICU4J Code Coverage"/> -->
+        <clover-report>
+            <current outfile="${clover.out.dir}/html" title="ICU4J Code Coverage">
+                <format type="html" filter="assert" />
+            </current>
+        </clover-report>
+    </target>
+
+    <!-- Release management targets -->
+    <target name="checktags" depends="info, build-tools" description="Check API tags before release">
+        <javadoc source="1.5"
+                 encoding="${java.src.encoding}">
+            <packageset dir="${icu4j.core.dir}/src">
+                <include name="com/ibm/icu/lang/**"/>
+                <include name="com/ibm/icu/math/**"/>
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.collate.dir}/src">
+                <include name="com/ibm/icu/**"/>
+            </packageset>
+            <packageset dir="${icu4j.charset.dir}/src">
+                <include name="com/ibm/icu/charset/**"/>
+            </packageset>
+            <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
+        </javadoc>
+    </target>
+
+    <target name="gatherapi" depends="info, build-tools" description="Run API database generator tool">
+        <mkdir dir="${out.dir}"/>
+        <javadoc source="1.5"
+                 encoding="${java.src.encoding}">
+            <packageset dir="${icu4j.core.dir}/src">
+                <include name="com/ibm/icu/lang/**"/>
+                <include name="com/ibm/icu/math/**"/>
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.collate.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.charset.dir}/src">
+                <include name="com/ibm/icu/charset/**"/>
+            </packageset>
+            <packageset dir="${icu4j.translit.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+            </packageset>
+            <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${icu4j.build-tools.jar}">
+                <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
+                <param name="-output" value="${out.dir}/icu4j${api.report.version}.api3"/>
+                <param name="-internal"/>
+                <param name="-version"/>
+                <param name="-gzip"/>
+            </doclet>
+        </javadoc>
+    </target>
+
+    <target name="apireport" depends="info, gatherapi" description="Run API report generator tool">
+        <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
+                classpath="${icu4j.build-tools.jar}"
+                failonerror="true">
+            <arg value="-old:" />
+            <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api3.gz" />
+            <arg value="-new:" />
+            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
+            <arg value="-html" />
+            <arg value="-out:" />
+            <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
+        </java>
+    </target>
+
+    <target name="gatherapiOld" depends="info, build-tools" description="Run API database generator tool (Pre Java 5 style)">
+        <mkdir dir="${out.dir}"/>
+        <javadoc source="1.5"
+                 encoding="${java.src.encoding}">
+            <packageset dir="${icu4j.core.dir}/src">
+                <include name="com/ibm/icu/lang/**"/>
+                <include name="com/ibm/icu/math/**"/>
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.collate.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+                <include name="com/ibm/icu/util/**"/>
+            </packageset>
+            <packageset dir="${icu4j.charset.dir}/src">
+                <include name="com/ibm/icu/charset/**"/>
+            </packageset>
+            <packageset dir="${icu4j.translit.dir}/src">
+                <include name="com/ibm/icu/text/**"/>
+            </packageset>
+            <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIDataOld" path="${icu4j.build-tools.jar}">
+                <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
+                <param name="-output" value="${out.dir}/icu4j${api.report.version}.api"/>
+                <param name="-internal"/>
+                <param name="-gzip"/>
+            </doclet>
+        </javadoc>
+    </target>
+
+    <target name="apireportOld" depends="info, gatherapiOld" description="Run API report generator tool (Pre Java 5 Style)">
+        <java classname="com.ibm.icu.dev.tool.docs.ReportAPI"
+                classpath="${icu4j.build-tools.jar}"
+                failonerror="true">
+            <arg value="-old:" />
+            <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api.gz" />
+            <arg value="-new:" />
+            <arg value="${out.dir}/icu4j${api.report.version}.api.gz" />
+            <arg value="-html" />
+            <arg value="-internal" />
+            <arg value="-out:" />
+            <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" />
+        </java>
+    </target>
+
+    <target name="checkDeprecated" depends="info, build-tools, gatherapi, main"
+        description="Check consistency between javadoc @deprecated and @Deprecated annotation">
+        <java classname="com.ibm.icu.dev.tool.docs.DeprecatedAPIChecker"
+                failonerror="true">
+            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
+            <classpath>
+                <pathelement location="${icu4j.build-tools.jar}"/>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.collate.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.translit.jar}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="draftAPIs" depends="info, gatherapi" description="Run API collector tool and generate draft API report">
+        <java classname="com.ibm.icu.dev.tool.docs.CollectAPI"
+                classpath="${icu4j.build-tools.jar}"
+                failonerror="true">
+            <arg value="-f"/>
+            <arg value="Draft"/>
+            <arg value="-o"/>
+            <arg value="${out.dir}/draftAPIs.html"/>
+            <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" />
+        </java>
+    </target>
+
+    <target name="swatDeprecated" depends="build-tools" description="Convert @deprecated @draft tags to @provisional">
+        <antcall target="_runSwatDeprecated">
+            <param name="swat.deprecated.opt" value="-dep"/>
+        </antcall>
+    </target>
+
+    <target name="swatProvisional" depends="build-tools" description="Convert @provisional tags to @deprecated @draft">
+        <antcall target="_runSwatDeprecated">
+            <param name="swat.deprecated.opt" value="-prov"/>
+        </antcall>
+    </target>
+
+    <target name="_runSwatDeprecated">
+        <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
+                classpath="${icu4j.build-tools.jar}"
+                failonerror="true">
+            <arg value="${swat.deprecated.opt}"/>
+            <arg value="-src"/>
+            <arg value="${icu4j.core.dir}/src"/>
+            <arg value="-dst"/>
+            <arg value="${icu4j.core.dir}/src"/>
+            <arg value="-overwrite"/>
+            <arg value="-verbose"/>
+        </java>
+        <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated"
+                classpath="${icu4j.build-tools.jar}"
+                failonerror="true">
+            <arg value="${swat.deprecated.opt}"/>
+            <arg value="-src"/>
+            <arg value="${icu4j.charset.dir}/src"/>
+            <arg value="-dst"/>
+            <arg value="${icu4j.charset.dir}/src"/>
+            <arg value="-overwrite"/>
+            <arg value="-verbose"/>
+        </java>
+    </target>
+
+    <target name="serialTestData" depends="main, tests">
+        <property name="serial.test.data.dir" value="${out.dir}/serialTestData"/>
+        <delete dir="${serial.test.data.dir}"/>
+        <mkdir dir="${serial.test.data.dir}"/>
+        <java classname="com.ibm.icu.dev.test.serializable.SerializableWriter" fork="yes" failonerror="true">
+            <arg line="${serial.test.data.dir}"/>
+            <classpath>
+                <pathelement location="${icu4j.core.jar}"/>
+                <pathelement location="${icu4j.collate.jar}"/>
+                <pathelement location="${icu4j.charset.jar}"/>
+                <pathelement location="${icu4j.currdata.jar}"/>
+                <pathelement location="${icu4j.langdata.jar}"/>
+                <pathelement location="${icu4j.regiondata.jar}"/>
+                <pathelement location="${icu4j.translit.jar}"/>
+                <pathelement location="${icu4j.test-framework.jar}"/>
+                <pathelement location="${icu4j.core-tests.jar}"/>
+            </classpath>
+        </java>
+        <echo message="Note: The serialization compatibility test data files were"/>
+        <echo message="created in ${serial.test.data.dir}. Once you confirm"/>
+        <echo message="the test runs clean, you should copy the data file directory to"/>
+        <echo message="main/tests/core/src/com/ibm/icu/dev/test/serializable/data."/>
+    </target>
+
+    <!-- Special packaging targets -->
+    <target name="translitIMEJar" depends="info" description="Build transliterator IME 'icutransime.jar' jar file">
+        <property name="translit.ime.out.dir" value="${out.dir}/translit_ime"/>
+ 
+        <mkdir dir="${translit.ime.out.dir}/bin"/>
+        <javac destdir="${translit.ime.out.dir}/bin"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.translit.dir}/src"/>
+            <src path="${icu4j.tools.dir}/src"/>
+            <include name="com/ibm/icu/dev/tool/ime/translit/*.java"/>
+        </javac>
+
+        <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/Transliterator.properties"
+                todir="${translit.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/translit"/>
+
+        <mkdir dir="${translit.ime.out.dir}/lib"/>
+        <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar"
+                compress="true"
+                basedir="${translit.ime.out.dir}/bin"
+                includes="com/ibm/icu/dev/tool/ime/translit/**/*"
+                manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/manifest.stub">
+            <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit" includes="services/*" />
+        </jar>
+    </target>
+
+    <target name="indicIMEJar" depends="info" description="Build indic IME 'icuindicime.jar' jar file">
+        <property name="indic.ime.out.dir" value="${out.dir}/indic_ime"/>
+ 
+        <mkdir dir="${indic.ime.out.dir}/bin"/>
+        <javac destdir="${indic.ime.out.dir}/bin"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.tools.dir}/src"/>
+            <include name="com/ibm/icu/dev/tool/ime/indic/*.java"/>
+        </javac>
+
+        <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/DisplayNames.properties"
+                todir="${indic.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/indic"/>
+
+        <mkdir dir="${indic.ime.out.dir}/lib"/>
+        <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar"
+                compress="true"
+                basedir="${indic.ime.out.dir}/bin"
+                includes="com/ibm/icu/dev/tool/ime/indic/**/*"
+                manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/manifest.stub">
+            <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic" includes="services/*" />
+        </jar>
+    </target>
+
+    <target name="cldrUtil" depends="icu4jJar" description="Build Utilities for CLDR tooling">
+        <mkdir dir="${cldr.util.out.dir}/bin"/>
+        <javac destdir="${cldr.util.out.dir}/bin"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off"
+                classpath="${icu4j.jar.file}">
+
+            <src path="${icu4j.tools.dir}/src"/>
+            <src path="${icu4j.translit-tests.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+
+            <include name="com/ibm/icu/dev/test/TestFmwk.java" />
+            <include name="com/ibm/icu/dev/util/*.java" />
+            <include name="com/ibm/icu/dev/tool/UOption.java" />
+        </javac>
+
+        <mkdir dir="${cldr.util.out.dir}/lib"/>
+        <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar"
+                compress="true"
+                basedir="${cldr.util.out.dir}/bin">
+            <include name="com/ibm/icu/dev/test/*.class"/>
+            <include name="com/ibm/icu/dev/util/*.class"/>
+            <include name="com/ibm/icu/dev/tool/UOption*.class"/>
+        </jar>
+    </target>
+
+    <target name="releaseCLDR" depends="icu4jJar,icu4jSrcJar,cldrUtil" description="Build release files for CLDR tooling">
+        <mkdir dir="${cldr.release.dir}"/>
+        <!-- icu4j.jar -->
+        <copy file="${icu4j.jar.file}" todir="${cldr.release.dir}"/>
+        <!-- icu4j-src.jar -->
+        <copy file="${icu4j-src.jar.file}" todir="${cldr.release.dir}"/>
+        <!-- utilities.jar -->
+        <copy file="${cldr.util.out.dir}/lib/utilities.jar" todir="${cldr.release.dir}"/>
+        <!-- utilities-src.jar -->
+        <jar jarfile="${cldr.release.dir}/utilities-src.jar" compress="true">
+            <fileset dir="${icu4j.test-framework.dir}/${src.dir}">
+                <include name="com/ibm/icu/dev/test/TestFmwk.java"/>
+                <include name="com/ibm/icu/dev/test/*Log*.java"/>
+                <include name="com/ibm/icu/dev/test/TestUtil.java"/>
+                <include name="com/ibm/icu/dev/test/UTF16Util.java"/>
+            </fileset>
+            <fileset dir="${icu4j.test-framework.dir}/${src.dir}" includes="com/ibm/icu/dev/util/*.java"/>
+            <fileset dir="${icu4j.translit-tests.dir}/${src.dir}" includes="com/ibm/icu/dev/util/*.java"/>
+            <fileset dir="${icu4j.tools.dir}/${src.dir}" includes="com/ibm/icu/dev/tool/UOption.java"/>
+       </jar>
+    </target>
+
+    <target name="xliff" description="Build xliff converter tool">
+        <property name="xliff.out.dir" value="${out.dir}/xliff"/>
+
+        <mkdir dir="${xliff.out.dir}/bin"/>
+        <javac destdir="${xliff.out.dir}/bin"
+                source="1.3"
+                target="1.3"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.tools.dir}/src"/>
+            <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
+            <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
+            <include name="com/ibm/icu/dev/tool/UOption.java"/>
+       </javac>
+
+        <mkdir dir="${xliff.out.dir}/lib"/>
+
+        <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar"
+                compress="true"
+                basedir="${icu4j.tools.dir}/src">
+            <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/>
+            <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/>
+            <include name="com/ibm/icu/dev/tool/UOption.java"/>
+        </jar>
+
+        <jar jarfile="${xliff.out.dir}/lib/xliff.jar"
+                compress="true"
+                basedir="${xliff.out.dir}/bin"
+                manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/>
+    </target>
+
+
+    <!-- ICU4J modularization targets -->
+    <property name="module.dir" value="${out.dir}/module"/>
+    <property name="module.bin.dir" value="${module.dir}/bin"/>
+    <property name="module.tests.dir" value="${module.dir}/tests"/>
+    <property name="module.jar.dir" value="${module.dir}/lib"/>
+    <property name="module.jar" value="${module.jar.dir}/icu4j-module.jar"/>
+
+    <target name="moduleJar" description="Create a ICU4J module jar file">
+        <mkdir dir="${module.jar.dir}"/>
+        <jar jarfile="${module.jar}"
+                compress="true"
+                basedir="${module.bin.dir}">
+            <manifest>
+                <attribute name="Built-By" value="${corp}" />
+                <section name="com/ibm/icu">
+                    <attribute name="Specification-Title" value="ICU4J Modularized Build" />
+                    <attribute name="Specification-Version" value="${jar.spec.version}" />
+                    <attribute name="Specification-Vendor" value="ICU" />
+                    <attribute name="Implementation-Title" value=" ICU for Java Module" />
+                    <attribute name="Implementation-Version" value="${jar.impl.version}" />
+                    <attribute name="Implementation-Vendor" value="${corp}" />
+                    <attribute name="Implementation-Vendor-Id" value="com.ibm" />
+                    <attribute name="Copyright-Info" value="${jar.copyright.info}" />
+                    <attribute name="Sealed" value="false" />
+                </section>
+            </manifest>
+        </jar>
+        <copy file="${module.jar}" tofile="icu4j.jar"/>
+    </target>
+
+    <target name="moduleCheck" description="Run tests for a ICU4J module jar">
+        <java classname="com.ibm.icu.dev.test.TestAll" fork="yes" failonerror="true">
+            <arg value="-nothrow"/>
+            <arg value="-nodata"/>
+            <classpath>
+                <pathelement location="${module.jar}"/>
+                <pathelement location="${module.tests.dir}"/>
+            </classpath>
+        </java>
+    </target>
+
+    <patternset id="common.test.sources">
+        <include name="com/ibm/icu/dev/test/TestFmwk.java"/>
+        <include name="com/ibm/icu/dev/test/TestLog.java"/>
+        <include name="com/ibm/icu/dev/test/TestUtil.java"/>
+        <include name="com/ibm/icu/dev/test/UTF16Util.java"/>
+        <include name="com/ibm/icu/dev/test/TestAll.java"/>
+        <include name="com/ibm/icu/dev/test/TestAllCore.java"/>
+    </patternset>
+
+    <!-- Break Iterator -->
+    <target name="breakIterator" depends="_copyFullPropsData" description="Modular build of break iterator services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/impl/UCharacterName.java"/>
+            <include name="com/ibm/icu/impl/data/*Break*.java"/>
+            <include name="com/ibm/icu/lang/**/*.java"/>
+            <include name="com/ibm/icu/text/*BreakIterator*.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+        </javac>
+    </target>
+
+    <target name="breakIteratorTests" depends="breakIterator" description="Modular build of break iterator test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/rbbi/**/*.java"/>
+        </javac>
+
+        <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt"
+                todir="${module.tests.dir}/com/ibm/icu/dev/test/rbbi"/>
+    </target>
+
+    <!-- Calendar -->
+    <target name="calendar" description="Modular build of calendar services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/impl/data/*Holiday*.java"/>
+            <include name="com/ibm/icu/impl/TimeZoneNames*.java"/>
+            <include name="com/ibm/icu/lang/UCharacter.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+            <include name="com/ibm/icu/text/NumberFormatServiceShim.java"/>
+            <include name="com/ibm/icu/util/*Calendar*.java"/>
+        </javac>
+
+        <!-- Calendar does not require Collation data, BreakIterator data -->
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/pnames.icu" />
+                <include name="**/ucase.icu" />
+                <include name="**/unorm.icu" />
+                <include name="**/uprops.icu" />
+                <include name="**/unames.icu" />
+                <include name="**/*.res" />
+                <exclude name="**/coll/*.res" />
+                <exclude name="**/translit/*.res" />
+            </patternset>
+        </unjar>
+        <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/*.res" />
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="calendarTests" depends="calendar" description="Modular build of calendar test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/calendar/**/*.java" />
+        </javac>
+
+        <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
+            <patternset>
+                <include name="**/calendar.res"/>
+            </patternset>
+        </unjar>
+    </target>
+
+    <!-- Collator -->
+    <!-- this module will soon be obsolete, use the collate jar -->
+    <target name="collator" description="Modular build of collator services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac  destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.collate.dir}/src"/>
+
+            <include name="com/ibm/icu/impl/coll/*.java"/>
+            <include name="com/ibm/icu/impl/data/*Break*.java"/>
+            <include name="com/ibm/icu/text/*BreakIterator*.java"/>
+            <include name="com/ibm/icu/text/*Collation*.java"/>
+            <include name="com/ibm/icu/text/*Collator*.java"/>
+            <include name="com/ibm/icu/text/Normalizer.java"/>
+            <include name="com/ibm/icu/text/Replaceable.java"/>
+            <include name="com/ibm/icu/text/ReplaceableString.java"/>
+            <include name="com/ibm/icu/text/UnicodeFilter.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+            <include name="com/ibm/icu/text/UTF16.java"/>
+        </javac>
+
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/*.icu"/>
+                <include name="**/coll/*.res"/>
+                <include name="**/*.brk"/>
+                <include name="**/*.nrm"/>
+                <include name="**/icudt${icu4j.data.version}b/res_index.res"/>
+                <include name="**/keyTypeData.res"/>
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="collatorTests" depends="collator" description="Modular build of collator test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.collate-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/TestAllCollate.java"/>
+            <include name="com/ibm/icu/dev/test/collator/**/*.java"/>
+            <include name="java,com/ibm/icu/dev/test/search/**/*.java"/>
+            <exclude name="com/ibm/icu/dev/test/collator/AlphabeticIndexTest.java"/>
+            <exclude name="com/ibm/icu/dev/test/collator/RandomCollator.java"/>
+            <exclude name="com/ibm/icu/dev/test/collator/IndexCharactersTest.java"/>
+        </javac>
+
+        <copy todir="${module.tests.dir}">
+            <fileset dir="${icu4j.collate-tests.dir}/src">
+                <include name="com/ibm/icu/dev/data/*.txt"/>
+            </fileset>
+        </copy>
+    </target>
+
+    <!-- Compression -->
+    <target name="compression" description="Modular build of compression services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/text/SCSU.java"/>
+            <include name="com/ibm/icu/text/UnicodeCompressor.java"/>
+            <include name="com/ibm/icu/text/UnicodeDecompressor.java"/>
+        </javac>
+    </target>
+
+    <target name="compressionTests" depends="compression" description="Modular build of compression test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/compression/**/*.java"/>
+        </javac>
+    </target>
+
+    <!-- Format -->
+    <target name="format" description="Modular build of format services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/impl/LocaleDisplayNamesImpl.java"/>
+            <include name="com/ibm/icu/impl/TimeZoneNames*.java"/>
+            <include name="com/ibm/icu/lang/UCharacter.java"/>
+            <include name="com/ibm/icu/text/BreakIteratorFactory.java"/>
+            <include name="com/ibm/icu/text/*Collator*.java"/>
+            <include name="com/ibm/icu/text/*Format*.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+            <include name="com/ibm/icu/util/CalendarServiceShim.java"/>
+        </javac>
+
+        <javac srcdir="${icu4j.regiondata.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off"/>
+
+        <javac srcdir="${icu4j.currdata.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off"/>
+
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/*.icu"/>
+                <include name="**/*.brk"/>
+                <include name="**/*.res"/>
+                <exclude name="**/translit/*.res"/>
+            </patternset>
+        </unjar>
+        <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/*.res" />
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="formatTests" depends="format" description="Modular build of format test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/format/**/*.java"/>
+            <exclude name="com/ibm/icu/dev/test/format/GlobalizationPreferencesTest.java"/>
+        </javac>
+
+        <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
+            <patternset>
+                <include name="**/format.res"/>
+            </patternset>
+        </unjar>
+
+        <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/test/format/NumberFormatTestCases.txt"
+                todir="${module.tests.dir}/com/ibm/icu/dev/test/format"/>
+
+    </target>
+
+    <!-- Normalizer -->
+    <target name="normalizer" description="Modular build of normalizer services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/lang/**/*"/>
+            <include name="com/ibm/icu/text/CanonicalIterator.java"/>
+            <include name="com/ibm/icu/text/Normalizer.java"/>
+            <include name="com/ibm/icu/text/Replaceable.java"/>
+            <include name="com/ibm/icu/text/ReplaceableString.java"/>
+            <include name="com/ibm/icu/text/UCharacterIterator.java"/>
+            <include name="com/ibm/icu/text/UForwardCharacterIterator.java"/>
+            <include name="com/ibm/icu/text/UnicodeFilter.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+            <include name="com/ibm/icu/text/UTF16.java"/>
+        </javac>
+
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/ubidi.icu"/>
+                <include name="**/ucase.icu"/>
+                <include name="**/unorm.icu"/>
+                <include name="**/uprops.icu"/>
+                <include name="**/pnames.icu"/>
+                <include name="**/unames.icu"/>
+                <include name="**/*.nrm"/>
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="normalizerTests" depends="normalizer" description="Modular build of normalizer test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/normalizer/**/*.java"/>
+            <exclude name="com/ibm/icu/dev/test/normalizer/TestDeprecatedNormalizerAPI.java"/>
+        </javac>
+
+        <copy todir="${module.tests.dir}">
+            <fileset dir="${icu4j.core-tests.dir}/src">
+                <include name="com/ibm/icu/dev/data/unicode/*.txt"/>
+            </fileset>
+        </copy>
+
+        <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
+            <patternset>
+                <include name="**/testnorm.nrm"/>
+            </patternset>
+        </unjar>
+
+    </target>
+
+    <!-- Character Properties -->
+    <target name="_copyBasicPropsData">
+        <mkdir dir="${module.bin.dir}"/>
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/unorm.icu"/>
+                <include name="**/uprops.icu"/>
+                <include name="**/ubidi.icu"/>
+                <include name="**/ucase.icu"/>
+                <include name="**/pnames.icu"/>
+                <include name="**/unames.icu"/>
+                <include name="**/*.nrm"/>
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="_copyFullPropsData">
+        <mkdir dir="${module.bin.dir}"/>
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/unorm.icu"/>
+                <include name="**/uprops.icu"/>
+                <include name="**/ubidi.icu"/>
+                <include name="**/ucase.icu"/>
+                <include name="**/unames.icu"/>
+                <include name="**/pnames.icu"/>
+                <include name="**/*.res"/>
+                <include name="**/*.brk"/>
+                <include name="**/*.dict"/>
+                <include name="**/*.nrm"/>
+                <exclude name="**/coll/*.res"/>
+                <exclude name="**/translit/*.res"/>
+                <exclude name="**/rbnf/*.res"/>
+            </patternset>
+        </unjar>
+        <unjar src="${icu4j.tzdata.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/*.res" />
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="_propertiesClasses">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/impl/data/*Break*.java"/>
+            <include name="com/ibm/icu/lang/**/*"/>
+            <include name="com/ibm/icu/text/*BreakDictionary*.java"/>
+            <include name="com/ibm/icu/text/*BreakIterator*.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+        </javac>
+    </target>
+
+    <target name="_propertiesTests">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/lang/**/*.java"/>
+            <exclude name="com/ibm/icu/dev/test/lang/TestUScriptRun.java"/>
+        </javac>
+
+        <copy todir="${module.tests.dir}">
+            <fileset dir="${icu4j.core-tests.dir}/src">
+                <include name="com/ibm/icu/dev/data/unicode/SpecialCasing.txt"/>
+                <include name="com/ibm/icu/dev/data/unicode/UnicodeData.txt"/>
+            </fileset>
+        </copy>
+    </target>
+
+    <target name="propertiesBasic" depends="_propertiesClasses, _copyBasicPropsData" description="Modular build of basic character properties"/>
+
+    <target name="propertiesBasicTests" depends="propertiesBasic, _propertiesTests" description="Modular build of basic character properties test suite"/>
+
+    <target name="propertiesFull" depends="_propertiesClasses, _copyFullPropsData" description="Modular build of full character properties"/>
+
+    <target name="propertiesFullTests" depends="propertiesFull, _propertiesTests" description="Modular build of full character properties test suite"/>
+
+    <!-- Transliterator -->
+    <!-- this module will soon be obsolete, use the translit jar -->
+    <target name="transliterator" depends="_propertiesClasses" description="Modular build of transliterator services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac  destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.translit.dir}/src"/>
+
+            <include name="com/ibm/icu/impl/*Iterator*.java"/>
+            <include name="com/ibm/icu/impl/*Property*.java"/>
+            <include name="com/ibm/icu/impl/data/ResourceReader.java"/>
+            <include name="com/ibm/icu/impl/UtilityExtensions.java"/>
+            <include name="com/ibm/icu/text/*Transliterator*.java"/>
+            <include name="com/ibm/icu/text/UnicodeSetIterator.java"/>
+            <include name="com/ibm/icu/text/BreakIteratorFactory.java"/>
+        </javac>
+
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/unorm.icu"/>
+                <include name="**/uprops.icu"/>
+                <include name="**/ubidi.icu"/>
+                <include name="**/ucase.icu"/>
+                <include name="**/unames.icu"/>
+                <include name="**/pnames.icu"/>
+                <include name="**/*.brk"/>
+                <include name="**/*.dict"/>
+                <include name="**/*.nrm"/>
+                <include name="**/brkitr/*.res"/>
+                <include name="**/translit/*.res"/>
+                <include name="**/likelySubtags.res"/>
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="transliteratorTests" depends="transliterator" description="Modular build of transliterator test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.translit-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/TestAllTranslit.java"/>
+            <include name="com/ibm/icu/dev/test/translit/**/*.java"/>
+            <exclude name="com/ibm/icu/dev/test/translit/UnicodeFilterLogic*.java"/>
+        </javac>
+
+        <copy file="${icu4j.translit-tests.dir}/src/com/ibm/icu/dev/test/translit/langtagRegex.txt"
+                todir="${module.tests.dir}/com/ibm/icu/dev/test/translit"/>
+    </target>
+
+    <!-- StringPrep -->
+    <target name="stringPrep" depends="normalizer" description="Modular build of stringprep services">
+        <mkdir dir="${module.bin.dir}"/>
+        <javac srcdir="${icu4j.core.dir}/src"
+                destdir="${module.bin.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                debug="on" deprecation="off">
+            <include name="com/ibm/icu/impl/*StringPrep*.java"/>
+            <include name="com/ibm/icu/text/*IDNA*.java"/>
+            <include name="com/ibm/icu/text/*StringPrep*.java"/>
+        </javac>
+
+        <unjar src="${icu4j.data.jar}" dest="${module.bin.dir}">
+            <patternset>
+                <include name="**/*.spp"/>
+                <include name="**/ubidi.icu"/>
+                <include name="**/ucase.icu"/>
+                <include name="**/unorm.icu"/>
+                <include name="**/uprops.icu"/>
+                <include name="**/pnames.icu"/>
+                <include name="**/unames.icu"/>
+            </patternset>
+        </unjar>
+    </target>
+
+    <target name="stringPrepTests" depends="stringPrep" description="Modular build of stringprep test suite">
+        <mkdir dir="${module.tests.dir}"/>
+        <javac destdir="${module.tests.dir}"
+                source="${javac.source}"
+                target="${javac.target}"
+                encoding="${java.src.encoding}"
+                classpath="${module.bin.dir}"
+                debug="on" deprecation="off">
+            <src path="${icu4j.core.dir}/src"/>
+            <src path="${icu4j.test-framework.dir}/src"/>
+            <src path="${icu4j.core-tests.dir}/src"/>
+            <src path="${icu4j.testall.dir}/src"/>
+
+            <patternset refid="common.test.sources"/>
+            <include name="com/ibm/icu/dev/test/stringprep/**/*.java"/>
+        </javac>
+
+        <unjar src="${icu4j.testdata.jar}" dest="${module.tests.dir}">
+            <patternset>
+                <include name="**/*.spp"/>
+                <include name="**/idna_rules.res"/>
+            </patternset>
+        </unjar>
+
+        <copy file="${icu4j.core-tests.dir}/src/com/ibm/icu/dev/data/IDNATestInput.txt"
+                todir="${module.tests.dir}/com/ibm/icu/dev/data"/>
+    </target>
+
+    <target name="publishToMavenRepo" depends="releaseVer">
+        <!--
+            Publish libraries to Maven repositories, snapshot or release depending on current
+            version in pom.xml.
+
+            Prerequisites
+            
+            1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks
+            2) GnuPG
+            3) Put build-local.properties to specify followings
+            
+                maven-ant-tasks.jar = [location of maven ant tasks jar file]
+                gpg.user = ICU Project
+                gpg.passphrase = [passprase for ICU Project's PGP key]
+
+            4) Maven configuration file ~/.m2/settings.xml
+                <settings>
+                    <servers>
+                        <server>
+                            <id>icu4j-releases</id>
+                            <username>[your JIRA/Nexus ID]</username>
+                            <password>[your JIRA/Nexus password]</password>
+                        </server>
+                        <server>
+                            <id>icu4j-snapshots</id>
+                            <username>[your JIRA/Nexus ID]</username>
+                            <password>[your JIRA/Nexus password]</password>
+                        </server>
+                    </servers>
+                </settings>
+
+            Note: For now, charset.jar and localespi.jar are excluded.
+        -->
+        <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"/>
+        <condition property="no_maven-ant-tasks">
+            <available file="${maven-ant-tasks.jar}"/>
+        </condition>
+        <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/>
+
+        <path id="maven-ant-tasks.classpath" path="${maven-ant-tasks.jar}"/>
+        <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant"
+            classpathref="maven-ant-tasks.classpath"/>
+
+        <xmlproperty file="pom.xml" prefix="pom.xml"/>
+
+        <!-- copy release files -->
+        <property name="maven.release.dir" value="${release.dir}/maven"/>
+
+        <property name="maven.icu4j.jar.versioned.file" value="icu4j-${pom.xml.project.version}.jar"/>
+        <property name="maven.icu4j-src.jar.versioned.file" value="icu4j-${pom.xml.project.version}-src.jar"/>
+        <property name="maven.icu4jdocs.jar.file" value="icu4j-${pom.xml.project.version}-javadoc.jar"/>
+
+        <mkdir dir="${maven.release.dir}"/>
+
+        <copy file="${release.dir}/${icu4j.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4j.jar.versioned.file}"/>
+        <copy file="${release.dir}/${icu4j-src.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}"/>
+        <copy file="${release.dir}/${icu4jdocs.jar.versioned.file}" tofile="${maven.release.dir}/${maven.icu4jdocs.jar.file}"/>
+
+        <copy file="pom.xml" todir="${maven.release.dir}"/>
+
+        <!-- sign release files-->
+        <macrodef name="gpg">
+            <attribute name="file"/>
+            <sequential>
+                <delete file="@{file}.asc" failonerror="false"/>
+                <exec executable="gpg">
+                    <arg value="-u"/>
+                    <arg value="${gpg.user}"/>
+                    <arg value="-ab"/>
+                    <arg value="--passphrase"/>
+                    <arg value="${gpg.passphrase}"/>
+                    <arg value="-o"/>
+                    <arg value="@{file}.asc"/>
+                    <arg value="@{file}"/>
+                </exec>
+            </sequential>
+        </macrodef>
+
+        <gpg file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}"/>
+        <gpg file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}"/>
+        <gpg file="${maven.release.dir}/${maven.icu4jdocs.jar.file}"/>
+
+        <gpg file="${maven.release.dir}/pom.xml"/>
+
+        <!-- deploy files to the repository -->
+        <deploy xmlns="urn:maven-artifact-ant" file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}">
+            <pom file="${maven.release.dir}/pom.xml"/>
+            <attach file="${maven.release.dir}/pom.xml.asc" type="pom.asc"/>
+
+            <attach file="${maven.release.dir}/${maven.icu4j.jar.versioned.file}.asc" type="jar.asc"/>
+            <attach file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}" classifier="sources"/>
+            <attach file="${maven.release.dir}/${maven.icu4j-src.jar.versioned.file}.asc" classifier="sources" type="jar.asc"/>
+            <attach file="${maven.release.dir}/${maven.icu4jdocs.jar.file}" classifier="javadoc"/>
+            <attach file="${maven.release.dir}/${maven.icu4jdocs.jar.file}.asc" classifier="javadoc" type="jar.asc"/>
+        </deploy>
+    </target>
+
+</project>