1 <!-- 2 * 2016 and later: Unicode, Inc. and others. 3 * License & terms of use: http://www.unicode.org/copyright.html#License 4 ******************************************************************************* 5 * Copyright (C) 1997-2016, International Business Machines Corporation and * 6 * others. All Rights Reserved. * 7 ******************************************************************************* 8 --> 9 <project name="icu4j" default="jar" basedir="." 10 xmlns:ivy="antlib:org.apache.ivy.ant" 11 xmlns:jacoco="antlib:org.jacoco.ant"> 12 13 <property file="build-local.properties"/> 14 <property file="build.properties"/> 15 16 <property name="shared.dir" value="main/shared"/> 17 <import file="${shared.dir}/build/common-targets.xml"/> 18 19 <property environment="env"/> 20 21 <!-- icu4j binaries --> 22 <property name="icu4j.jar.file" value="icu4j.jar"/> 23 <property name="icu4jtests.jar.file" value="icu4jtests.jar"/> 24 <property name="icu4j-charset.jar.file" value="icu4j-charset.jar"/> 25 <property name="icu4j-localespi.jar.file" value="icu4j-localespi.jar"/> 26 27 <property name="icu4jdemos.jar.file" value="icu4jdemos.jar"/> 28 29 <!-- icu4j API doc jar file --> 30 <property name="icu4jdocs.jar.file" value="icu4j-docs.jar"/> 31 32 <!-- icu4j src jar files --> 33 <property name="icu4j-src.jar.file" value="icu4j-src.jar"/> 34 <property name="icu4j-charset-src.jar.file" value="icu4j-charset-src.jar"/> 35 <property name="icu4j-localespi-src.jar.file" value="icu4j-localespi-src.jar"/> 36 37 <!-- icu4j source package archive files --> 38 <property name="icu4jsrc.zip.file" value="icu4j.zip"/> 39 <property name="icu4jsrc.tgz.file" value="icu4j.tgz"/> 40 41 <!-- icu4j versioned release files --> 42 <property name="icu4j.jar.versioned.file" value="icu4j-${release.file.ver}.jar"/> 43 <property name="icu4j-charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}.jar"/> 44 <property name="icu4j-localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}.jar"/> 45 46 <property name="icu4j-src.jar.versioned.file" value="icu4j-${release.file.ver}-src.jar"/> 47 <property name="icu4j-charset-src.jar.versioned.file" value="icu4j-charset-${release.file.ver}-src.jar"/> 48 <property name="icu4j-localespi-src.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-src.jar"/> 49 50 <property name="icu4jdocs.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/> 51 52 <!-- <property name="icu4jsrc.zip.versioned.file" value="icu4j-${release.file.ver}.zip"/> --> 53 <property name="icu4jsrc.tgz.versioned.file" value="icu4j-${release.file.ver}.tgz"/> 54 55 <!-- API doc --> 56 <property name="icu4j.api.doc.title" value="ICU4J ${api.doc.version} API Specification"/> 57 <property name="icu4j.api.doc.window.title" value="ICU4J ${api.doc.version}"/> 58 <property name="icu4j.api.doc.header" value="ICU4J ${api.doc.version}"/> 59 60 <property name="icu4j.api.doc.jdk.link" value="http://docs.oracle.com/javase/8/docs/api/"/> 61 <property name="icu4j.api.doc.copyright.footer" value="<font size=-1>Copyright © 2016 Unicode, Inc. and others.</font>"/> 62 63 <!-- API docs for maven repo --> 64 <property name="icu4jdocs.main.jar.versioned.file" value="icu4j-${release.file.ver}-docs.jar"/> 65 <property name="icu4j.main.api.doc.title" value="ICU4J (com.ibm.icu:icu4j) ${api.doc.version} API Specification"/> 66 <property name="icu4j.main.api.doc.window.title" value="ICU4J (com.ibm.icu:icu4j) ${api.doc.version}"/> 67 <property name="icu4j.main.api.doc.header" value="ICU4J (com.ibm.icu:icu4j) ${api.doc.version}"/> 68 69 <property name="icu4jdocs.charset.jar.versioned.file" value="icu4j-charset-${release.file.ver}-docs.jar"/> 70 <property name="icu4j.charset.api.doc.title" value="ICU4J Charset (com.ibm.icu:icu4j-charset) ${api.doc.version} API Specification"/> 71 <property name="icu4j.charset.api.doc.window.title" value="ICU4J Charset (com.ibm.icu:icu4j-charset) ${api.doc.version}"/> 72 <property name="icu4j.charset.api.doc.header" value="ICU4J Charset (com.ibm.icu:icu4j-charset) ${api.doc.version}"/> 73 74 <property name="icu4jdocs.localespi.jar.versioned.file" value="icu4j-localespi-${release.file.ver}-docs.jar"/> 75 <property name="icu4j.locspi.api.doc.title" value="ICU4J Locale SPI Provider (com.ibm.icu:icu4j-localespi) ${api.doc.version} API Specification"/> 76 <property name="icu4j.locspi.api.doc.window.title" value="ICU4J Locale SPI Provider (com.ibm.icu:icu4j-localespi) ${api.doc.version}"/> 77 <property name="icu4j.locspi.api.doc.header" value="ICU4J Locale SPI Provider (com.ibm.icu:icu4j-localespi) ${api.doc.version}"/> 78 79 80 <!-- directories --> 81 <property name="release.dir" value="release"/> 82 <property name="doc.dir" value="doc"/> 83 <property name="maven.doc.base.dir" value="${out.dir}/mavendoc"/> 84 <property name="cldr.util.out.dir" value="${out.dir}/cldr_util"/> 85 <property name="cldr.release.dir" value="release_cldr"/> 86 <property name="external-jars" value="lib"/> 87 88 <!-- Java version check --> 89 <condition property="is.java6"> 90 <matches string="${java.version}" pattern="1\.6\.\d.*"/> 91 </condition> 92 93 <condition property="is.java7"> 94 <matches string="${java.version}" pattern="1\.7\.\d.*"/> 95 </condition> 96 97 <condition property="is.java8"> 98 <matches string="${java.version}" pattern="1\.8\.\d.*"/> 99 </condition> 100 101 <condition property="is.java9"> 102 <matches string="${java.version}" pattern="9((-.|\.\d).*)?"/> 103 </condition> 104 105 <condition property="is.java8.plus"> 106 <or> 107 <isset property="is.java8"/> 108 <isset property="is.java9"/> 109 </or> 110 </condition> 111 112 <condition property="is.java7.plus"> 113 <or> 114 <isset property="is.java7"/> 115 <isset property="is.java8.plus"/> 116 </or> 117 </condition> 118 119 <condition property="is.java6.plus"> 120 <or> 121 <isset property="is.java6"/> 122 <isset property="is.java7.plus"/> 123 </or> 124 </condition> 125 <fail message="The JDK version is too old or unknown."> 126 <condition> 127 <not> 128 <isset property="is.java6.plus"/> 129 </not> 130 </condition> 131 </fail> 132 133 134 <!-- Build environment info --> 135 <property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/> 136 <target name="info" description="Display the build environment information"> 137 <echo message="----- Build Environment Information -------------------"/> 138 <echo message="Java Home: ${java.home}"/> 139 <echo message="Java Version: ${java.version}"/> 140 <echo message="Ant Home: ${ant.home}"/> 141 <echo message="Ant Version: ${ant.version}"/> 142 <echo message="OS: ${os.name}"/> 143 <echo message="OS Version: ${os.version}"/> 144 <echo message="OS Arch: ${os.arch}"/> 145 <echo message="Host: ${env.COMPUTERNAME}"/> 146 <echo message="-------------------------------------------------------"/> 147 </target> 148 149 <target name="clean" description="Clean up build outputs"> 150 <ant dir="${icu4j.core.dir}" target="clean" inheritAll="false"/> 151 <ant dir="${icu4j.collate.dir}" target="clean" inheritAll="false"/> 152 <ant dir="${icu4j.charset.dir}" target="clean" inheritAll="false"/> 153 <ant dir="${icu4j.currdata.dir}" target="clean" inheritAll="false"/> 154 <ant dir="${icu4j.langdata.dir}" target="clean" inheritAll="false"/> 155 <ant dir="${icu4j.localespi.dir}" target="clean" inheritAll="false"/> 156 <ant dir="${icu4j.regiondata.dir}" target="clean" inheritAll="false"/> 157 <ant dir="${icu4j.translit.dir}" target="clean" inheritAll="false"/> 158 <ant dir="${icu4j.test-framework.dir}" target="clean" inheritAll="false"/> 159 <ant dir="${icu4j.core-tests.dir}" target="clean" inheritAll="false"/> 160 <ant dir="${icu4j.collate-tests.dir}" target="clean" inheritAll="false"/> 161 <ant dir="${icu4j.charset-tests.dir}" target="clean" inheritAll="false"/> 162 <ant dir="${icu4j.localespi-tests.dir}" target="clean" inheritAll="false"/> 163 <ant dir="${icu4j.packaging-tests.dir}" target="clean" inheritAll="false"/> 164 <ant dir="${icu4j.translit-tests.dir}" target="clean" inheritAll="false"/> 165 <ant dir="${icu4j.build-tools.dir}" target="clean" inheritAll="false"/> 166 <ant dir="${icu4j.tools.dir}" target="clean" inheritAll="false"/> 167 <ant dir="${icu4j.demos.dir}" target="clean" inheritAll="false"/> 168 <ant dir="${icu4j.samples.dir}" target="clean" inheritAll="false"/> 169 <ant dir="${icu4j.perf-tests.dir}" target="clean" inheritAll="false"/> 170 171 <!-- delete all .jar files root directory --> 172 <delete> 173 <fileset dir="." includes="icu4j*.jar"/> 174 </delete> 175 176 <delete dir="${release.dir}"/> 177 <delete dir="${doc.dir}"/> 178 <delete dir="${out.dir}"/> 179 <delete dir="${module.dir}"/> 180 <delete dir="${cldr.release.dir}"/> 181 182 <available file="eclipse-build" type="dir" property="eclipse-build.dir.present"/> 183 <antcall target="_clean.eclipse-build"/> 184 </target> 185 186 <target name="_clean.eclipse-build" if="eclipse-build.dir.present"> 187 <ant dir="eclipse-build" target="clean" inheritAll="false"/> 188 </target> 189 190 <target name="ivy-clean"> 191 <ivy:cleancache/> 192 </target> 193 194 <!-- Ivy Targets --> 195 <property name="ivy.install.version" value="2.1.0-rc2" /> 196 <condition property="ivy.home" value="${env.IVY_HOME}"> 197 <isset property="env.IVY_HOME" /> 198 </condition> 199 <property name="ivy.home" value="${user.home}/.ant" /> 200 <property name="ivy.jar.dir" value="${ivy.home}/lib" /> 201 <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" /> 202 203 <target name="download-ivy" unless="offline"> 204 <mkdir dir="${ivy.jar.dir}"/> 205 <!-- download Ivy from web site so that it can be used even without any special installation --> 206 <get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" 207 dest="${ivy.jar.file}" usetimestamp="true"/> 208 </target> 209 210 <target name="init-ivy" depends="download-ivy"> 211 <!-- try to load ivy here from ivy home, in case the user has not already dropped 212 it into ant's lib dir (note that the latter copy will always take precedence). 213 We will not fail as long as local lib dir exists (it may be empty) and 214 ivy is in at least one of ant's lib dir or the local lib dir. --> 215 <path id="ivy.lib.path"> 216 <fileset dir="${ivy.jar.dir}" includes="*.jar"/> 217 </path> 218 <taskdef resource="org/apache/ivy/ant/antlib.xml" 219 uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/> 220 </target> 221 222 <target name="test-init-junit-dependency" depends="init-ivy"> 223 <ivy:retrieve/> 224 </target> 225 226 <target name="init" depends="test-init-junit-dependency" 227 description="Initialize the environment for build and test. May require internet access."/> 228 229 <target name="_classifytests"> 230 <condition property="testaction.run"> 231 <isset property="testclass"/> 232 </condition> 233 <condition property="testaction.class"> 234 <and> 235 <isset property="testclass"/> 236 <not><isset property="testnames"/></not> 237 </and> 238 </condition> 239 <condition property="testaction.tests"> 240 <and> 241 <isset property="testclass"/> 242 <isset property="testnames"/> 243 </and> 244 </condition> 245 <condition property="testaction.error"> 246 <and> 247 <not><isset property="testclass"/></not> 248 <isset property="testnames"/> 249 </and> 250 </condition> 251 <condition property="testaction.all"> 252 <and> 253 <not><isset property="testclass"/></not> 254 <not><isset property="testnames"/></not> 255 </and> 256 </condition> 257 </target> 258 259 <target name="checkTest" depends="_classifytests, tests, runallTests, noTests" if="testaction.run" description="Run only the specified tests of the specified test class or, if no arguments are given, the standard ICU4J test suite."> 260 <sequential> 261 <delete dir="${junit.out.dir}/checkTest"/> 262 <mkdir dir="${junit.out.dir}/checkTest"/> 263 264 <junit printsummary="yes"> 265 <classpath> 266 <path refid="junit.jars"/> 267 <path refid="junit.icu.jars"/> 268 </classpath> 269 <test name="${testclass}" todir="${junit.out.dir}/checkTest" outfile="checkTest" methods="${testnames}" if="testaction.tests"> 270 <formatter type="xml"/> 271 </test> 272 <test name="${testclass}" todir="${junit.out.dir}/checkTest" outfile="checkTest" if="testaction.class"> 273 <formatter type="xml"/> 274 </test> 275 </junit> 276 277 <junitreport todir="${junit.out.dir}/checkTest"> 278 <fileset dir="${junit.out.dir}/checkTest"> 279 <include name="checkTest.xml"/> 280 </fileset> 281 <report format="frames" todir="${junit.out.dir}/checkTest/html"/> 282 </junitreport> 283 284 <fail message="test failed: @{testdir}" if="@{failure-status}" /> 285 </sequential> 286 </target> 287 288 <target name="runallTests" if="testaction.all"> 289 <antcall target="allTests"/> 290 </target> 291 292 <target name="allTests" depends="check"/> 293 294 <target name="noTests" if="testaction.error"> 295 <echo>Execute JUnit testing using -Dtestclass='class-name' -Dtestnames='test-name1>, test-name2, ...'</echo> 296 </target> 297 298 <!-- Junit Targets --> 299 <macrodef name="icu-junit"> 300 <attribute name="test-name"/> 301 <attribute name="jvm-options" default=""/> 302 <attribute name="classpath" default="junit.icu.jars"/> 303 <attribute name="failure-status" default="ignore"/> 304 <element name="junit-fileset"/> 305 <element name="junit-parameters" optional="true"/> 306 <sequential> 307 <echo message="@{jvm-options}"/> 308 <!--set the property - if it was set before it won't override--> 309 <property name="user-jvm-options" value=""/> 310 <property name="internal-jvm-options" value=""/> 311 <delete dir="${junit.out.dir}/@{test-name}"/> 312 <mkdir dir="${junit.out.dir}/@{test-name}"/> 313 314 <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no" 315 failureproperty="@{failure-status}" tempdir="${junit.out.dir}"> 316 <jvmarg value="-Xss4m"/> 317 <jvmarg value="-ea"/> 318 <jvmarg value="-Djava.awt.headless=true"/> 319 <jvmarg line="${user-jvm-options}"/> 320 <jvmarg line="@{jvm-options}"/> 321 <jvmarg line="${internal-jvm-options}"/> 322 <junit-parameters/> 323 <classpath> 324 <path refid="junit.jars"/> 325 <path refid="@{classpath}"/> 326 </classpath> 327 <formatter type="plain"/> 328 <formatter type="xml"/> 329 330 <batchtest todir="${junit.out.dir}/@{test-name}"> 331 <junit-fileset/> 332 </batchtest> 333 </junit> 334 335 <junitreport tofile="@{test-name}-TestSuite.xml" todir="${junit.out.dir}/@{test-name}"> 336 <fileset dir="${junit.out.dir}/@{test-name}"> 337 <include name="*.xml"/> 338 </fileset> 339 <report format="frames" todir="${junit.out.dir}/@{test-name}/html"/> 340 </junitreport> 341 342 <fail message="test failed: @{test-name}" if="@{failure-status}" /> 343 344 </sequential> 345 </macrodef> 346 347 <property name="junit.out.dir" value="${out.dir}/junit-results"/> 348 <property name="junit.core.jar" value="${external-jars}/junit-4.12.jar"/> 349 <property name="junit.hamcrest.jar" value="${external-jars}/hamcrest-core-1.3.jar"/> 350 <property name="junit.junitparams.jar" value="${external-jars}/JUnitParams-1.0.5.jar"/> 351 <path id="junit.jars"> 352 <pathelement path="${junit.core.jar}"/> 353 <pathelement path="${junit.hamcrest.jar}"/> 354 <pathelement path="${junit.junitparams.jar}"/> 355 </path> 356 357 <path id="junit.icu.jars"> 358 <pathelement location="${icu4j.core.jar}"/> 359 <pathelement location="${icu4j.collate.jar}"/> 360 <pathelement location="${icu4j.charset.jar}"/> 361 <pathelement location="${icu4j.currdata.jar}"/> 362 <pathelement location="${icu4j.langdata.jar}"/> 363 <pathelement location="${icu4j.regiondata.jar}"/> 364 <pathelement location="${icu4j.translit.jar}"/> 365 <pathelement location="${icu4j.test-framework.jar}"/> 366 <pathelement location="${icu4j.core-tests.jar}"/> 367 <pathelement location="${icu4j.collate-tests.jar}"/> 368 <pathelement location="${icu4j.charset-tests.jar}"/> 369 <pathelement location="${icu4j.translit-tests.jar}"/> 370 <pathelement location="${icu4j.localespi-tests.jar}"/> 371 <pathelement location="${icu4j.packaging-tests.jar}"/> 372 <pathelement location="${icu4j.regiondata.jar}"/> 373 </path> 374 375 <path id="junit.icu.release.jars"> 376 <pathelement location="${icu4j.jar.file}"/> 377 <pathelement location="${icu4j.charset.jar}"/> 378 <pathelement location="${icu4jtests.jar.file}"/> 379 </path> 380 381 <path id="junit.icu.localespi-tests.jars"> 382 <pathelement location="${icu4j.test-framework.jar}"/> 383 <pathelement location="${icu4j.localespi-tests.jar}"/> 384 </path> 385 386 <!--Class names that will be included/excluded as tests--> 387 <patternset id="test-classes-patternset"> 388 <include name="**/*Test*"/> 389 <exclude name="**/*Fmwk*"/> 390 <exclude name="**/*TestUtility*"/> 391 <exclude name="**/*TestHelper*"/> 392 <exclude name="**/*TestCase*"/> 393 <exclude name="**/*TestData*"/> 394 <exclude name="**/*TestSample*"/> 395 <exclude name="**/*$*.class"/> 396 <exclude name="**/data/**"/> 397 <exclude name="com/ibm/icu/dev/test/*"/> 398 </patternset> 399 400 <!--Class names that will be included/excluded as tests for time zone check--> 401 <patternset id="timeZoneCheck-patternset"> 402 <include name="**/TimeZoneFormatTest*"/> 403 <exclude name="**/*$*.class"/> 404 </patternset> 405 406 <!--Class names that will be included/excluded as tests for packaging check--> 407 <patternset id="packagingCheck-patternset"> 408 <include name="**/TestLocaleNamePackaging*"/> 409 <exclude name="**/*$*.class"/> 410 </patternset> 411 412 <!--Class names that will be included/excluded as tests for locale SPI check--> 413 <patternset id="localespiCheck-patternset"> 414 <include name="**/*Test*"/> 415 <exclude name="com/ibm/icu/dev/test/localespi/TestUtil.*"/> 416 <exclude name="**/*$*.class"/> 417 </patternset> 418 419 <!-- meta build targets --> 420 <target name="all" depends="info, main, tests, build-tools, tools, demos, samples, perf-tests, jar, docs" description="Build all primary targets"/> 421 <target name="main" depends="info, core, collate, charset, currdata, langdata, regiondata, translit, localespi" description="Build ICU4J runtime library classes"/> 422 <target name="tests" depends="info, core-tests, charset-tests, collate-tests, packaging-tests, translit-tests, localespi-tests" description="Build ICU4J test classes"/> 423 424 <target name="secure" depends="icu4jJar" description="(Deprecated)Build ICU4J API and test classes for running the ICU4J test suite with Java security manager enabled"/> 425 426 <!-- Check to see if JVM_OPTIONS enviroment variable is set. This can be use to set the heap size. --> 427 <property name="env.JVM_OPTIONS" value=""/> 428 <property name="jvm_options" value="${env.JVM_OPTIONS}"/> 429 430 <target name="_check"> 431 <parallel> 432 <antcall target="_charsetCheck"/> 433 <antcall target="_collateCheck"/> 434 <antcall target="_coreCheck"/> 435 <antcall target="_translitCheck"/> 436 </parallel> 437 </target> 438 439 <target name="exhaustiveCheck" description="Run the standard ICU4J test suite in exhaustive mode"> 440 <antcall target="check"> 441 <param name="internal-jvm-options" value="-DICU.exhaustive=10"/> 442 </antcall> 443 <fail message="test failed" if="icu-junit-failure" /> 444 </target> 445 446 <target name="check" depends="main, tests" description="Run the standard ICU4J test suite"> 447 <antcall target="_check"/> 448 <fail message="test failed" if="icu-junit-failure" /> 449 </target> 450 451 <target name="runTest" description="Run the standard ICU4J test suite without calling any other build targets"> 452 <antcall target="_check"/> 453 <fail message="test failed" if="icu-junit-failure" /> 454 </target> 455 456 <target name="releaseJarCheck" depends="jar, icu4jtestsJar" description="Run the ICU4J test suite with ICU4J release jar files"> 457 <icu-junit test-name="releaseJarCheck" 458 classpath="junit.icu.release.jars" 459 failure-status="icu-junit-failure"> 460 <junit-fileset> 461 <zipfileset src="${icu4jtests.jar.file}"> 462 <patternset refid="test-classes-patternset"/> 463 </zipfileset> 464 </junit-fileset> 465 </icu-junit> 466 <fail message="test failed - icu4j/icu4j-charset" if="icu-junit-failure" /> 467 468 <property name="test.java.ext.dir" value="${out.dir}/localespi-ext"/> 469 <delete dir="${test.java.ext.dir}"/> 470 <mkdir dir="${test.java.ext.dir}"/> 471 <copy file="${icu4j-localespi.jar.file}" todir="${test.java.ext.dir}"/> 472 <copy file="${icu4j.jar.file}" todir="${test.java.ext.dir}"/> 473 474 <icu-junit test-name="releaseJarCheck-localespi" 475 classpath="junit.icu.localespi-tests.jars" 476 jvm-options="-Djava.ext.dirs=${test.java.ext.dir}${path.separator}${java.ext.dirs}" 477 failure-status="icu-junit-failure"> 478 <junit-fileset> 479 <fileset dir="${icu4j.localespi-tests.dir}/${bin.dir}"> 480 <patternset refid="localespiCheck-patternset"/> 481 </fileset> 482 </junit-fileset> 483 </icu-junit> 484 <fail message="test failed - icu4j-localespi" if="icu-junit-failure" /> 485 </target> 486 487 <target name="timeZoneCheck" depends="main, tests" description="Run the complete test for TimeZoneRoundTripAll"> 488 <icu-junit test-name="timeZoneCheck" 489 jvm-options="-DTimeZoneRoundTripAll=true" 490 failure-status="icu-junit-failure"> 491 <junit-fileset> 492 <fileset dir="${icu4j.core-tests.dir}/${bin.dir}"> 493 <patternset refid="timeZoneCheck-patternset"/> 494 </fileset> 495 </junit-fileset> 496 </icu-junit> 497 <fail message="test failed" if="icu-junit-failure" /> 498 </target> 499 500 <target name="jdktzCheck" description="Run the standard ICU4J test suite with JDK TimeZone"> 501 <antcall target="check"> 502 <param name="internal-jvm-options" value="-Dcom.ibm.icu.util.TimeZone.DefaultTimeZoneType=JDK"/> 503 </antcall> 504 </target> 505 506 <path id="junit.icu.jars.PackagingCheckNoLangData"> 507 <pathelement location="${icu4j.core.jar}"/> 508 <pathelement location="${icu4j.charset.jar}"/> 509 <pathelement location="${icu4j.test-framework.jar}"/> 510 <pathelement location="${icu4j.packaging-tests.jar}"/> 511 <pathelement location="${icu4j.regiondata.jar}"/> 512 </path> 513 514 <path id="junit.icu.jars.PackagingCheckNoRegionData"> 515 <pathelement location="${icu4j.core.jar}"/> 516 <pathelement location="${icu4j.charset.jar}"/> 517 <pathelement location="${icu4j.test-framework.jar}"/> 518 <pathelement location="${icu4j.packaging-tests.jar}"/> 519 <pathelement location="${icu4j.langdata.jar}"/> 520 </path> 521 522 <path id="junit.icu.jars.PackagingCheckNoLangNorRegionData"> 523 <pathelement location="${icu4j.core.jar}"/> 524 <pathelement location="${icu4j.charset.jar}"/> 525 <pathelement location="${icu4j.test-framework.jar}"/> 526 <pathelement location="${icu4j.packaging-tests.jar}"/> 527 </path> 528 529 <target name="_packagingCheckNoLangData"> 530 <!-- region data but no language data --> 531 <icu-junit test-name="packaging-NoLangData" 532 classpath="junit.icu.jars.PackagingCheckNoLangData" 533 failure-status="icu-junit-failure"> 534 <junit-fileset> 535 <fileset dir="${icu4j.packaging-tests.dir}/${bin.dir}"> 536 <patternset refid="packagingCheck-patternset"/> 537 </fileset> 538 </junit-fileset> 539 </icu-junit> 540 </target> 541 542 <target name="_packagingCheckNoRegionData"> 543 <!-- language data but no region data --> 544 <icu-junit test-name="packaging-NoRegionData" 545 classpath="junit.icu.jars.PackagingCheckNoRegionData" 546 failure-status="icu-junit-failure"> 547 <junit-fileset> 548 <fileset dir="${icu4j.packaging-tests.dir}/${bin.dir}"> 549 <patternset refid="packagingCheck-patternset"/> 550 </fileset> 551 </junit-fileset> 552 </icu-junit> 553 </target> 554 555 <target name="_packagingCheckNoLangNorRegionData"> 556 <!-- neither region nor language data --> 557 <icu-junit test-name="packaging-NoLangNorRegionData" 558 classpath="junit.icu.jars.PackagingCheckNoLangNorRegionData" 559 failure-status="icu-junit-failure"> 560 <junit-fileset> 561 <fileset dir="${icu4j.packaging-tests.dir}/${bin.dir}"> 562 <patternset refid="packagingCheck-patternset"/> 563 </fileset> 564 </junit-fileset> 565 </icu-junit> 566 </target> 567 568 <target name="packagingCheck" depends="info, core, packaging-tests" description="Run packaging tests"> 569 <antcall target="_packagingCheckNoLangData"/> 570 <antcall target="_packagingCheckNoRegionData"/> 571 <antcall target="_packagingCheckNoLangNorRegionData"/> 572 <fail message="test failed" if="icu-junit-failure" /> 573 </target> 574 575 <target name="_coreCheck"> 576 <icu-junit test-name="core" failure-status="icu-junit-failure"> 577 <junit-fileset> 578 <fileset dir="${icu4j.core-tests.dir}/${bin.dir}"> 579 <patternset refid="test-classes-patternset"/> 580 </fileset> 581 </junit-fileset> 582 </icu-junit> 583 </target> 584 585 <target name="coreCheck" depends="info, core, currdata, langdata, regiondata, core-tests" description="Run only the core tests"> 586 <antcall target="_coreCheck"/> 587 <fail message="test failed" if="icu-junit-failure" /> 588 </target> 589 590 <target name="_charsetCheck"> 591 <icu-junit test-name="charset" failure-status="icu-junit-failure"> 592 <junit-fileset> 593 <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}"> 594 <patternset refid="test-classes-patternset"/> 595 </fileset> 596 </junit-fileset> 597 </icu-junit> 598 </target> 599 600 <target name="charsetCheck" depends="info, core, charset, currdata, langdata, regiondata, core-tests, charset-tests" description="Run only the charset tests"> 601 <antcall target="_charsetCheck"/> 602 <fail message="test failed" if="icu-junit-failure" /> 603 </target> 604 605 <target name="_collateCheck"> 606 <icu-junit test-name="collate" failure-status="icu-junit-failure"> 607 <junit-fileset> 608 <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}"> 609 <patternset refid="test-classes-patternset"/> 610 </fileset> 611 </junit-fileset> 612 </icu-junit> 613 </target> 614 615 <target name="collateCheck" depends="info, core, collate, currdata, langdata, regiondata, core-tests, collate-tests" description="Run only the collation tests"> 616 <antcall target="_collateCheck"/> 617 <fail message="test failed" if="icu-junit-failure" /> 618 </target> 619 620 <target name="_translitCheck"> 621 <icu-junit test-name="translit" failure-status="icu-junit-failure"> 622 <junit-fileset> 623 <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}"> 624 <patternset refid="test-classes-patternset"/> 625 </fileset> 626 </junit-fileset> 627 </icu-junit> 628 </target> 629 630 <target name="translitCheck" depends="info, core, translit, translit-tests" description="Run the ICU4J Translit test suite"> 631 <antcall target="_translitCheck"/> 632 <fail message="test failed" if="icu-junit-failure" /> 633 </target> 634 635 <target name="_localespiCheck"> 636 <icu-junit test-name="localespi" 637 classpath="junit.icu.localespi-tests.jars" 638 jvm-options="-Djava.ext.dirs=${icu4j.core.dir}/${jar.dir}${path.separator}${icu4j.localespi.dir}/${jar.dir}${path.separator}${icu4j.collate.dir}/${jar.dir}${path.separator}${icu4j.currdata.dir}/${jar.dir}${path.separator}${icu4j.langdata.dir}/${jar.dir}${path.separator}${icu4j.regiondata.dir}/${jar.dir}${path.separator}${java.ext.dirs}" 639 failure-status="icu-junit-failure"> 640 <junit-fileset> 641 <fileset dir="${icu4j.localespi-tests.dir}/${bin.dir}"> 642 <patternset refid="localespiCheck-patternset"/> 643 </fileset> 644 </junit-fileset> 645 </icu-junit> 646 </target> 647 648 <target name="localespiCheck" if="is.java6.plus" depends="info, localespi, localespi-tests" description="Run the ICU4J Locale SPI test suite"> 649 <antcall target="_localespiCheck"/> 650 <fail message="test failed" if="icu-junit-failure" /> 651 </target> 652 653 <target name="secureCheck" depends="jar, icu4jtestsJar" description="Run the ICU4J test suite with Java security manager enabled"> 654 <icu-junit test-name="secureCheck" 655 classpath="junit.icu.release.jars" 656 jvm-options="-Djava.security.manager -Djava.security.policy=${user.dir}/${shared.dir}/data/security.policy" 657 failure-status="icu-junit-failure"> 658 <junit-fileset> 659 <zipfileset src="${icu4jtests.jar.file}"> 660 <patternset refid="test-classes-patternset"/> 661 </zipfileset> 662 </junit-fileset> 663 </icu-junit> 664 <fail message="test failed" if="icu-junit-failure" /> 665 </target> 666 667 <!-- jar targets --> 668 <target name="jar" depends="icu4jJar, charset, localespi" description="Build ICU4J runtime library jar files"> 669 <copy file="${icu4j.charset.jar}" tofile="${icu4j-charset.jar.file}"/> 670 <copy file="${icu4j.localespi.jar}" tofile="${icu4j-localespi.jar.file}" failonerror="false"/> 671 </target> 672 673 <target name="icu4jJar" depends="info, core, collate, currdata, langdata, regiondata, translit" description="Build ICU4J all-in-one core jar"> 674 <mkdir dir="${out.dir}"/> 675 676 <!-- manifest --> 677 <copy file="manifest.stub" todir="${out.dir}"> 678 <filterset> 679 <filter token="SPECVERSION" value="${jar.spec.version}"/> 680 <filter token="IMPLVERSION" value="${jar.impl.version}"/> 681 <filter token="COPYRIGHT" value="${jar.copyright.info}"/> 682 <filter token="EXECENV" value="${jar.exec.env}"/> 683 </filterset> 684 </copy> 685 686 <!-- jar --> 687 <jar jarfile="${icu4j.jar.file}" 688 compress="true" 689 manifest="${out.dir}/manifest.stub"> 690 <fileset dir="${icu4j.core.dir}/${bin.dir}" includes="**/*"/> 691 <fileset dir="${icu4j.collate.dir}/${bin.dir}" includes="**/*"/> 692 <fileset dir="${icu4j.currdata.dir}/${bin.dir}" includes="**/*"/> 693 <fileset dir="${icu4j.langdata.dir}/${bin.dir}" includes="**/*"/> 694 <fileset dir="${icu4j.regiondata.dir}/${bin.dir}" includes="**/*"/> 695 <fileset dir="${icu4j.translit.dir}/${bin.dir}" includes="**/*"/> 696 <fileset dir="${shared.dir}/licenses"> 697 <include name="LICENSE"/> 698 </fileset> 699 </jar> 700 </target> 701 702 <target name="icu4jSrcJar" description="Build icu4j-src.jar"> 703 <jar jarfile="${icu4j-src.jar.file}" 704 compress="true"> 705 <fileset dir="${icu4j.core.dir}/${src.dir}" includes="**/*.java"/> 706 <fileset dir="${icu4j.collate.dir}/${src.dir}" includes="**/*.java"/> 707 <fileset dir="${icu4j.currdata.dir}/${src.dir}" includes="**/*.java"/> 708 <fileset dir="${icu4j.langdata.dir}/${src.dir}" includes="**/*.java"/> 709 <fileset dir="${icu4j.regiondata.dir}/${src.dir}" includes="**/*.java"/> 710 <fileset dir="${icu4j.translit.dir}/${src.dir}" includes="**/*.java"/> 711 <fileset dir="${shared.dir}/licenses"> 712 <include name="LICENSE"/> 713 </fileset> 714 </jar> 715 </target> 716 717 <target name="icu4jtestsJar" depends="info, tests" description="Build ICU4J all-in-one test jar"> 718 <jar jarfile="${icu4jtests.jar.file}" 719 compress="true"> 720 <fileset dir="${icu4j.test-framework.dir}/${bin.dir}" includes="**/*"/> 721 <fileset dir="${icu4j.core-tests.dir}/${bin.dir}" includes="**/*"/> 722 <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}" includes="**/*"/> 723 <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}" includes="**/*"/> 724 <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}" includes="**/*"/> 725 </jar> 726 </target> 727 728 <target name="jarDemos" depends="icu4jJar, demos" description="Build ICU4J demo jar file"> 729 <copy file="${icu4j.demos.jar}" tofile="${icu4jdemos.jar.file}"/> 730 </target> 731 732 733 <!-- release targets --> 734 <target name="_check_config_for_release" depends="_checkJCite"> 735 <condition property="release.build.config.ok"> 736 <and> 737 <isset property="is.java8"/> 738 <isset property="java6.bootclasspath"/> 739 <isset property="jcite.libs"/> 740 </and> 741 </condition> 742 </target> 743 744 <target name="_verify_config_for_release" depends="_check_config_for_release" unless="release.build.config.ok"> 745 <condition property="disp.is.java8" value="${java.version}" else="${java.version} - Must be 1.8!"> 746 <isset property="is.java8"/> 747 </condition> 748 <condition property="disp.java6.bootclasspath" value="${java6.bootclasspath}" else="Not Defined!"> 749 <isset property="java6.bootclasspath"/> 750 </condition> 751 <condition property="disp.jcite.libs" value="${jcite.libs}" else="Not Defined!"> 752 <isset property="jcite.libs"/> 753 </condition> 754 755 <echo message="################################################################"/> 756 <echo message="[WARNING] Insufficient Build Configuration for ICU4J Release"/> 757 <echo message="JDK Tools Version: ${disp.is.java8}"/> 758 <echo message="JRE 6 System Library Path: ${disp.java6.bootclasspath}"/> 759 <echo message="JCite Library Path: ${disp.jcite.libs}"/> 760 <echo message="################################################################"/> 761 </target> 762 763 <target name="_final_release_check" depends="_verify_config_for_release"> 764 <fail message="Insufficient Build Configuration for ICU4J Release" unless="release.build.config.ok"/> 765 766 <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"/> 767 <condition property="no_maven-ant-tasks"> 768 <available file="${maven-ant-tasks.jar}"/> 769 </condition> 770 <fail message="Maven Ant Tasks not found at ${maven-ant-tasks.jar}" unless="no_maven-ant-tasks"/> 771 </target> 772 773 <!-- 774 The ant target releaseFinal is used for ICU official release. 775 This target builds ICU4J library jars, source jars and API document jars. 776 Also, this target publishes ICU4J artifacts to OSSRH staging repository. 777 778 Prerequisites 779 780 1) Apache Maven Ant tasks - http://maven.apache.org/ant-tasks 781 782 Note: Apache Maven Ant tasks was already deprecated. You can still 783 download the latest version from Maven Central 784 http://central.maven.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.jar 785 786 TODO: Because mavne-ant-tasks was already deprecated and no longer maintained, 787 we should look for alternative solution. 788 789 2) GnuPG 790 791 3) Put build-local.properties to specify followings 792 793 maven-ant-tasks.jar = [location of maven ant tasks jar file] 794 gpg.user = ICU Project 795 796 4) Maven configuration file ~/.m2/settings.xml 797 <settings> 798 <servers> 799 <server> 800 <id>icu4j-releases</id> 801 <username>[oss.sonatype.org Nexus account ID]</username> 802 <password>[oss.sonatype.org Nexus account password]</password> 803 </server> 804 <server> 805 <id>icu4j-snapshots</id> 806 <username>[oss.sonatype.org Nexus account ID]</username> 807 <password>[oss.sonatype.org Nexus account password]</password> 808 </server> 809 </servers> 810 </settings> 811 --> 812 <target name="releaseFinal" depends="info, _final_release_check, releaseVer, docsMaven" 813 description="Build all ICU4J release files for distribution and upload them to the OSSRH staging repository"> 814 815 <property name="maven.pom.dir" value="maven"/> 816 <property name="maven.icu4j.release.dir" value="${release.dir}/maven/icu4j"/> 817 <property name="maven.charset.release.dir" value="${release.dir}/maven/icu4j-charset"/> 818 <property name="maven.localespi.release.dir" value="${release.dir}/maven/icu4j-localespi"/> 819 820 <property name="maven.icu4j.jar.file" value="icu4j-${maven.pom.ver}.jar"/> 821 <property name="maven.icu4j.src.jar.file" value="icu4j-${maven.pom.ver}-sources.jar"/> 822 <property name="maven.icu4j.doc.jar.file" value="icu4j-${maven.pom.ver}-javadoc.jar"/> 823 824 <property name="maven.charset.jar.file" value="icu4j-charset-${maven.pom.ver}.jar"/> 825 <property name="maven.charset.src.jar.file" value="icu4j-charset-${maven.pom.ver}-sources.jar"/> 826 <property name="maven.charset.doc.jar.file" value="icu4j-charset-${maven.pom.ver}-javadoc.jar"/> 827 828 <property name="maven.localespi.jar.file" value="icu4j-localespi-${maven.pom.ver}.jar"/> 829 <property name="maven.localespi.src.jar.file" value="icu4j-localespi-${maven.pom.ver}-sources.jar"/> 830 <property name="maven.localespi.doc.jar.file" value="icu4j-localespi-${maven.pom.ver}-javadoc.jar"/> 831 832 833 <delete dir="${release.dir}/maven"/> 834 <mkdir dir="${maven.icu4j.release.dir}"/> 835 <mkdir dir="${maven.charset.release.dir}"/> 836 <mkdir dir="${maven.localespi.release.dir}"/> 837 838 839 <!-- copy pom.xml with version --> 840 <copy file="${maven.pom.dir}/icu4j/pom.xml" todir="${maven.icu4j.release.dir}"> 841 <filterset> 842 <filter token="POMVERSION" value="${maven.pom.ver}"/> 843 </filterset> 844 </copy> 845 <copy file="${maven.pom.dir}/icu4j-charset/pom.xml" todir="${maven.charset.release.dir}"> 846 <filterset> 847 <filter token="POMVERSION" value="${maven.pom.ver}"/> 848 </filterset> 849 </copy> 850 <copy file="${maven.pom.dir}/icu4j-localespi/pom.xml" todir="${maven.localespi.release.dir}"> 851 <filterset> 852 <filter token="POMVERSION" value="${maven.pom.ver}"/> 853 </filterset> 854 </copy> 855 856 <!-- copy ICU release binaries and source archive to the maven release directory --> 857 <copy file="${release.dir}/${icu4j.jar.versioned.file}" 858 tofile="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}"/> 859 <copy file="${release.dir}/${icu4j-charset.jar.versioned.file}" 860 tofile="${maven.charset.release.dir}/${maven.charset.jar.file}"/> 861 <copy file="${release.dir}/${icu4j-localespi.jar.versioned.file}" 862 tofile="${maven.localespi.release.dir}/${maven.localespi.jar.file}"/> 863 864 <copy file="${release.dir}/${icu4j-src.jar.versioned.file}" 865 tofile="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}"/> 866 <copy file="${release.dir}/${icu4j-charset-src.jar.versioned.file}" 867 tofile="${maven.charset.release.dir}/${maven.charset.src.jar.file}"/> 868 <copy file="${release.dir}/${icu4j-localespi-src.jar.versioned.file}" 869 tofile="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}"/> 870 871 <!-- javadoc jar for maven release --> 872 <jar jarfile="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}" 873 compress="true" 874 basedir="${maven.doc.base.dir}/icu4j"/> 875 <jar jarfile="${maven.charset.release.dir}/${maven.charset.doc.jar.file}" 876 compress="true" 877 basedir="${maven.doc.base.dir}/charset"/> 878 <jar jarfile="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}" 879 compress="true" 880 basedir="${maven.doc.base.dir}/localespi"/> 881 882 <!-- sign release files--> 883 <macrodef name="gpg"> 884 <attribute name="file"/> 885 <sequential> 886 <delete file="@{file}.asc" failonerror="false"/> 887 <exec executable="gpg"> 888 <arg value="-u"/> 889 <arg value="${gpg.user}"/> 890 <arg value="-ab"/> 891 <arg value="-o"/> 892 <arg value="@{file}.asc"/> 893 <arg value="@{file}"/> 894 </exec> 895 </sequential> 896 </macrodef> 897 898 <gpg file="${maven.icu4j.release.dir}/pom.xml"/> 899 <gpg file="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}"/> 900 <gpg file="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}"/> 901 <gpg file="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}"/> 902 903 <gpg file="${maven.charset.release.dir}/pom.xml"/> 904 <gpg file="${maven.charset.release.dir}/${maven.charset.jar.file}"/> 905 <gpg file="${maven.charset.release.dir}/${maven.charset.src.jar.file}"/> 906 <gpg file="${maven.charset.release.dir}/${maven.charset.doc.jar.file}"/> 907 908 <gpg file="${maven.localespi.release.dir}/pom.xml"/> 909 <gpg file="${maven.localespi.release.dir}/${maven.localespi.jar.file}"/> 910 <gpg file="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}"/> 911 <gpg file="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}"/> 912 913 <!-- deploy ICU4J artifacts to the OSSRH staging repository --> 914 <path id="maven-ant-tasks.classpath" path="${maven-ant-tasks.jar}"/> 915 <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" 916 classpathref="maven-ant-tasks.classpath"/> 917 918 <deploy xmlns="urn:maven-artifact-ant" file="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}"> 919 <pom file="${maven.icu4j.release.dir}/pom.xml"/> 920 <attach file="${maven.icu4j.release.dir}/pom.xml.asc" type="pom.asc"/> 921 <attach file="${maven.icu4j.release.dir}/${maven.icu4j.jar.file}.asc" type="jar.asc"/> 922 <attach file="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}" classifier="sources"/> 923 <attach file="${maven.icu4j.release.dir}/${maven.icu4j.src.jar.file}.asc" classifier="sources" type="jar.asc"/> 924 <attach file="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}" classifier="javadoc"/> 925 <attach file="${maven.icu4j.release.dir}/${maven.icu4j.doc.jar.file}.asc" classifier="javadoc" type="jar.asc"/> 926 </deploy> 927 928 <deploy xmlns="urn:maven-artifact-ant" file="${maven.charset.release.dir}/${maven.charset.jar.file}"> 929 <pom file="${maven.charset.release.dir}/pom.xml"/> 930 <attach file="${maven.charset.release.dir}/pom.xml.asc" type="pom.asc"/> 931 <attach file="${maven.charset.release.dir}/${maven.charset.jar.file}.asc" type="jar.asc"/> 932 <attach file="${maven.charset.release.dir}/${maven.charset.src.jar.file}" classifier="sources"/> 933 <attach file="${maven.charset.release.dir}/${maven.charset.src.jar.file}.asc" classifier="sources" type="jar.asc"/> 934 <attach file="${maven.charset.release.dir}/${maven.charset.doc.jar.file}" classifier="javadoc"/> 935 <attach file="${maven.charset.release.dir}/${maven.charset.doc.jar.file}.asc" classifier="javadoc" type="jar.asc"/> 936 </deploy> 937 938 <deploy xmlns="urn:maven-artifact-ant" file="${maven.localespi.release.dir}/${maven.localespi.jar.file}"> 939 <pom file="${maven.localespi.release.dir}/pom.xml"/> 940 <attach file="${maven.localespi.release.dir}/pom.xml.asc" type="pom.asc"/> 941 <attach file="${maven.localespi.release.dir}/${maven.localespi.jar.file}.asc" type="jar.asc"/> 942 <attach file="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}" classifier="sources"/> 943 <attach file="${maven.localespi.release.dir}/${maven.localespi.src.jar.file}.asc" classifier="sources" type="jar.asc"/> 944 <attach file="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}" classifier="javadoc"/> 945 <attach file="${maven.localespi.release.dir}/${maven.localespi.doc.jar.file}.asc" classifier="javadoc" type="jar.asc"/> 946 </deploy> 947 </target> 948 949 <target name="releaseVer" depends="info, releaseBinaries, releaseJarCheck, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz" 950 description="Build all ICU4J release files for distribution with versioned file names"> 951 <!-- binaries --> 952 <move file="${release.dir}/${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.versioned.file}"/> 953 <move file="${release.dir}/${icu4j-charset.jar.file}" tofile="${release.dir}/${icu4j-charset.jar.versioned.file}"/> 954 <move file="${release.dir}/${icu4j-localespi.jar.file}" tofile="${release.dir}/${icu4j-localespi.jar.versioned.file}"/> 955 956 <!-- source jars --> 957 <move file="${release.dir}/${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.versioned.file}"/> 958 <move file="${release.dir}/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.versioned.file}"/> 959 <move file="${release.dir}/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.versioned.file}"/> 960 961 <!-- docs --> 962 <move file="${release.dir}/${icu4jdocs.jar.file}" tofile="${release.dir}/${icu4jdocs.jar.versioned.file}"/> 963 964 <!-- package archive --> 965 <move file="${release.dir}/${icu4jsrc.tgz.file}" tofile="${release.dir}/${icu4jsrc.tgz.versioned.file}"/> 966 967 <!-- md5 checksum file --> 968 <mkdir dir="${out.dir}/checksum"/> 969 <delete dir="${out.dir}/checksum" includes="**/*"/> 970 971 <checksum todir="${out.dir}/checksum" format="MD5SUM"> 972 <fileset dir="${release.dir}"> 973 <include name="*.jar"/> 974 <include name="*.tgz"/> 975 </fileset> 976 </checksum> 977 978 <concat destfile="${release.dir}/icu4j-${release.file.ver}.md5"> 979 <fileset dir="${out.dir}/checksum" includes="*"/> 980 <filterchain> 981 <fixcrlf eol="lf"/> 982 </filterchain> 983 </concat> 984 985 <antcall target="_verify_config_for_release"/> 986 </target> 987 988 <target name="release" depends="info, releaseBinaries, releaseSrcJars, releaseDocs, releaseSourceArchiveTgz" description="Build all ICU4J release files for distribution"> 989 <mkdir dir="${out.dir}/checksum"/> 990 <delete dir="${out.dir}/checksum" includes="**/*"/> 991 992 <checksum todir="${out.dir}/checksum" format="MD5SUM"> 993 <fileset dir="${release.dir}"> 994 <include name="*.jar"/> 995 <include name="*.tgz"/> 996 </fileset> 997 </checksum> 998 999 <concat destfile="${release.dir}/icu4j.md5"> 1000 <fileset dir="${out.dir}/checksum" includes="*"/> 1001 <filterchain> 1002 <fixcrlf eol="lf"/> 1003 </filterchain> 1004 </concat> 1005 1006 <antcall target="_verify_config_for_release"/> 1007 </target> 1008 1009 <target name="releaseBinaries" depends="icu4jJar, charset, localespi" description="Build ICU4J binary files for distribution"> 1010 <mkdir dir="${release.dir}"/> 1011 <copy file="${icu4j.jar.file}" tofile="${release.dir}/${icu4j.jar.file}"/> 1012 <copy file="${icu4j.charset.jar}" tofile="${release.dir}/${icu4j-charset.jar.file}"/> 1013 <copy file="${icu4j.localespi.jar}" tofile="${release.dir}/${icu4j-localespi.jar.file}"/> 1014 </target> 1015 1016 <target name="releaseSrcJars" depends="icu4jSrcJar" description="Build ICU4J src jar files for distribution"> 1017 <mkdir dir="${release.dir}"/> 1018 1019 <!-- icu4j src-jar --> 1020 <copy file="${icu4j-src.jar.file}" tofile="${release.dir}/${icu4j-src.jar.file}"/> 1021 1022 <!-- charset/localespi src-jar --> 1023 <ant dir="${icu4j.charset.dir}" target="src-jar" inheritAll="false"/> 1024 <ant dir="${icu4j.localespi.dir}" target="src-jar" inheritAll="false"/> 1025 1026 <copy file="${icu4j.charset.dir}/${out.dir}/lib/${icu4j-charset-src.jar.file}" tofile="${release.dir}/${icu4j-charset-src.jar.file}"/> 1027 <copy file="${icu4j.localespi.dir}/${out.dir}/lib/${icu4j-localespi-src.jar.file}" tofile="${release.dir}/${icu4j-localespi-src.jar.file}"/> 1028 </target> 1029 1030 1031 <target name="releaseDocs" depends="docs" description="Build ICU4J API reference doc jar file for distribution"> 1032 <mkdir dir="${release.dir}"/> 1033 <jar jarfile="${release.dir}/${icu4jdocs.jar.file}" compress="true" basedir="${doc.dir}"/> 1034 </target> 1035 1036 <property name="src.release.wrk.dir" value="${out.dir}/tmpsrc"/> 1037 1038 <target name="releaseSourceArchiveZip" description="Build ICU4J source release archive (.zip)"> 1039 <delete dir="${src.release.wrk.dir}"/> 1040 <delete file="${icu4jsrc.zip.file}"/> 1041 1042 <mkdir dir="${src.release.wrk.dir}"/> 1043 1044 <fixcrlf srcdir="." 1045 destdir="${src.release.wrk.dir}" 1046 encoding="UTF-8" 1047 eol="crlf"> 1048 <include name="demos/**/*"/> 1049 <include name="main/**/*"/> 1050 <include name="perf-tests/**/*"/> 1051 <include name="samples/**/*"/> 1052 <include name="tools/**/*"/> 1053 <include name="*.html"/> 1054 <include name="*.xml"/> 1055 <include name="*.properties"/> 1056 <include name="*.css"/> 1057 <include name="*.stub"/> 1058 <exclude name="**/out/**/*"/> 1059 <exclude name="**/*.jar"/> 1060 <exclude name="**/build-local.properties"/> 1061 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/> 1062 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/> 1063 <exclude name="tools/build/icu4j*.api*.gz"/> 1064 </fixcrlf> 1065 1066 <mkdir dir="${release.dir}"/> 1067 <zip destfile="${release.dir}/${icu4jsrc.zip.file}"> 1068 <fileset dir="${src.release.wrk.dir}" includes="**/*"/> 1069 <fileset dir="${basedir}"> 1070 <include name="main/shared/data/*.jar"/> 1071 <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/> 1072 <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/> 1073 <include name="tools/build/icu4j*.api*.gz"/> 1074 </fileset> 1075 </zip> 1076 1077 <delete dir="${src.release.wrk.dir}"/> 1078 </target> 1079 1080 <target name="releaseSourceArchiveTgz" description="Build ICU4J source release archive (.tgz)"> 1081 <delete dir="${src.release.wrk.dir}"/> 1082 <delete file="${icu4jsrc.tgz.file}"/> 1083 1084 <mkdir dir="${src.release.wrk.dir}"/> 1085 1086 <fixcrlf srcdir="." 1087 destdir="${src.release.wrk.dir}" 1088 encoding="UTF-8" 1089 eol="lf"> 1090 <include name="demos/**/*"/> 1091 <include name="main/**/*"/> 1092 <include name="perf-tests/**/*"/> 1093 <include name="samples/**/*"/> 1094 <include name="tools/**/*"/> 1095 <include name="*.html"/> 1096 <include name="*.xml"/> 1097 <include name="*.properties"/> 1098 <include name="*.css"/> 1099 <include name="*.stub"/> 1100 <exclude name="**/out/**/*"/> 1101 <exclude name="**/*.jar"/> 1102 <exclude name="**/build-local.properties"/> 1103 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/> 1104 <exclude name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/> 1105 <exclude name="tools/build/icu4j*.api*.gz"/> 1106 </fixcrlf> 1107 1108 <property name="icu4jsrc.tar" value="${out.dir}/icu4jsrc.tar"/> 1109 1110 <tar destfile="${icu4jsrc.tar}" longfile="gnu"> 1111 <fileset dir="${src.release.wrk.dir}" includes="**/*"/> 1112 <fileset dir="${basedir}"> 1113 <include name="main/shared/data/*.jar"/> 1114 <include name="main/tests/core/src/com/ibm/icu/dev/test/serializable/data/**/*.dat"/> 1115 <include name="main/tests/core/src/com/ibm/icu/dev/test/util/Trie2Test.*.tri2"/> 1116 <include name="tools/build/icu4j*.api*.gz"/> 1117 </fileset> 1118 </tar> 1119 1120 <mkdir dir="${release.dir}"/> 1121 <gzip destfile="${release.dir}/${icu4jsrc.tgz.file}" src="${icu4jsrc.tar}"/> 1122 1123 <delete dir="${src.release.wrk.dir}"/> 1124 <delete file="${icu4jsrc.tar}"/> 1125 </target> 1126 1127 <!-- findbugs targets --> 1128 1129 <target name="findbugs" description="Run FindBugs on all library sub projects."> 1130 <property name="findbugs.out.dir" value="${out.dir}/findbugs"/> 1131 <mkdir dir="${findbugs.out.dir}"/> 1132 1133 <ant dir="${icu4j.core.dir}" inheritAll="false" target="findbugs"/> 1134 <copy file="${icu4j.core.dir}/${out.dir}/fb-core.html" todir="${findbugs.out.dir}"/> 1135 1136 <ant dir="${icu4j.collate.dir}" inheritAll="false" target="findbugs"/> 1137 <copy file="${icu4j.collate.dir}/${out.dir}/fb-collate.html" todir="${findbugs.out.dir}"/> 1138 1139 <ant dir="${icu4j.currdata.dir}" inheritAll="false" target="findbugs"/> 1140 <copy file="${icu4j.currdata.dir}/${out.dir}/fb-currdata.html" todir="${findbugs.out.dir}"/> 1141 1142 <ant dir="${icu4j.langdata.dir}" inheritAll="false" target="findbugs"/> 1143 <copy file="${icu4j.langdata.dir}/${out.dir}/fb-langdata.html" todir="${findbugs.out.dir}"/> 1144 1145 <ant dir="${icu4j.regiondata.dir}" inheritAll="false" target="findbugs"/> 1146 <copy file="${icu4j.regiondata.dir}/${out.dir}/fb-regiondata.html" todir="${findbugs.out.dir}"/> 1147 1148 <ant dir="${icu4j.translit.dir}" inheritAll="false" target="findbugs"/> 1149 <copy file="${icu4j.translit.dir}/${out.dir}/fb-translit.html" todir="${findbugs.out.dir}"/> 1150 1151 1152 <ant dir="${icu4j.charset.dir}" inheritAll="false" target="findbugs"/> 1153 <copy file="${icu4j.charset.dir}/${out.dir}/fb-charset.html" todir="${findbugs.out.dir}"/> 1154 1155 <ant dir="${icu4j.localespi.dir}" inheritAll="false" target="findbugs"/> 1156 <copy file="${icu4j.localespi.dir}/${out.dir}/fb-localespi.html" todir="${findbugs.out.dir}"/> 1157 </target> 1158 1159 <!-- compile targets --> 1160 <target name="core" description="Build core classes"> 1161 <ant dir="${icu4j.core.dir}" inheritAll="false"/> 1162 </target> 1163 1164 <target name="collate" depends="core" description="Build collation classes"> 1165 <ant dir="${icu4j.collate.dir}" inheritAll="false"/> 1166 </target> 1167 1168 <target name="charset" depends="core" description="Build charset classes"> 1169 <ant dir="${icu4j.charset.dir}" inheritAll="false"/> 1170 </target> 1171 1172 <target name="currdata" depends="core" description="Build currency data classes"> 1173 <ant dir="${icu4j.currdata.dir}" inheritAll="false"/> 1174 </target> 1175 1176 <target name="langdata" depends="core" description="Build language data classes"> 1177 <ant dir="${icu4j.langdata.dir}" inheritAll="false"/> 1178 </target> 1179 1180 <target name="localespi" if="is.java6.plus" description="Build Locale SPI classes"> 1181 <antcall target="_build-localespi"/> 1182 </target> 1183 1184 <target name="_build-localespi" depends="core, collate, currdata, langdata, regiondata"> 1185 <ant dir="${icu4j.localespi.dir}" inheritAll="false"/> 1186 </target> 1187 1188 <target name="regiondata" depends="core" description="Build region data classes"> 1189 <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/> 1190 </target> 1191 1192 <target name="translit" depends="core" description="Build translit classes"> 1193 <ant dir="${icu4j.translit.dir}" inheritAll="false"/> 1194 </target> 1195 1196 <target name="test-framework" depends="core, init" description="Build test framework classes"> 1197 <ant dir="${icu4j.test-framework.dir}" inheritAll="false"> 1198 <reference refid="junit.jars"/> 1199 </ant> 1200 </target> 1201 1202 <target name="core-tests" depends="core, test-framework" description="Build core tests"> 1203 <ant dir="${icu4j.core-tests.dir}" inheritAll="false"> 1204 <reference refid="junit.jars"/> 1205 </ant> 1206 </target> 1207 1208 <target name="collate-tests" depends="collate, test-framework" description="Build core tests"> 1209 <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"> 1210 <reference refid="junit.jars"/> 1211 </ant> 1212 </target> 1213 1214 <target name="charset-tests" depends="charset, test-framework" description="Build charset tests"> 1215 <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"> 1216 <reference refid="junit.jars"/> 1217 </ant> 1218 </target> 1219 1220 <target name="localespi-tests" if="is.java6.plus" description="Build Locale SPI tests"> 1221 <antcall target="_build-localespi-tests"/> 1222 </target> 1223 1224 <target name="_build-localespi-tests" depends="localespi, test-framework"> 1225 <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"> 1226 <reference refid="junit.jars"/> 1227 </ant> 1228 </target> 1229 1230 <target name="packaging-tests" depends="test-framework" description="Build packaging tests"> 1231 <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"> 1232 <reference refid="junit.jars"/> 1233 </ant> 1234 </target> 1235 1236 <target name="translit-tests" depends="translit, test-framework" description="Build translit tests"> 1237 <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"> 1238 <reference refid="junit.jars"/> 1239 </ant> 1240 </target> 1241 1242 <target name="demos" depends="core, charset, translit" description="Build demo classes"> 1243 <ant dir="${icu4j.demos.dir}" inheritAll="false"/> 1244 </target> 1245 1246 <target name="samples" depends="core, charset, collate, translit" description="Build sample classes"> 1247 <ant dir="${icu4j.samples.dir}" inheritAll="false"/> 1248 </target> 1249 1250 <target name="build-tools" description="Build build-tool classes"> 1251 <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/> 1252 </target> 1253 1254 <target name="tools" depends="core, core-tests, collate, translit, translit-tests" description="Build tool classes"> 1255 <ant dir="${icu4j.tools.dir}" inheritAll="false"/> 1256 </target> 1257 1258 <target name="perf-tests" if="is.java6.plus" depends="core, charset, collate, tools" description="Build performance test classes"> 1259 <ant dir="${icu4j.perf-tests.dir}" inheritAll="false"/> 1260 </target> 1261 1262 <!-- doc targets --> 1263 <target name="docs" depends="info, build-tools, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/> 1264 1265 <target name="docsStrict" description="Build API documents with all doclint check enabled"> 1266 <condition property="doclint.option" value="-Xdoclint:all"> 1267 <isset property="is.java8.plus"/> 1268 </condition> 1269 <antcall target="docs"/> 1270 </target> 1271 1272 <target name="_checkJCite" if="env.JCITE_DIR"> 1273 <fileset dir="${env.JCITE_DIR}" id="jcite.files"> 1274 <include name="build/*.jar"/> 1275 <include name="lib/*.jar"/> 1276 </fileset> 1277 <pathconvert property="jcite.libs" refid="jcite.files"/> 1278 1279 <dirset dir="${basedir}" id="jcite.src.dirs"> 1280 <include name="samples/src"/> 1281 <include name="demos/src"/> 1282 <include name="main/tests/*/src"/> 1283 </dirset> 1284 <pathconvert property="jcite.addl.src" refid="jcite.src.dirs"/> 1285 </target> 1286 1287 <target name="_docsStyleSheet"> 1288 <condition property="docs.style.sheet" value="stylesheet6.css"> 1289 <isset property="is.java6"/> 1290 </condition> 1291 <condition property="docs.style.sheet" value="stylesheet7.css"> 1292 <isset property="is.java7"/> 1293 </condition> 1294 <!-- all other cases --> 1295 <property name="docs.style.sheet" value="stylesheet8.css"/> 1296 </target> 1297 1298 <target name="_docsLintOption" unless="doclint.options"> 1299 <!-- syntax check is disabled because JCite tag name "@.jcite" is invalidated --> 1300 <condition property="doclint.option" value="-Xdoclint:reference,html" else=""> 1301 <isset property="is.java8.plus"/> 1302 </condition> 1303 </target> 1304 1305 <target name="_docsWithJCite" depends="_docsStyleSheet, _docsLintOption" if="jcite.libs"> 1306 <echo message="Javadoc lint option: ${doclint.option}"/> 1307 <echo message="JCite library path: ${jcite.libs}"/> 1308 <echo message="JCite additional source path: ${jcite.addl.src}"/> 1309 <echo message="Custom stylesheet: ${docs.style.sheet}"/> 1310 <javadoc 1311 destdir="${doc.dir}" 1312 nodeprecatedlist="true" 1313 windowtitle="${icu4j.api.doc.window.title}" 1314 doctitle="${icu4j.api.doc.title}" 1315 header="${icu4j.api.doc.header}" 1316 encoding="${java.src.encoding}" 1317 docencoding="UTF-8" 1318 charset="UTF-8" 1319 bottom="${icu4j.api.doc.copyright.footer}" 1320 additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8" 1321 link="${icu4j.api.doc.jdk.link}" 1322 source="1.5" 1323 stylesheetfile="${docs.style.sheet}" 1324 failonerror="true"> 1325 <packageset dir="${icu4j.core.dir}/src"> 1326 <include name="com/ibm/icu/lang/**"/> 1327 <include name="com/ibm/icu/math/**"/> 1328 <include name="com/ibm/icu/number/**"/> 1329 <include name="com/ibm/icu/text/**"/> 1330 <include name="com/ibm/icu/util/**"/> 1331 </packageset> 1332 <packageset dir="${icu4j.collate.dir}/src"> 1333 <include name="com/ibm/icu/text/**"/> 1334 </packageset> 1335 <packageset dir="${icu4j.translit.dir}/src"> 1336 <include name="com/ibm/icu/text/**"/> 1337 </packageset> 1338 <packageset dir="${icu4j.charset.dir}/src"> 1339 <include name="com/ibm/icu/charset/**"/> 1340 </packageset> 1341 </javadoc> 1342 </target> 1343 1344 <target name="_docsWithoutJCite" depends="_docsStyleSheet, _docsLintOption" unless="jcite.libs"> 1345 <echo message="Javadoc lint option: ${doclint.option}"/> 1346 <javadoc 1347 destdir="${doc.dir}" 1348 nodeprecatedlist="true" 1349 windowtitle="${icu4j.api.doc.window.title}" 1350 doctitle="${icu4j.api.doc.title}" 1351 header="${icu4j.api.doc.header}" 1352 encoding="${java.src.encoding}" 1353 docencoding="UTF-8" 1354 charset="UTF-8" 1355 bottom="${icu4j.api.doc.copyright.footer}" 1356 additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet" 1357 link="${icu4j.api.doc.jdk.link}" 1358 source="1.5" 1359 failonerror="true"> 1360 <packageset dir="${icu4j.core.dir}/src"> 1361 <include name="com/ibm/icu/lang/**"/> 1362 <include name="com/ibm/icu/math/**"/> 1363 <include name="com/ibm/icu/number/**"/> 1364 <include name="com/ibm/icu/text/**"/> 1365 <include name="com/ibm/icu/util/**"/> 1366 </packageset> 1367 <packageset dir="${icu4j.collate.dir}/src"> 1368 <include name="com/ibm/icu/text/**"/> 1369 </packageset> 1370 <packageset dir="${icu4j.translit.dir}/src"> 1371 <include name="com/ibm/icu/text/**"/> 1372 </packageset> 1373 <packageset dir="${icu4j.charset.dir}/src"> 1374 <include name="com/ibm/icu/charset/**"/> 1375 </packageset> 1376 </javadoc> 1377 </target> 1378 1379 <!-- Component document targets, only used for Maven repository releases --> 1380 <target name="docsMaven" depends="info, build-tools, _checkJCite, _docsStyleSheet, _docsLintOption, _mavenIcu4jDoc, _mavenCharsetDoc, _mavenLocalespiDoc" 1381 description="Build API docs for each ICU4J maven artifact"/> 1382 1383 <target name="_mavenIcu4jDoc"> 1384 <fail message="JCite must be configured." unless="jcite.libs"/> 1385 <delete dir="${maven.doc.base.dir}/icu4j"/> 1386 1387 <echo message="Javadoc lint option: ${doclint.option}"/> 1388 <echo message="JCite library path: ${jcite.libs}"/> 1389 <echo message="JCite additional source path: ${jcite.addl.src}"/> 1390 <echo message="Custom stylesheet: ${docs.style.sheet}"/> 1391 <javadoc 1392 destdir="${maven.doc.base.dir}/icu4j" 1393 nodeprecatedlist="true" 1394 windowtitle="${icu4j.main.api.doc.window.title}" 1395 doctitle="${icu4j.main.api.doc.title}" 1396 header="${icu4j.main.api.doc.header}" 1397 encoding="${java.src.encoding}" 1398 docencoding="UTF-8" 1399 charset="UTF-8" 1400 bottom="${icu4j.api.doc.copyright.footer}" 1401 additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8" 1402 link="${icu4j.api.doc.jdk.link}" 1403 source="1.5" 1404 stylesheetfile="${docs.style.sheet}" 1405 failonerror="true"> 1406 <packageset dir="${icu4j.core.dir}/src"> 1407 <include name="com/ibm/icu/lang/**"/> 1408 <include name="com/ibm/icu/math/**"/> 1409 <include name="com/ibm/icu/number/**"/> 1410 <include name="com/ibm/icu/text/**"/> 1411 <include name="com/ibm/icu/util/**"/> 1412 </packageset> 1413 <packageset dir="${icu4j.collate.dir}/src"> 1414 <include name="com/ibm/icu/text/**"/> 1415 </packageset> 1416 <packageset dir="${icu4j.translit.dir}/src"> 1417 <include name="com/ibm/icu/text/**"/> 1418 </packageset> 1419 </javadoc> 1420 </target> 1421 1422 <target name="_mavenCharsetDoc"> 1423 <fail message="JCite must be configured." unless="jcite.libs"/> 1424 <delete dir="${maven.doc.base.dir}/charset"/> 1425 1426 <echo message="Javadoc lint option: ${doclint.option}"/> 1427 <echo message="JCite library path: ${jcite.libs}"/> 1428 <echo message="JCite additional source path: ${jcite.addl.src}"/> 1429 <echo message="Custom stylesheet: ${docs.style.sheet}"/> 1430 <javadoc 1431 destdir="${maven.doc.base.dir}/charset" 1432 nodeprecatedlist="true" 1433 windowtitle="${icu4j.charset.api.doc.window.title}" 1434 doctitle="${icu4j.charset.api.doc.title}" 1435 header="${icu4j.charset.api.doc.header}" 1436 encoding="${java.src.encoding}" 1437 docencoding="UTF-8" 1438 charset="UTF-8" 1439 bottom="${icu4j.api.doc.copyright.footer}" 1440 additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8" 1441 link="${icu4j.api.doc.jdk.link}" 1442 source="1.5" 1443 stylesheetfile="${docs.style.sheet}" 1444 failonerror="true" 1445 classpath="${icu4j.jar.file}"> 1446 <packageset dir="${icu4j.charset.dir}/src"> 1447 <include name="com/ibm/icu/charset/**"/> 1448 </packageset> 1449 </javadoc> 1450 </target> 1451 1452 <target name="_mavenLocalespiDoc"> 1453 <delete dir="${maven.doc.base.dir}/localespi"/> 1454 1455 <echo message="Javadoc lint option: ${doclint.option}"/> 1456 <echo message="Custom stylesheet: ${docs.style.sheet}"/> 1457 <javadoc 1458 destdir="${maven.doc.base.dir}/localespi" 1459 nodeprecatedlist="true" 1460 windowtitle="${icu4j.localespi.api.doc.window.title}" 1461 doctitle="${icu4j.localespi.api.doc.title}" 1462 header="${icu4j.localespi.api.doc.header}" 1463 encoding="${java.src.encoding}" 1464 docencoding="UTF-8" 1465 charset="UTF-8" 1466 bottom="${icu4j.api.doc.copyright.footer}" 1467 additionalparam="${doclint.option} -breakiterator -use" 1468 link="${icu4j.api.doc.jdk.link}" 1469 source="1.5" 1470 failonerror="true" 1471 classpath="${icu4j.jar.file}"> 1472 <packageset dir="${icu4j.localespi.dir}/src"> 1473 <include name="com/ibm/icu/impl/javaspi"/> 1474 </packageset> 1475 </javadoc> 1476 1477 </target> 1478 1479 1480 <!-- JaCoCo code coverage target --> 1481 <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" onerror="ignore"> 1482 <classpath path="${env.JACOCO_DIR}/lib/jacocoant.jar"/> 1483 </taskdef> 1484 1485 <target name="coverageJaCoCo" depends="build-tools, jar, tests" description="Run the ICU4J unit tests and generate code coverage report"> 1486 <property name="jacoco.out.dir" value="${out.dir}/jacoco"/> 1487 <property name="jacoco.exec.data.file" value="${jacoco.out.dir}/jacoco.exec"/> 1488 <property name="jacoco.report.html.zip" value="${jacoco.out.dir}/report_html.zip"/> 1489 <property name="jacoco.report.xml" value="${jacoco.out.dir}/report.xml"/> 1490 <property name="jacoco.report.csv" value="${jacoco.out.dir}/report.csv"/> 1491 <property name="jacoco.exclusion.txt" value="coverage-exclusion.txt"/> 1492 1493 <delete dir="${jacoco.out.dir}"/> 1494 <mkdir dir="${jacoco.out.dir}"/> 1495 1496 <!-- core --> 1497 <jacoco:coverage destfile="${jacoco.exec.data.file}"> 1498 <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no"> 1499 <jvmarg value="-ea"/> 1500 <jvmarg value="-Djava.awt.headless=true"/> 1501 <classpath> 1502 <path refid="junit.jars"/> 1503 <path refid="junit.icu.jars"/> 1504 </classpath> 1505 1506 <batchtest todir="${junit.out.dir}/core"> 1507 <fileset dir="${icu4j.core-tests.dir}/${bin.dir}"> 1508 <patternset refid="test-classes-patternset"/> 1509 </fileset> 1510 </batchtest> 1511 </junit> 1512 </jacoco:coverage> 1513 1514 <!-- charset --> 1515 <jacoco:coverage destfile="${jacoco.exec.data.file}"> 1516 <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no"> 1517 <jvmarg value="-ea"/> 1518 <jvmarg value="-Djava.awt.headless=true"/> 1519 <classpath> 1520 <path refid="junit.jars"/> 1521 <path refid="junit.icu.jars"/> 1522 </classpath> 1523 1524 <batchtest todir="${junit.out.dir}/charset"> 1525 <fileset dir="${icu4j.charset-tests.dir}/${bin.dir}"> 1526 <patternset refid="test-classes-patternset"/> 1527 </fileset> 1528 </batchtest> 1529 </junit> 1530 </jacoco:coverage> 1531 1532 <!-- collate --> 1533 <jacoco:coverage destfile="${jacoco.exec.data.file}"> 1534 <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no"> 1535 <jvmarg value="-ea"/> 1536 <jvmarg value="-Djava.awt.headless=true"/> 1537 <classpath> 1538 <path refid="junit.jars"/> 1539 <path refid="junit.icu.jars"/> 1540 </classpath> 1541 1542 <batchtest todir="${junit.out.dir}/collate"> 1543 <fileset dir="${icu4j.collate-tests.dir}/${bin.dir}"> 1544 <patternset refid="test-classes-patternset"/> 1545 </fileset> 1546 </batchtest> 1547 </junit> 1548 </jacoco:coverage> 1549 1550 <!-- translit --> 1551 <jacoco:coverage destfile="${jacoco.exec.data.file}"> 1552 <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="no"> 1553 <jvmarg value="-ea"/> 1554 <jvmarg value="-Djava.awt.headless=true"/> 1555 <classpath> 1556 <path refid="junit.jars"/> 1557 <path refid="junit.icu.jars"/> 1558 </classpath> 1559 1560 <batchtest todir="${junit.out.dir}/translit"> 1561 <fileset dir="${icu4j.translit-tests.dir}/${bin.dir}"> 1562 <patternset refid="test-classes-patternset"/> 1563 </fileset> 1564 </batchtest> 1565 </junit> 1566 </jacoco:coverage> 1567 1568 <jacoco:report> 1569 <executiondata> 1570 <file file="${jacoco.exec.data.file}"/> 1571 </executiondata> 1572 1573 <structure name="ICU4J Project"> 1574 <classfiles> 1575 <fileset dir="."> 1576 <include name="${icu4j.jar.file}"/> 1577 <include name="${icu4j-charset.jar.file}"/> 1578 </fileset> 1579 </classfiles> 1580 <sourcefiles encoding="UTF-8"> 1581 <fileset dir="${icu4j.core.dir}/src"/> 1582 <fileset dir="${icu4j.collate.dir}/src"/> 1583 <fileset dir="${icu4j.currdata.dir}/src"/> 1584 <fileset dir="${icu4j.langdata.dir}/src"/> 1585 <fileset dir="${icu4j.regiondata.dir}/src"/> 1586 <fileset dir="${icu4j.translit.dir}/src"/> 1587 1588 <fileset dir="${icu4j.charset.dir}/src"/> 1589 </sourcefiles> 1590 </structure> 1591 1592 <html destfile="${jacoco.report.html.zip}"/> 1593 <xml destfile="${jacoco.report.xml}"/> 1594 <csv destfile="${jacoco.report.csv}"/> 1595 </jacoco:report> 1596 1597 <java classname="com.ibm.icu.dev.tool.coverage.JacocoReportCheck" failonerror="true"> 1598 <arg line="${jacoco.report.xml} ${jacoco.exclusion.txt}"/> 1599 <classpath> 1600 <pathelement location="${icu4j.build-tools.jar}"/> 1601 </classpath> 1602 </java> 1603 1604 </target> 1605 1606 <!-- Release management targets --> 1607 <target name="checktags" depends="info, build-tools" description="Check API tags before release"> 1608 <javadoc source="1.6" 1609 bootclasspath="${java6.bootclasspath}" 1610 encoding="${java.src.encoding}"> 1611 <packageset dir="${icu4j.core.dir}/src"> 1612 <include name="com/ibm/icu/lang/**"/> 1613 <include name="com/ibm/icu/math/**"/> 1614 <include name="com/ibm/icu/number/**"/> 1615 <include name="com/ibm/icu/text/**"/> 1616 <include name="com/ibm/icu/util/**"/> 1617 </packageset> 1618 <packageset dir="${icu4j.collate.dir}/src"> 1619 <include name="com/ibm/icu/**"/> 1620 </packageset> 1621 <packageset dir="${icu4j.charset.dir}/src"> 1622 <include name="com/ibm/icu/charset/**"/> 1623 </packageset> 1624 <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/> 1625 </javadoc> 1626 </target> 1627 1628 <target name="gatherapi" depends="info, build-tools" description="Run API database generator tool"> 1629 <mkdir dir="${out.dir}"/> 1630 <javadoc source="1.6" 1631 bootclasspath="${java6.bootclasspath}" 1632 encoding="${java.src.encoding}"> 1633 <packageset dir="${icu4j.core.dir}/src"> 1634 <include name="com/ibm/icu/lang/**"/> 1635 <include name="com/ibm/icu/math/**"/> 1636 <include name="com/ibm/icu/number/**"/> 1637 <include name="com/ibm/icu/text/**"/> 1638 <include name="com/ibm/icu/util/**"/> 1639 </packageset> 1640 <packageset dir="${icu4j.collate.dir}/src"> 1641 <include name="com/ibm/icu/text/**"/> 1642 <include name="com/ibm/icu/util/**"/> 1643 </packageset> 1644 <packageset dir="${icu4j.charset.dir}/src"> 1645 <include name="com/ibm/icu/charset/**"/> 1646 </packageset> 1647 <packageset dir="${icu4j.translit.dir}/src"> 1648 <include name="com/ibm/icu/text/**"/> 1649 </packageset> 1650 <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${icu4j.build-tools.jar}"> 1651 <param name="-name" value="ICU4J ${icu4j.impl.version}"/> 1652 <param name="-output" value="${out.dir}/icu4j${api.report.version}.api3"/> 1653 <param name="-internal"/> 1654 <param name="-version"/> 1655 <param name="-gzip"/> 1656 </doclet> 1657 </javadoc> 1658 </target> 1659 1660 <target name="apireport" depends="info, gatherapi" description="Run API report generator tool"> 1661 <java classname="com.ibm.icu.dev.tool.docs.ReportAPI" 1662 classpath="${icu4j.build-tools.jar}" 1663 failonerror="true"> 1664 <arg value="-old:" /> 1665 <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api3.gz" /> 1666 <arg value="-new:" /> 1667 <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" /> 1668 <arg value="-html" /> 1669 <arg value="-out:" /> 1670 <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" /> 1671 </java> 1672 </target> 1673 1674 <target name="gatherapiOld" depends="info, build-tools" description="Run API database generator tool (Pre Java 5 style)"> 1675 <mkdir dir="${out.dir}"/> 1676 <javadoc source="1.6" 1677 bootclasspath="${java6.bootclasspath}" 1678 encoding="${java.src.encoding}"> 1679 <packageset dir="${icu4j.core.dir}/src"> 1680 <include name="com/ibm/icu/lang/**"/> 1681 <include name="com/ibm/icu/math/**"/> 1682 <include name="com/ibm/icu/number/**"/> 1683 <include name="com/ibm/icu/text/**"/> 1684 <include name="com/ibm/icu/util/**"/> 1685 </packageset> 1686 <packageset dir="${icu4j.collate.dir}/src"> 1687 <include name="com/ibm/icu/text/**"/> 1688 <include name="com/ibm/icu/util/**"/> 1689 </packageset> 1690 <packageset dir="${icu4j.charset.dir}/src"> 1691 <include name="com/ibm/icu/charset/**"/> 1692 </packageset> 1693 <packageset dir="${icu4j.translit.dir}/src"> 1694 <include name="com/ibm/icu/text/**"/> 1695 </packageset> 1696 <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIDataOld" path="${icu4j.build-tools.jar}"> 1697 <param name="-name" value="ICU4J ${icu4j.impl.version}"/> 1698 <param name="-output" value="${out.dir}/icu4j${api.report.version}.api"/> 1699 <param name="-internal"/> 1700 <param name="-gzip"/> 1701 </doclet> 1702 </javadoc> 1703 </target> 1704 1705 <target name="apireportOld" depends="info, gatherapiOld" description="Run API report generator tool (Pre Java 5 Style)"> 1706 <java classname="com.ibm.icu.dev.tool.docs.ReportAPI" 1707 classpath="${icu4j.build-tools.jar}" 1708 failonerror="true"> 1709 <arg value="-old:" /> 1710 <arg value="${icu4j.build-tools.dir}/icu4j${api.report.prev.version}.api.gz" /> 1711 <arg value="-new:" /> 1712 <arg value="${out.dir}/icu4j${api.report.version}.api.gz" /> 1713 <arg value="-html" /> 1714 <arg value="-internal" /> 1715 <arg value="-out:" /> 1716 <arg value="${out.dir}/icu4j_compare_${api.report.prev.version}_${api.report.version}.html" /> 1717 </java> 1718 </target> 1719 1720 <target name="checkDeprecated" depends="info, build-tools, gatherapi, main" 1721 description="Check consistency between javadoc @deprecated and @Deprecated annotation"> 1722 <java classname="com.ibm.icu.dev.tool.docs.DeprecatedAPIChecker" 1723 failonerror="true"> 1724 <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" /> 1725 <classpath> 1726 <pathelement location="${icu4j.build-tools.jar}"/> 1727 <pathelement location="${icu4j.core.jar}"/> 1728 <pathelement location="${icu4j.collate.jar}"/> 1729 <pathelement location="${icu4j.charset.jar}"/> 1730 <pathelement location="${icu4j.currdata.jar}"/> 1731 <pathelement location="${icu4j.langdata.jar}"/> 1732 <pathelement location="${icu4j.regiondata.jar}"/> 1733 <pathelement location="${icu4j.translit.jar}"/> 1734 </classpath> 1735 </java> 1736 </target> 1737 1738 <target name="draftAPIs" depends="info, gatherapi" description="Run API collector tool and generate draft API report"> 1739 <java classname="com.ibm.icu.dev.tool.docs.CollectAPI" 1740 classpath="${icu4j.build-tools.jar}" 1741 failonerror="true"> 1742 <arg value="-f"/> 1743 <arg value="Draft"/> 1744 <arg value="-o"/> 1745 <arg value="${out.dir}/draftAPIs.html"/> 1746 <arg value="${out.dir}/icu4j${api.report.version}.api3.gz" /> 1747 </java> 1748 </target> 1749 1750 <target name="swatDeprecated" depends="build-tools" description="Convert @deprecated @draft tags to @provisional"> 1751 <antcall target="_runSwatDeprecated"> 1752 <param name="swat.deprecated.opt" value="-dep"/> 1753 </antcall> 1754 </target> 1755 1756 <target name="swatProvisional" depends="build-tools" description="Convert @provisional tags to @deprecated @draft"> 1757 <antcall target="_runSwatDeprecated"> 1758 <param name="swat.deprecated.opt" value="-prov"/> 1759 </antcall> 1760 </target> 1761 1762 <target name="_runSwatDeprecated"> 1763 <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated" 1764 classpath="${icu4j.build-tools.jar}" 1765 failonerror="true"> 1766 <arg value="${swat.deprecated.opt}"/> 1767 <arg value="-src"/> 1768 <arg value="${icu4j.core.dir}/src"/> 1769 <arg value="-dst"/> 1770 <arg value="${icu4j.core.dir}/src"/> 1771 <arg value="-overwrite"/> 1772 <arg value="-verbose"/> 1773 </java> 1774 <java classname="com.ibm.icu.dev.tool.docs.SwatDeprecated" 1775 classpath="${icu4j.build-tools.jar}" 1776 failonerror="true"> 1777 <arg value="${swat.deprecated.opt}"/> 1778 <arg value="-src"/> 1779 <arg value="${icu4j.charset.dir}/src"/> 1780 <arg value="-dst"/> 1781 <arg value="${icu4j.charset.dir}/src"/> 1782 <arg value="-overwrite"/> 1783 <arg value="-verbose"/> 1784 </java> 1785 </target> 1786 1787 <target name="serialTestData" depends="main, tests"> 1788 <property name="serial.test.data.dir" value="${out.dir}/serialTestData"/> 1789 <delete dir="${serial.test.data.dir}"/> 1790 <mkdir dir="${serial.test.data.dir}"/> 1791 <java classname="com.ibm.icu.dev.test.serializable.SerializableWriter" fork="yes" failonerror="true"> 1792 <arg line="${serial.test.data.dir}"/> 1793 <classpath> 1794 <pathelement location="${icu4j.core.jar}"/> 1795 <pathelement location="${icu4j.collate.jar}"/> 1796 <pathelement location="${icu4j.charset.jar}"/> 1797 <pathelement location="${icu4j.currdata.jar}"/> 1798 <pathelement location="${icu4j.langdata.jar}"/> 1799 <pathelement location="${icu4j.regiondata.jar}"/> 1800 <pathelement location="${icu4j.translit.jar}"/> 1801 <pathelement location="${icu4j.test-framework.jar}"/> 1802 <pathelement location="${icu4j.core-tests.jar}"/> 1803 </classpath> 1804 </java> 1805 <echo message="Note: The serialization compatibility test data files were"/> 1806 <echo message="created in ${serial.test.data.dir}. Once you confirm"/> 1807 <echo message="the test runs clean, you should copy the data file directory to"/> 1808 <echo message="main/tests/core/src/com/ibm/icu/dev/test/serializable/data."/> 1809 </target> 1810 1811 <!-- Special packaging targets --> 1812 <target name="translitIMEJar" depends="info" description="Build transliterator IME 'icutransime.jar' jar file"> 1813 <property name="translit.ime.out.dir" value="${out.dir}/translit_ime"/> 1814 1815 <mkdir dir="${translit.ime.out.dir}/bin"/> 1816 <javac destdir="${translit.ime.out.dir}/bin" 1817 source="${javac.source}" 1818 target="${javac.target}" 1819 encoding="${java.src.encoding}" 1820 debug="on" deprecation="off"> 1821 <src path="${icu4j.core.dir}/src"/> 1822 <src path="${icu4j.translit.dir}/src"/> 1823 <src path="${icu4j.tools.dir}/src"/> 1824 <include name="com/ibm/icu/dev/tool/ime/translit/*.java"/> 1825 </javac> 1826 1827 <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/Transliterator.properties" 1828 todir="${translit.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/translit"/> 1829 1830 <mkdir dir="${translit.ime.out.dir}/lib"/> 1831 <jar jarfile="${translit.ime.out.dir}/lib/icutransime.jar" 1832 compress="true" 1833 basedir="${translit.ime.out.dir}/bin" 1834 includes="com/ibm/icu/dev/tool/ime/translit/**/*" 1835 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit/manifest.stub"> 1836 <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/translit" includes="services/*" /> 1837 </jar> 1838 </target> 1839 1840 <target name="indicIMEJar" depends="info" description="Build indic IME 'icuindicime.jar' jar file"> 1841 <property name="indic.ime.out.dir" value="${out.dir}/indic_ime"/> 1842 1843 <mkdir dir="${indic.ime.out.dir}/bin"/> 1844 <javac destdir="${indic.ime.out.dir}/bin" 1845 source="${javac.source}" 1846 target="${javac.target}" 1847 encoding="${java.src.encoding}" 1848 debug="on" deprecation="off"> 1849 <src path="${icu4j.core.dir}/src"/> 1850 <src path="${icu4j.tools.dir}/src"/> 1851 <include name="com/ibm/icu/dev/tool/ime/indic/*.java"/> 1852 </javac> 1853 1854 <copy file="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/DisplayNames.properties" 1855 todir="${indic.ime.out.dir}/bin/com/ibm/icu/dev/tool/ime/indic"/> 1856 1857 <mkdir dir="${indic.ime.out.dir}/lib"/> 1858 <jar jarfile="${indic.ime.out.dir}/lib/icuindicime.jar" 1859 compress="true" 1860 basedir="${indic.ime.out.dir}/bin" 1861 includes="com/ibm/icu/dev/tool/ime/indic/**/*" 1862 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic/manifest.stub"> 1863 <metainf dir="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/ime/indic" includes="services/*" /> 1864 </jar> 1865 </target> 1866 1867 <target name="cldrUtil" depends="icu4jJar" description="Build Utilities for CLDR tooling"> 1868 <mkdir dir="${cldr.util.out.dir}/bin"/> 1869 <javac destdir="${cldr.util.out.dir}/bin" 1870 source="${javac.source}" 1871 target="${javac.target}" 1872 encoding="${java.src.encoding}" 1873 debug="on" deprecation="off" 1874 classpath="${icu4j.jar.file}"> 1875 1876 <src path="${icu4j.tools.dir}/src"/> 1877 <src path="${icu4j.test-framework.dir}/src"/> 1878 1879 <include name="com/ibm/icu/dev/util/CollectionUtilities.java" /> 1880 <include name="com/ibm/icu/dev/util/ElapsedTimer.java" /> 1881 <include name="com/ibm/icu/dev/util/UnicodeMap.java" /> 1882 <include name="com/ibm/icu/dev/util/UnicodeMapIterator.java" /> 1883 <include name="com/ibm/icu/dev/tool/UOption.java" /> 1884 </javac> 1885 1886 <mkdir dir="${cldr.util.out.dir}/lib"/> 1887 <jar jarfile="${cldr.util.out.dir}/lib/utilities.jar" 1888 compress="true" 1889 basedir="${cldr.util.out.dir}/bin"> 1890 <include name="com/ibm/icu/dev/util/*.class"/> 1891 <include name="com/ibm/icu/dev/tool/UOption*.class"/> 1892 </jar> 1893 </target> 1894 1895 <target name="releaseCLDR" depends="icu4jJar,icu4jSrcJar,cldrUtil" description="Build release files for CLDR tooling"> 1896 <mkdir dir="${cldr.release.dir}"/> 1897 <!-- icu4j.jar --> 1898 <copy file="${icu4j.jar.file}" todir="${cldr.release.dir}"/> 1899 <!-- icu4j-src.jar --> 1900 <copy file="${icu4j-src.jar.file}" todir="${cldr.release.dir}"/> 1901 <!-- utilities.jar --> 1902 <copy file="${cldr.util.out.dir}/lib/utilities.jar" todir="${cldr.release.dir}"/> 1903 <!-- utilities-src.jar --> 1904 <jar jarfile="${cldr.release.dir}/utilities-src.jar" compress="true"> 1905 <fileset dir="${icu4j.test-framework.dir}/${src.dir}"> 1906 <include name="com/ibm/icu/dev/util/CollectionUtilities.java" /> 1907 <include name="com/ibm/icu/dev/util/ElapsedTimer.java" /> 1908 <include name="com/ibm/icu/dev/util/UnicodeMap.java" /> 1909 <include name="com/ibm/icu/dev/util/UnicodeMapIterator.java" /> 1910 </fileset> 1911 <fileset dir="${icu4j.tools.dir}/${src.dir}" includes="com/ibm/icu/dev/tool/UOption.java"/> 1912 </jar> 1913 </target> 1914 1915 <target name="xliff" description="Build xliff converter tool"> 1916 <property name="xliff.out.dir" value="${out.dir}/xliff"/> 1917 1918 <mkdir dir="${xliff.out.dir}/bin"/> 1919 <javac destdir="${xliff.out.dir}/bin" 1920 source="1.3" 1921 target="1.3" 1922 encoding="${java.src.encoding}" 1923 debug="on" deprecation="off"> 1924 <src path="${icu4j.tools.dir}/src"/> 1925 <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/> 1926 <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/> 1927 <include name="com/ibm/icu/dev/tool/UOption.java"/> 1928 </javac> 1929 1930 <mkdir dir="${xliff.out.dir}/lib"/> 1931 1932 <jar jarfile="${xliff.out.dir}/lib/xliff-src.jar" 1933 compress="true" 1934 basedir="${icu4j.tools.dir}/src"> 1935 <include name="com/ibm/icu/dev/tool/localeconverter/CalculateCRC32.java"/> 1936 <include name="com/ibm/icu/dev/tool/localeconverter/XLIFF2ICUConverter.java"/> 1937 <include name="com/ibm/icu/dev/tool/UOption.java"/> 1938 </jar> 1939 1940 <jar jarfile="${xliff.out.dir}/lib/xliff.jar" 1941 compress="true" 1942 basedir="${xliff.out.dir}/bin" 1943 manifest="${icu4j.tools.dir}/src/com/ibm/icu/dev/tool/localeconverter/manifest.stub"/> 1944 </target> 1945 </project> 1946