ICU-7919 Merging eclipse plug-in build related changes from trunk for Eclipse 3.7 realease.
X-SVN-Rev: 29316
diff --git a/.gitattributes b/.gitattributes
index 7df01cd..74bee93 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -50,6 +50,11 @@
/build.properties -text
demos/manifest.stub -text
+eclipse-build/eclipse_mod_classes.txt -text
+eclipse-build/eclipse_mod_test_classes.txt -text
+eclipse-build/plugins.template/com.ibm.icu.tests/META-INF/MANIFEST.MF -text
+eclipse-build/plugins.template/com.ibm.icu.tests/plugin.properties -text
+eclipse-build/plugins.template/com.ibm.icu/META-INF/MANIFEST.MF -text
main/classes/charset/.classpath -text
main/classes/charset/.project -text
main/classes/charset/.settings/org.eclipse.jdt.core.prefs -text
diff --git a/eclipse-build/build.properties b/eclipse-build/build.properties
new file mode 100644
index 0000000..031f913
--- /dev/null
+++ b/eclipse-build/build.properties
@@ -0,0 +1,8 @@
+#*******************************************************************************
+#* Copyright (C) 2010-2011, International Business Machines Corporation and *
+#* others. All Rights Reserved. *
+#*******************************************************************************
+icu4j.plugin.impl.version.string=4.4.2
+copyright.eclipse=Licensed Materials - Property of IBM \n (C) Copyright IBM Corp. 2000, 2011. All Rights Reserved. \n IBM is a registered trademark of IBM Corp.
+icu4j.data.version.number=44
+icu4j.eclipse.build.version.string=4.4.2.v20110115
diff --git a/eclipse-build/build.xml b/eclipse-build/build.xml
new file mode 100644
index 0000000..86d82e9
--- /dev/null
+++ b/eclipse-build/build.xml
@@ -0,0 +1,319 @@
+<!--
+/*
+*******************************************************************************
+* Copyright (C) 2010-2011, International Business Machines Corporation and *
+* others. All Rights Reserved. *
+*******************************************************************************
+*/
+-->
+
+<project name="icu4j-eclipse" default="build" basedir=".">
+ <property file="build.properties"/>
+
+ <property name="out.dir" value="out"/>
+ <property name="eclipse.projects.dir" value="${out.dir}/projects"/>
+
+ <property name="main.dir" value="../main"/>
+ <property name="shared.dir" value="${main.dir}/shared"/>
+
+ <import file="${shared.dir}/build/common-targets.xml"/>
+ <property file="${shared.dir}/build/common.properties"/>
+ <property file="${shared.dir}/build/locations.properties"/>
+
+ <property environment="env"/>
+
+ <target name="clean" description="Delete all build outputs">
+ <delete dir="${out.dir}"/>
+ </target>
+
+ <target name="build"
+ depends="initEnv,icuProjectFiles,icuTestsProjectFiles"
+ description="Build icu4j plug-ins">
+
+ <!-- copy OSGi jar file to baseLocation -->
+ <mkdir dir="${eclipse.projects.dir}/baseLocation/features"/>
+ <mkdir dir="${eclipse.projects.dir}/baseLocation/plugins"/>
+ <copy toDir="${eclipse.projects.dir}/baseLocation/plugins" file="${eclipse.osgi.jar}"/>
+
+ <!-- copy PDE build script files and run the build -->
+ <pathconvert property="eclipse.projects.dir.full" dirsep="/">
+ <path location="${basedir}/${eclipse.projects.dir}"/>
+ </pathconvert>
+
+ <antcall target="runEclipsePDEBuild">
+ <param name="icu.plugin.id" value="com.ibm.icu"/>
+ </antcall>
+
+ </target>
+
+ <target name="build-tools" description="Build build-tool classes">
+ <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/>
+ </target>
+
+ <target name="initPluginVersion">
+ <tstamp>
+ <format property="build.date" pattern="yyyyMMdd"/>
+ </tstamp>
+ <property name="icu4j.eclipse.build.version.string" value="${icu4j.plugin.impl.version.string}.v${build.date}"/>
+ </target>
+
+ <target name="initEnv"
+ depends="initEclipseHome,initEclipseLauncher,initEclipseOSGiJar,initEclipsePDE"
+ description="Initialize eclipse PDE build environment">
+ <echo message="[PDE build configuration properties]"/>
+ <echo message=" Eclipse home: ${eclipse.home}"/>
+ <echo message=" Launcher jar: ${eclipse.launcher}"/>
+ <echo message=" OSGi bundle jar: ${eclipse.osgi.jar}"/>
+ <echo message=" Base OS: ${eclipse.baseos}"/>
+ <echo message=" Base WS: ${eclipse.basews}"/>
+ <echo message=" Base ARCH: ${eclipse.basearch}"/>
+ </target>
+
+ <target name="initEclipseHome"
+ if="env.ECLIPSE_HOME"
+ unless="eclipse.home"
+ description="Initialize the property eclipse.home from the environment variable ECLIPSE_HOME">
+ <property name="eclipse.home" value="${env.ECLIPSE_HOME}"/>
+ </target>
+
+ <target name="initEclipseLauncher"
+ if="eclipse.home"
+ description="Locate org.eclipse.equinox.launcher jar file for eclipse 3.3 and beyond">
+ <first id="equinox.launcher">
+ <fileset dir="${eclipse.home}/plugins">
+ <include name="org.eclipse.equinox.launcher_*.jar"/>
+ </fileset>
+ </first>
+ <pathconvert property="eclipse.launcher" dirsep="/" refid="equinox.launcher"/>
+ </target>
+
+ <target name="initEclipseOSGiJar"
+ if="eclipse.home"
+ description="Locate org.eclipse.osgi plugin jar file">
+ <first id="osgi.bundle">
+ <fileset dir="${eclipse.home}/plugins">
+ <include name="org.eclipse.osgi_*.jar"/>
+ </fileset>
+ </first>
+ <pathconvert property="eclipse.osgi.jar" dirsep="/" refid="osgi.bundle"/>
+ </target>
+
+ <target name="initEclipsePDE"
+ depends="locateEclipsePDE"
+ if="eclipse.pde.dir"
+ description="Set up PDE runtime arguments">
+ <property file="${eclipse.pde.dir}/templates/headless-build/build.properties" prefix="pde.template"/>
+ <property name="eclipse.baseos" value="${pde.template.baseos}"/>
+ <property name="eclipse.basews" value="${pde.template.basews}"/>
+ <property name="eclipse.basearch" value="${pde.template.basearch}"/>
+ </target>
+
+ <target name="locateEclipsePDE"
+ if="eclipse.home"
+ description="Locate org.eclipse.pde.build plug-in and set the property 'eclipse.pde.dir'">
+ <first id="eclipse.pde.plugin.dir">
+ <dirset dir="${eclipse.home}/plugins">
+ <include name="org.eclipse.pde.build_*"/>
+ </dirset>
+ </first>
+ <pathconvert property="eclipse.pde.dir" dirsep="/" refid="eclipse.pde.plugin.dir"/>
+ </target>
+
+ <target name="runEclipsePDEBuild">
+ <mkdir dir="${eclipse.projects.dir}/buildScripts/${icu.plugin.id}"/>
+ <copy toDir="${eclipse.projects.dir}/buildScripts/${icu.plugin.id}">
+ <fileset dir="pdebuild" includes="**/*"/>
+ <filterset>
+ <filter token="PLUGIN_ID" value="${icu.plugin.id}"/>
+ <filter token="BUILD_DIR" value="${eclipse.projects.dir.full}"/>
+ <filter token="BUILD_TYPE" value="ICU4J"/>
+ <filter token="BUILD_ID" value="${icu.plugin.id}"/>
+ <filter token="BASE_LOCATION" value="${eclipse.projects.dir.full}/baseLocation"/>
+ <filter token="BASE_OS" value="${eclipse.baseos}"/>
+ <filter token="BASE_WS" value="${eclipse.basews}"/>
+ <filter token="BASE_ARCH" value="${eclipse.basearch}"/>
+ </filterset>
+ </copy>
+
+ <java jar="${eclipse.launcher}" fork="true" failonerror="true">
+ <arg value="-application"/>
+ <arg value="org.eclipse.ant.core.antRunner"/>
+ <arg value="-buildfile"/>
+ <arg value="${eclipse.pde.dir}/scripts/build.xml"/>
+ <arg value="-Dbuilder=${eclipse.projects.dir.full}/buildScripts/${icu.plugin.id}"/>
+ </java>
+ </target>
+
+ <target name="icuProjectFiles"
+ depends="initPluginVersion,build-tools"
+ description="Copy com.ibm.icu plug-in project files">
+
+ <delete failonerror="no">
+ <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu" />
+ <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu" />
+ </delete>
+
+ <!-- icu source -->
+ <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu/src">
+ <fileset dir="${icu4j.collate.dir}/src"/>
+ <fileset dir="${icu4j.core.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"/>
+ </copy>
+
+ <!-- update some source files to change API signatures for backward compatibility support -->
+ <echo message="Updating java source files for eclipse in com.ibm.icu"/>
+ <java classname="com.ibm.icu.dev.tool.docs.CodeMangler"
+ classpath="${icu4j.build-tools.jar}"
+ failonerror="true">
+ <arg line="-dECLIPSE -in ${eclipse.projects.dir}/plugins/com.ibm.icu/src -f @eclipse_mod_classes.txt"/>
+ </java>
+
+ <!-- overwriting the ICU runtime configuration file for forcing ICU4J plugin to use JDK time zone rules -->
+ <copy file="misc/ICUConfig.properties"
+ toDir="${eclipse.projects.dir}/plugins/com.ibm.icu/src/com/ibm/icu"
+ overwrite="true"/>
+
+ <!-- icu data -->
+ <unjar src="${icu4j.data.jar}" dest="${eclipse.projects.dir}/plugins/com.ibm.icu/src">
+ <patternset>
+ <exclude name="**/*.cnv"/>
+ <exclude name="**/cnvalias.icu"/>
+ </patternset>
+ </unjar>
+
+ <!-- full locale names lists -->
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/brkitr"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/coll"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/curr"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/lang"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/rbnf"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/region"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/translit"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${eclipse.projects.dir}/plugins/com.ibm.icu/src/${icu4j.data.path}/zone"/>
+ </antcall>
+
+ <!-- plugin project -->
+ <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu">
+ <fileset dir="plugins.template/com.ibm.icu"/>
+ <filterset>
+ <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
+ <filter token="COPYRIGHT" value="${copyright.eclipse}" />
+ <filter token="IMPL_VERSION" value="${icu4j.impl.version}" />
+ <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
+ </filterset>
+ </copy>
+
+ <!-- license -->
+ <copy file="${shared.dir}/licenses/license.html"
+ todir="${eclipse.projects.dir}/plugins/com.ibm.icu/about_files" />
+
+ <!-- ucd terms -->
+ <copy file="${shared.dir}/licenses/unicode-license.txt"
+ todir="${eclipse.projects.dir}/plugins/com.ibm.icu/about_files" />
+
+ <!-- about -->
+ <copy file="misc/about_icu.html"
+ tofile="${eclipse.projects.dir}/plugins/com.ibm.icu/about.html" />
+
+ <!-- FEATURE FILES -->
+ <copy todir="${eclipse.projects.dir}/features/com.ibm.icu">
+ <fileset dir="features.template/com.ibm.icu"/>
+ <filterset>
+ <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
+ <filter token="COPYRIGHT" value="${copyright.eclipse}" />
+ <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
+ </filterset>
+ </copy>
+
+ </target>
+
+ <target name="icuTestsProjectFiles"
+ depends="initPluginVersion,build-tools"
+ description="Copy com.ibm.icu.tests plug-in project files">
+
+ <delete failonerror="no">
+ <fileset dir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests" />
+ <fileset dir="${eclipse.projects.dir}/features/com.ibm.icu.tests" />
+ </delete>
+
+ <!-- icu test source -->
+ <copy toDir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src">
+ <fileset dir="${icu4j.test-framework.dir}/src"/>
+ <fileset dir="${icu4j.core-tests.dir}/src"/>
+ <fileset dir="${icu4j.collate-tests.dir}/src"/>
+ <fileset dir="${icu4j.translit-tests.dir}/src"/>
+ </copy>
+
+ <!-- update some source files to change API signatures for backward compatibility support -->
+ <echo message="Updating java source files for eclipse in com.ibm.icu.tests"/>
+ <java classname="com.ibm.icu.dev.tool.docs.CodeMangler"
+ classpath="${icu4j.build-tools.jar}"
+ failonerror="true">
+ <arg line="-dECLIPSE -in ${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src -f @eclipse_mod_test_classes.txt"/>
+ </java>
+
+ <!-- icu test data -->
+ <unjar src="${icu4j.testdata.jar}" dest="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/src">
+ <patternset>
+ <exclude name="**/*.cnv"/>
+ <exclude name="**/cnvalias.icu"/>
+ <exclude name="META-INF"/>
+ <exclude name="META-INF/**/*"/>
+ </patternset>
+ </unjar>
+
+ <!-- plugin project -->
+ <copy todir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests">
+ <fileset dir="plugins.template/com.ibm.icu.tests"/>
+ <filterset>
+ <filter token="BUILD_VERSION" value="${icu4j.eclipse.build.version.string}" />
+ <filter token="COPYRIGHT" value="${copyright.eclipse}" />
+ <filter token="IMPL_VERSION" value="${icu4j.impl.version}" />
+ <filter token="DATA_VERSION_NUMBER" value="${icu4j.data.version.number}" />
+ </filterset>
+ </copy>
+
+ <!-- license -->
+ <copy file="${shared.dir}/licenses/license.html"
+ todir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/about_files" />
+
+ <!-- ucd terms -->
+ <copy file="${shared.dir}/licenses/unicode-license.txt"
+ todir="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/about_files" />
+
+ <!-- about -->
+ <copy file="misc/about_icu.html"
+ tofile="${eclipse.projects.dir}/plugins/com.ibm.icu.tests/about.html" />
+
+ </target>
+
+</project>
\ No newline at end of file
diff --git a/eclipse-build/eclipse_mod_classes.txt b/eclipse-build/eclipse_mod_classes.txt
new file mode 100644
index 0000000..dc2f9c6
--- /dev/null
+++ b/eclipse-build/eclipse_mod_classes.txt
@@ -0,0 +1,5 @@
+# Copyright (C) 2011, International Business Machines Corporation and
+# others. All Rights Reserved.
+
+com/ibm/icu/lang/UCharacter.java
+com/ibm/icu/text/DecimalFormat.java
diff --git a/eclipse-build/eclipse_mod_test_classes.txt b/eclipse-build/eclipse_mod_test_classes.txt
new file mode 100644
index 0000000..20b5292
--- /dev/null
+++ b/eclipse-build/eclipse_mod_test_classes.txt
@@ -0,0 +1,7 @@
+# Copyright (C) 2011, International Business Machines Corporation and
+# others. All Rights Reserved.
+
+com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java
+com/ibm/icu/dev/test/format/NumberFormatTest.java
+com/ibm/icu/dev/test/serializable/CompatibilityTest.java
+com/ibm/icu/dev/test/serializable/CoverageTest.java
diff --git a/eclipse-build/features.template/com.ibm.icu/.project b/eclipse-build/features.template/com.ibm.icu/.project
new file mode 100644
index 0000000..d407fa0
--- /dev/null
+++ b/eclipse-build/features.template/com.ibm.icu/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>com.ibm.icu-feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/eclipse-build/features.template/com.ibm.icu/build.properties b/eclipse-build/features.template/com.ibm.icu/build.properties
new file mode 100644
index 0000000..e9000a4
--- /dev/null
+++ b/eclipse-build/features.template/com.ibm.icu/build.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2000, 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes =\
+epl-v10.html,\
+eclipse_update_120.jpg,\
+feature.xml,\
+feature.properties,\
+license.html
+outputUpdateJars = true
+
+generate.plugin@com.ibm.icu.source=com.ibm.icu
+
diff --git a/eclipse-build/features.template/com.ibm.icu/feature.xml b/eclipse-build/features.template/com.ibm.icu/feature.xml
new file mode 100644
index 0000000..417e65b
--- /dev/null
+++ b/eclipse-build/features.template/com.ibm.icu/feature.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="com.ibm.icu"
+ label="com.ibm.icu"
+ version="@BUILD_VERSION@">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <plugin
+ id="com.ibm.icu"
+ download-size="0"
+ install-size="0"
+ version="@BUILD_VERSION@"
+ unpack="false"/>
+
+ <plugin
+ id="com.ibm.icu.source"
+ download-size="0"
+ install-size="0"
+ version="@BUILD_VERSION@"
+ unpack="false"/>
+
+</feature>
diff --git a/eclipse-build/misc/ICUConfig.properties b/eclipse-build/misc/ICUConfig.properties
new file mode 100644
index 0000000..83f6503
--- /dev/null
+++ b/eclipse-build/misc/ICUConfig.properties
@@ -0,0 +1,31 @@
+#*
+#*******************************************************************************
+#* Copyright (C) 2008-2011, International Business Machines Corporation and *
+#* others. All Rights Reserved. *
+#*******************************************************************************
+#* This is the properties contains ICU runtime configuration
+#*
+
+#
+# The default TimeZone implementation type used by the ICU TimeZone
+# factory method. [ ICU | JDK ]
+#
+com.ibm.icu.util.TimeZone.DefaultTimeZoneType = JDK
+
+#
+# By default, DecimalFormat uses some internal equivalent character
+# data in addition to ones in DecimalFormatSymbols for parsing
+# decimal/grouping separators. When this property is true,
+# DecimalFormat uses separators configured by DecimalFormatSymbols only
+# and does not try to find a match in the internal equivalent character
+# data.
+#
+com.ibm.icu.text.DecimalFormat.SkipExtendedSeparatorParsing = false
+
+
+#
+# [Internal Use Only]
+# Disable resource path scan for building full locale name list
+# at run time.
+#
+com.ibm.icu.impl.ICUResourceBundle.skipRuntimeLocaleResourceScan = false
diff --git a/eclipse-build/misc/about_icu.html b/eclipse-build/misc/about_icu.html
new file mode 100644
index 0000000..777bbce
--- /dev/null
+++ b/eclipse-build/misc/about_icu.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>January 15, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+
+ <h3>Third Party Content</h3>
+ <p>The Content includes items that have been sourced from third parties as set out below. If you
+ did not receive this Content directly from the Eclipse Foundation, the following is provided
+ for informational purposes only, and you should look to the Redistributor's license for
+ terms and conditions of use.</p>
+
+ <p><strong>ICU4J 4.4.2.v20110115 plug-in</strong> <br/><br/>
+ The plug-in includes software ("ICU4J") developed by International Business Machines
+ Corporation and others.
+ <br/><br/>
+ ICU4J is:
+ <blockquote>
+ Copyright (c) 1995-2011 International Business Machines Corporation and others<br/>
+ All rights reserved.
+ </blockquote>
+ <p>
+ Your use of ICU4J is subject to the terms and conditions of the ICU4J license. A copy of the
+ license is contained in the file <a href="about_files/license.html" target="_blank">about_files/license.html</a>.</p>
+ <p>
+ ICU4J bundles data files imported from the Unicode Character Database and the Locale Data. A copy of the
+ Unicode Data and Software license is contained in the file <a href="about_files/ucdterms.txt"/>about_files/ucdterms.txt</a>.</p>
+ <p>
+ The project information including source code, documentations and demo programs are available on
+ the <a href="http://www.icu-project.org">ICU public web site</a>.</p>
+
+</body>
+</html>
diff --git a/eclipse-build/misc/about_icu_base.html b/eclipse-build/misc/about_icu_base.html
new file mode 100644
index 0000000..b0740de
--- /dev/null
+++ b/eclipse-build/misc/about_icu_base.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>XXXX XX, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+
+ <h3>Third Party Content</h3>
+ <p>The Content includes items that have been sourced from third parties as set out below. If you
+ did not receive this Content directly from the Eclipse Foundation, the following is provided
+ for informational purposes only, and you should look to the Redistributor's license for
+ terms and conditions of use.</p>
+
+ <p><strong>ICU4J 4.4.2.v2011XXXX base plug-in</strong> <br/><br/>
+ The plug-in includes software ("ICU4J") developed by International Business Machines
+ Corporation and others.
+ <br/><br/>
+ ICU4J is:
+ <blockquote>
+ Copyright (c) 1995-2011 International Business Machines Corporation and others<br/>
+ All rights reserved.
+ </blockquote>
+ <p>
+ Your use of ICU4J is subject to the terms and conditions of the ICU4J license. A copy of the
+ license is contained in the file <a href="about_files/license.html" target="_blank">about_files/license.html</a>.</p>
+ <p>
+ The project information including source code, documentations and demo programs are available on
+ the <a href="http://www.icu-project.org">ICU public web site</a>.</p>
+
+</body>
+</html>
diff --git a/eclipse-build/pdebuild/allElements.xml b/eclipse-build/pdebuild/allElements.xml
new file mode 100644
index 0000000..e4d6613
--- /dev/null
+++ b/eclipse-build/pdebuild/allElements.xml
@@ -0,0 +1,28 @@
+<project name="allElements Delegator">
+
+ <!-- ===================================================================== -->
+ <!-- Run a given ${target} on all elements being built -->
+ <!-- Replace element.id with the id of the top level element being built. -->
+ <!-- If element.id does not exist in ${buildDirectory}/features/element.id -->
+ <!-- or ${baseLocation}/features/element.id, then you must provide the -->
+ <!-- location by setting the property "pluginPath" -->
+ <!-- Add on <ant> task for each top level element being built. -->
+ <!-- ===================================================================== -->
+ <target name="allElementsDelegator">
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="feature" />
+ <property name="id" value="@PLUGIN_ID@" />
+ </ant>
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Targets to assemble the built elements for particular configurations -->
+ <!-- These generally call the generated assemble scripts (named in -->
+ <!-- ${assembleScriptName}) but may also add pre and post processing -->
+ <!-- Add one target for each root element and each configuration -->
+ <!-- Replace element.id with the id of the top level element being built -->
+ <!-- ===================================================================== -->
+ <target name="assemble.@PLUGIN_ID@">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
+ </target>
+</project>
diff --git a/eclipse-build/pdebuild/build.properties b/eclipse-build/pdebuild/build.properties
new file mode 100644
index 0000000..86f6cf4
--- /dev/null
+++ b/eclipse-build/pdebuild/build.properties
@@ -0,0 +1,220 @@
+###############################################################################
+# Copyright (c) 2003-2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+#####################
+# Parameters describing how and where to execute the build.
+# Typical users need only update the following properties:
+# baseLocation - where things you are building against are installed
+# bootclasspath - The base jars to compile against (typicaly rt.jar)
+# configs - the list of {os, ws, arch} configurations to build.
+#
+# Of course any of the settings here can be overridden by spec'ing
+# them on the command line (e.g., -DbaseLocation=d:/eclipse
+
+############# PRODUCT/PACKAGING CONTROL #############
+product=/plugin or feature id/path/to/.product
+runPackager=true
+
+#Set the name of the archive that will result from the product build.
+#archiveNamePrefix=
+
+# The prefix that will be used in the generated archive.
+#archivePrefix=<output archive root>
+archivePrefix=
+
+# The location underwhich all of the build output will be collected.
+collectingFolder=${archivePrefix}
+
+# The list of {os, ws, arch} configurations to build. This
+# value is a '&' separated list of ',' separate triples. For example,
+# configs=win32,win32,x86 & linux,motif,x86
+# By default the value is *,*,*
+#configs=win32, win32, x86 & \
+# linux, gtk, ppc &\
+# linux, gtk, x86 & \
+# linux, gtk, x86_64 & \
+# linux, motif, x86 & \
+# solaris, motif, sparc & \
+# solaris, gtk, sparc & \
+# aix, motif, ppc & \
+# hpux, motif, PA_RISC & \
+# macosx, carbon, ppc
+
+# By default PDE creates one archive (result) per entry listed in the configs property.
+# Setting this value to try will cause PDE to only create one output containing all
+# artifacts for all the platforms listed in the configs property.
+#groupConfigurations=true
+
+#The format of the archive. By default a zip is created using antZip.
+#The list can only contain the configuration for which the desired format is different than zip.
+#archivesFormat=win32, win32, x86 - antZip& \
+# linux, gtk, ppc - antZip &\
+# linux, gtk, x86 - antZip& \
+# linux, gtk, x86_64 - antZip& \
+# linux, motif, x86 - antZip& \
+# solaris, motif, sparc - antZip& \
+# solaris, gtk, sparc - antZip& \
+# aix, motif, ppc - antZip& \
+# hpux, motif, PA_RISC - antZip& \
+# macosx, carbon, ppc - antZip
+
+#Set to true if you want the output to be ready for an update jar (no site.xml generated)
+#outputUpdateJars = false
+
+#Set to true for Jnlp generation
+#codebase should be a URL that will be used as the root of all relative URLs in the output.
+#generateJnlp=false
+#jnlp.codebase=<codebase url>
+#jnlp.j2se=<j2se version>
+#jnlp.locale=<a locale>
+
+#Set to true if you want to sign jars
+#signJars=false
+#sign.alias=<alias>
+#sign.keystore=<keystore location>
+#sign.storepass=<keystore password>
+
+#Arguments to send to the zip executable
+zipargs=
+
+#Arguments to send to the tar executable
+tarargs=
+
+#Control the creation of a file containing the version included in each configuration - on by default
+#generateVersionsLists=false
+
+############## BUILD NAMING CONTROL ################
+# The directory into which the build elements are fetched and where
+# the build takes place.
+buildDirectory=@BUILD_DIR@
+
+# Type of build. Used in naming the build output. Typically this value is
+# one of I, N, M, S, ...
+buildType=@BUILD_TYPE@
+
+# ID of the build. Used in naming the build output.
+buildId=@BUILD_ID@
+
+# Label for the build. Used in naming the build output
+buildLabel=${buildType}.${buildId}
+
+# Timestamp for the build. Used in naming the build output
+timestamp=007
+
+#The value to be used for the qualifier of a plugin or feature when you want to override the value computed by pde.
+#The value will only be applied to plugin or features indicating build.properties, qualifier = context
+#forceContextQualifier=<the value for the qualifier>
+
+#Enable / disable the generation of a suffix for the features that use .qualifier.
+#The generated suffix is computed according to the content of the feature
+#generateFeatureVersionSuffix=true
+
+############# BASE CONTROL #############
+# Settings for the base Eclipse components and Java class libraries
+# against which you are building.
+# Base location for anything the build needs to compile against. For example,
+# in most RCP app or a plug-in, the baseLocation should be the location of a previously
+# installed Eclipse against which the application or plug-in code will be compiled and the RCP delta pack.
+
+base=<path/to/parent/of/eclipse>
+#baseLocation=${base}/eclipse
+baseLocation=@BASE_LOCATION@
+#Os/Ws/Arch/nl of the eclipse specified by baseLocation
+baseos=@BASE_OS@
+basews=@BASE_WS@
+basearch=@BASE_ARCH@
+
+#this property indicates whether you want the set of plug-ins and features to be considered during the build to be limited to the ones reachable from the features / plugins being built
+filteredDependencyCheck=false
+
+#pluginPath is a list of locations in which to find plugins and features. This list is separated by the platform file separator (; or :)
+#a location is one of:
+#- the location of the jar or folder that is the plugin or feature : /path/to/foo.jar or /path/to/foo
+#- a directory that contains a /plugins or /features subdirectory
+#- the location of a feature.xml, or for 2.1 style plugins, the plugin.xml or fragment.xml
+#pluginPath=
+
+skipBase=true
+eclipseURL=<url for eclipse download site>
+eclipseBuildId=<Id of Eclipse build to get>
+eclipseBaseURL=${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip
+
+
+############# MAP FILE CONTROL ################
+# This section defines CVS tags to use when fetching the map files from the repository.
+# If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml
+
+skipMaps=true
+mapsRepo=:pserver:anonymous@example.com/path/to/repo
+mapsRoot=path/to/maps
+mapsCheckoutTag=HEAD
+
+#tagMaps=true
+mapsTagTag=v${buildId}
+
+
+############ REPOSITORY CONTROL ###############
+# This section defines properties parameterizing the repositories where plugins, fragments
+# bundles and features are being obtained from.
+
+# The tags to use when fetching elements to build.
+# By default thebuilder will use whatever is in the maps.
+# This value takes the form of a comma separated list of repository identifier (like used in the map files) and the
+# overriding value
+# For example fetchTag=CVS=HEAD, SVN=v20050101
+# fetchTag=HEAD
+skipFetch=true
+
+
+############# JAVA COMPILER OPTIONS ##############
+# The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE
+#bootclasspath=${java.home}/lib/rt.jar
+
+# specific JRE locations to compile against. These values are used to compile bundles specifying a
+# Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support
+#CDC-1.0/Foundation-1.0= /path/to/rt.jar
+#CDC-1.1/Foundation-1.1=
+#OSGi/Minimum-1.0=
+#OSGi/Minimum-1.1=
+#JRE-1.1=
+#J2SE-1.2=
+#J2SE-1.3=
+#J2SE-1.4=
+#J2SE-1.5=
+#JavaSE-1.6=
+#PersonalJava-1.1=
+#PersonalJava-1.2=
+#CDC-1.0/PersonalBasis-1.0=
+#CDC-1.0/PersonalJava-1.0=
+#CDC-1.1/PersonalBasis-1.1=
+#CDC-1.1/PersonalJava-1.1=
+
+# Specify the output format of the compiler log when eclipse jdt is used
+logExtension=.log
+
+# Whether or not to include debug info in the output jars
+javacDebugInfo=true
+
+# Whether or not to fail the build if there are compiler errors
+javacFailOnError=true
+
+# Enable or disable verbose mode of the compiler
+javacVerbose=true
+
+# Extra arguments for the compiler. These are specific to the java compiler being used.
+compilerArg=-inlineJSR -enableJavadoc -encoding ISO-8859-1
+
+# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
+javacSource=1.5
+
+# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
+javacTarget=1.5
+
+individualSourceBundles=true
diff --git a/eclipse-build/pdebuild/customTargets.xml b/eclipse-build/pdebuild/customTargets.xml
new file mode 100644
index 0000000..ae4266d
--- /dev/null
+++ b/eclipse-build/pdebuild/customTargets.xml
@@ -0,0 +1,161 @@
+<project name="Build specific targets and properties" default="noDefault">
+
+ <!-- ===================================================================== -->
+ <!-- Run a given ${target} on all elements being built -->
+ <!-- Add on <ant> task for each top level element being built. -->
+ <!-- ===================================================================== -->
+ <property name="allElementsFile" value="${builder}/allElements.xml"/>
+ <import file="${allElementsFile}" />
+ <target name="allElements">
+ <antcall target="allElementsDelegator" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- ===================================================================== -->
+ <target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
+ <get src="${eclipseBaseURL}" dest="${buildDirectory}/../temp-base.zip" />
+ <unzip dest="${base}" overwrite="true" src="${buildDirectory}/../temp-base.zip" />
+ </target>
+
+ <target name="checkLocalBase">
+ <available file="${base}" property="skipBase" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Check out map files from correct repository -->
+ <!-- Replace values for mapsCheckoutTag as desired. -->
+ <!-- ===================================================================== -->
+ <target name="getMapFiles" depends="checkLocalMaps" unless="skipMaps">
+ <property name="mapsCheckoutTag" value="HEAD" />
+ <cvs cvsRoot="${mapsRepo}" package="${mapsRoot}" dest="${buildDirectory}/maps" tag="${mapsCheckoutTag}" />
+ </target>
+
+ <target name="checkLocalMaps">
+ <available property="skipMaps" file="${buildDirectory}/maps" />
+ </target>
+
+ <target name="tagMapFiles" if="tagMaps">
+ <cvs dest="${buildDirectory}/maps/${mapsRoot}" command="tag ${mapsTagTag}" />
+ </target>
+
+ <!-- ===================================================================== -->
+
+ <target name="clean" unless="noclean">
+ <antcall target="allElements">
+ <param name="target" value="cleanElement" />
+ </antcall>
+ </target>
+
+ <target name="gatherLogs">
+ <mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
+ <antcall target="allElements">
+ <param name="target" value="gatherLogs" />
+ </antcall>
+ <unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
+ <fileset dir="${buildDirectory}/features">
+ <include name="**/*.log.zip" />
+ </fileset>
+ </unzip>
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before setup -->
+ <!-- ===================================================================== -->
+ <target name="preSetup">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after setup but before starting the build proper -->
+ <!-- ===================================================================== -->
+ <target name="postSetup">
+ <antcall target="getBaseComponents" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="preFetch">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="postFetch">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="preGenerate">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="postGenerate">
+ <antcall target="clean" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="preProcess">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="postProcess">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="preAssemble">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="postAssemble">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running package. -->
+ <!-- ===================================================================== -->
+ <target name="prePackage">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running package. -->
+ <!-- ===================================================================== -->
+ <target name="postPackage">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after the build is done. -->
+ <!-- ===================================================================== -->
+ <target name="postBuild">
+ <antcall target="gatherLogs" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do to test the build results -->
+ <!-- ===================================================================== -->
+ <target name="test">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do to publish the build results -->
+ <!-- ===================================================================== -->
+ <target name="publish">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Default target -->
+ <!-- ===================================================================== -->
+ <target name="noDefault">
+ <echo message="You must specify a target when invoking this file" />
+ </target>
+
+</project>
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/.classpath b/eclipse-build/plugins.template/com.ibm.icu.tests/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/.project b/eclipse-build/plugins.template/com.ibm.icu.tests/.project
new file mode 100644
index 0000000..b406f25
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>com.ibm.icu.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/.settings/org.eclipse.jdt.core.prefs b/eclipse-build/plugins.template/com.ibm.icu.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2e9a6a7
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,78 @@
+#Thu Jan 13 17:45:06 EST 2011
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.deadCode=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/.settings/org.eclipse.jdt.ui.prefs b/eclipse-build/plugins.template/com.ibm.icu.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..1c69cb6
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Dec 14 11:51:01 EST 2006
+eclipse.preferences.version=1
+internal.default.compliance=default
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/META-INF/MANIFEST.MF b/eclipse-build/plugins.template/com.ibm.icu.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..99cd32a
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: com.ibm.icu.tests
+Bundle-Version: @BUILD_VERSION@
+Bundle-Vendor: %providerName
+Fragment-Host: com.ibm.icu
+Bundle-Copyright: @COPYRIGHT@
+Require-Bundle: org.junit
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/build.properties b/eclipse-build/plugins.template/com.ibm.icu.tests/build.properties
new file mode 100644
index 0000000..3edb708
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/build.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2000, 2011 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = .,\
+ about.html,\
+ about_files/,\
+ plugin.properties,\
+ META-INF/
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/plugin.properties b/eclipse-build/plugins.template/com.ibm.icu.tests/plugin.properties
new file mode 100644
index 0000000..b9d61ca
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2011 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+pluginName = International Components for Unicode for Java (ICU4J) Tests
+providerName = IBM Corporation
\ No newline at end of file
diff --git a/eclipse-build/plugins.template/com.ibm.icu.tests/src/com/ibm/icu/tests/UnitTest.java b/eclipse-build/plugins.template/com.ibm.icu.tests/src/com/ibm/icu/tests/UnitTest.java
new file mode 100644
index 0000000..52c5860
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu.tests/src/com/ibm/icu/tests/UnitTest.java
@@ -0,0 +1,138 @@
+/*
+ ******************************************************************************
+ * Copyright (C) 2005-2011, International Business Machines Corporation and *
+ * others. All Rights Reserved. *
+ ******************************************************************************
+ */
+package com.ibm.icu.tests;
+
+import junit.framework.TestCase;
+
+import com.ibm.icu.dev.test.TestAll;
+import com.ibm.icu.dev.test.TestFmwk;
+import com.ibm.icu.dev.test.TestFmwk.TestParams;
+
+
+public class UnitTest extends TestCase {
+
+ public void runUtility(String testname) throws Exception {
+ TestParams params = TestParams.create("-n", null);
+ TestFmwk test = new TestAll();
+ test.resolveTarget(params, testname).run();
+ if (params.errorCount > 0) {
+ fail(params.errorSummary.toString());
+ }
+ }
+
+
+ // Core
+
+ public void testFormat() throws Exception {
+ runUtility("Core/Format");
+ }
+
+ public void testCompression() throws Exception {
+ runUtility("Core/Compression");
+ }
+
+ public void testRBBI() throws Exception {
+ runUtility("Core/RBBI");
+ }
+
+ public void testArabicShapingRegTest() throws Exception {
+ runUtility("Core/ArabicShapingRegTest");
+ }
+
+ public void testCalendar() throws Exception {
+ runUtility("Core/Calendar");
+ }
+
+ public void testTimeZone() throws Exception {
+ runUtility("Core/TimeZone");
+ }
+
+ public void testProperty() throws Exception {
+ runUtility("Core/Property");
+ }
+
+ public void testNormalizer() throws Exception {
+ runUtility("Core/Normalizer");
+ }
+
+ public void testUtil() throws Exception {
+ runUtility("Core/Util");
+ }
+
+ public void testTestUCharacterIterator() throws Exception {
+ runUtility("Core/TestUCharacterIterator");
+ }
+
+ public void testDiagBigDecimal() throws Exception {
+ runUtility("Core/DiagBigDecimal");
+ }
+
+ public void testImpl() throws Exception {
+ runUtility("Core/Impl");
+ }
+
+ public void testStringPrep() throws Exception {
+ runUtility("Core/StringPrep");
+ }
+
+ public void testTimeScale() throws Exception {
+ runUtility("Core/TimeScale");
+ }
+
+ public void testTestCharsetDetector() throws Exception {
+ runUtility("Core/TestCharsetDetector");
+ }
+
+ public void testBidi() throws Exception {
+ runUtility("Core/Bidi");
+ }
+
+ public void testDuration() throws Exception {
+ runUtility("Core/Duration");
+ }
+
+ public void testSerializable() throws Exception {
+ runUtility("Core/Serializable");
+ }
+
+
+ // Collate
+
+ public void testCollator() throws Exception {
+ runUtility("Collate/Collator");
+ }
+
+ public void testGlobalizationPreferencesTest() throws Exception {
+ runUtility("Collate/GlobalizationPreferencesTest");
+ }
+
+ public void testRbnfLenientScannerTest() throws Exception {
+ runUtility("Collate/RbnfLenientScannerTest");
+ }
+
+ public void testSearchTest() throws Exception {
+ runUtility("Collate/SearchTest");
+ }
+
+ public void testICUResourceBundleCollationTest() throws Exception {
+ runUtility("Collate/ICUResourceBundleCollationTest");
+ }
+
+ public void testLocaleAliasCollationTest() throws Exception {
+ runUtility("Collate/LocaleAliasCollationTest");
+ }
+
+ public void testULocaleCollationTest() throws Exception {
+ runUtility("Collate/ULocaleCollationTest");
+ }
+
+ // Translit
+
+ public void testTranslit() throws Exception {
+ runUtility("Translit/Translit");
+ }
+}
diff --git a/eclipse-build/plugins.template/com.ibm.icu/.classpath b/eclipse-build/plugins.template/com.ibm.icu/.classpath
new file mode 100644
index 0000000..751c8f2
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/eclipse-build/plugins.template/com.ibm.icu/.project b/eclipse-build/plugins.template/com.ibm.icu/.project
new file mode 100644
index 0000000..e73714f
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>com.ibm.icu</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/eclipse-build/plugins.template/com.ibm.icu/.settings/org.eclipse.jdt.core.prefs b/eclipse-build/plugins.template/com.ibm.icu/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..179918e
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,77 @@
+#Mon Aug 30 14:05:56 EDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=ignore
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/eclipse-build/plugins.template/com.ibm.icu/.settings/org.eclipse.jdt.ui.prefs b/eclipse-build/plugins.template/com.ibm.icu/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..5693f2f
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Dec 14 11:50:17 EST 2006
+eclipse.preferences.version=1
+internal.default.compliance=default
diff --git a/eclipse-build/plugins.template/com.ibm.icu/META-INF/MANIFEST.MF b/eclipse-build/plugins.template/com.ibm.icu/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7aa37bc
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: com.ibm.icu; singleton:=true
+Bundle-Version: @BUILD_VERSION@
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-Copyright: @COPYRIGHT@
+Export-Package: com.ibm.icu.lang;base=true;full=true;version="@IMPL_VERSION@",
+ com.ibm.icu.math;base=true;full=true;version="@IMPL_VERSION@",
+ com.ibm.icu.text;base=true;full=true;version="@IMPL_VERSION@",
+ com.ibm.icu.util;base=true;full=true;version="@IMPL_VERSION@",
+ com.ibm.icu.impl;x-internal:=true,
+ com.ibm.icu.impl.data;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.brkitr;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.coll;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.curr;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.lang;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.rbnf;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.region;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.translit;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATA_VERSION_NUMBER@b.zone;x-internal:=true,
+ com.ibm.icu.impl.duration;x-internal:=true,
+ com.ibm.icu.impl.locale;x-internal:=true
+Eclipse-LazyStart: true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ClassPath: icu-data.jar,.
+Eclipse-ExtensibleAPI: true
diff --git a/eclipse-build/plugins.template/com.ibm.icu/build.properties b/eclipse-build/plugins.template/com.ibm.icu/build.properties
new file mode 100644
index 0000000..8c108f2
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/build.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2000, 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+src.includes = about.html,\
+ about_files/
+bin.includes = .,\
+ about.html,\
+ about_files/,\
+ plugin.properties,\
+ META-INF/
diff --git a/eclipse-build/plugins.template/com.ibm.icu/plugin.properties b/eclipse-build/plugins.template/com.ibm.icu/plugin.properties
new file mode 100644
index 0000000..9fe7037
--- /dev/null
+++ b/eclipse-build/plugins.template/com.ibm.icu/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2000, 2008 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+pluginName = International Components for Unicode for Java (ICU4J)
+providerName = IBM Corporation
\ No newline at end of file
diff --git a/main/classes/collate/build.xml b/main/classes/collate/build.xml
index 6d78df9..22d0e67 100644
--- a/main/classes/collate/build.xml
+++ b/main/classes/collate/build.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -28,8 +28,12 @@
<target name="copy-data" description="Extract pre-built ICU collation data files and copy them to the project's binary directory">
<unjar src="${icu4j.data.jar}" dest="${bin.dir}">
- <patternset includes="**/coll/*"/>
+ <patternset includes="${icu4j.data.path}/coll/**"/>
</unjar>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/coll"/>
+ </antcall>
</target>
</project>
diff --git a/main/classes/core/build.xml b/main/classes/core/build.xml
index 6006c85..5a63f3f 100644
--- a/main/classes/core/build.xml
+++ b/main/classes/core/build.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -29,14 +29,30 @@
<target name="copy-data" description="Extract pre-built ICU core data files and copy them to the project's binary directory">
<unjar src="${icu4j.data.jar}" dest="${bin.dir}">
<patternset>
- <exclude name="**/coll/*"/>
- <exclude name="**/curr/*"/>
+ <exclude name="${icu4j.data.path}/coll/**"/>
+ <exclude name="${icu4j.data.path}/curr/**"/>
+ <exclude name="${icu4j.data.path}/lang/**"/>
+ <exclude name="${icu4j.data.path}/region/**"/>
+ <exclude name="${icu4j.data.path}/translit/**"/>
<exclude name="**/*.cnv"/>
- <exclude name="**/convalias.icu"/>
- <exclude name="**/lang/*"/>
- <exclude name="**/region/*"/>
- <exclude name="**/translit/*"/>
+ <exclude name="**/cnvalias.icu"/>
</patternset>
</unjar>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/brkitr"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/rbnf"/>
+ </antcall>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/zone"/>
+ </antcall>
</target>
</project>
diff --git a/main/classes/core/src/com/ibm/icu/ICUConfig.properties b/main/classes/core/src/com/ibm/icu/ICUConfig.properties
index c25d565..0a7e5bc 100644
--- a/main/classes/core/src/com/ibm/icu/ICUConfig.properties
+++ b/main/classes/core/src/com/ibm/icu/ICUConfig.properties
@@ -1,6 +1,6 @@
#*
#*******************************************************************************
-#* Copyright (C) 2008-2010, International Business Machines Corporation and *
+#* Copyright (C) 2008-2011, International Business Machines Corporation and *
#* others. All Rights Reserved. *
#*******************************************************************************
#* This is the properties contains ICU runtime configuration
@@ -21,3 +21,11 @@
# data.
#
com.ibm.icu.text.DecimalFormat.SkipExtendedSeparatorParsing = false
+
+
+#
+# [Internal Use Only]
+# Disable resource path scan for building full locale name list
+# at run time.
+#
+com.ibm.icu.impl.ICUResourceBundle.skipRuntimeLocaleResourceScan = false
diff --git a/main/classes/core/src/com/ibm/icu/impl/ICUResourceBundle.java b/main/classes/core/src/com/ibm/icu/impl/ICUResourceBundle.java
index fc15cdd..19c9868 100644
--- a/main/classes/core/src/com/ibm/icu/impl/ICUResourceBundle.java
+++ b/main/classes/core/src/com/ibm/icu/impl/ICUResourceBundle.java
@@ -1,6 +1,6 @@
/*
* *****************************************************************************
- * Copyright (C) 2005-2010, International Business Machines Corporation and *
+ * Copyright (C) 2005-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
* *****************************************************************************
*/
@@ -494,6 +494,10 @@
private static final String DEFAULT_TAG = "default";
+ // The name of text file generated by ICU4J build script including all locale names
+ // (canonical, alias and root)
+ private static final String FULL_LOCALE_NAMES_LIST = "fullLocaleNames.lst";
+
// Flag for enabling/disabling debugging code
private static final boolean DEBUG = ICUDebug.enabled("localedata");
@@ -566,55 +570,58 @@
List<String> resList = null;
- // scan available locale resources under the base url first
- try {
- Enumeration<URL> urls = root.getResources(bn);
- while (urls.hasMoreElements()) {
- URL url = urls.nextElement();
- URLHandler handler = URLHandler.get(url);
- if (handler != null) {
- final List<String> lst = new ArrayList<String>();
- URLVisitor v = new URLVisitor() {
- public void visit(String s) {
- //TODO: This is ugly hack. We have to figure out how
- // we can distinguish locale data from others
- if (s.endsWith(".res")) {
- String locstr = s.substring(0, s.length() - 4);
- if (locstr.contains("_") && !locstr.equals("res_index")) {
- // locale data with country/script contain "_",
- // except for res_index.res
- lst.add(locstr);
- } else if (locstr.length() == 2 || locstr.length() == 3) {
- // all 2-letter or 3-letter entries are all locale
- // data at least for now
- lst.add(locstr);
- } else if (locstr.equalsIgnoreCase("root")) {
- // root locale is a special case
- lst.add(ULocale.ROOT.toString());
+ String skipScan = ICUConfig.get("com.ibm.icu.impl.ICUResourceBundle.skipRuntimeLocaleResourceScan", "false");
+ if (!skipScan.equalsIgnoreCase("true")) {
+ // scan available locale resources under the base url first
+ try {
+ Enumeration<URL> urls = root.getResources(bn);
+ while (urls.hasMoreElements()) {
+ URL url = urls.nextElement();
+ URLHandler handler = URLHandler.get(url);
+ if (handler != null) {
+ final List<String> lst = new ArrayList<String>();
+ URLVisitor v = new URLVisitor() {
+ public void visit(String s) {
+ //TODO: This is ugly hack. We have to figure out how
+ // we can distinguish locale data from others
+ if (s.endsWith(".res")) {
+ String locstr = s.substring(0, s.length() - 4);
+ if (locstr.contains("_") && !locstr.equals("res_index")) {
+ // locale data with country/script contain "_",
+ // except for res_index.res
+ lst.add(locstr);
+ } else if (locstr.length() == 2 || locstr.length() == 3) {
+ // all 2-letter or 3-letter entries are all locale
+ // data at least for now
+ lst.add(locstr);
+ } else if (locstr.equalsIgnoreCase("root")) {
+ // root locale is a special case
+ lst.add(ULocale.ROOT.toString());
+ }
}
}
- }
- };
- handler.guide(v, false);
+ };
+ handler.guide(v, false);
- if (resList == null) {
- resList = new ArrayList<String>(lst);
+ if (resList == null) {
+ resList = new ArrayList<String>(lst);
+ } else {
+ resList.addAll(lst);
+ }
} else {
- resList.addAll(lst);
+ if (DEBUG) System.out.println("handler for " + url + " is null");
}
- } else {
- if (DEBUG) System.out.println("handler for " + url + " is null");
}
+ } catch (IOException e) {
+ if (DEBUG) System.out.println("ouch: " + e.getMessage());
+ resList = null;
}
- } catch (IOException e) {
- if (DEBUG) System.out.println("ouch: " + e.getMessage());
- resList = null;
}
if (resList == null) {
- // look for prebuilt indices next
+ // look for prebuilt full locale names list next
try {
- InputStream s = root.getResourceAsStream(bn + ICU_RESOURCE_INDEX + ".txt");
+ InputStream s = root.getResourceAsStream(bn + FULL_LOCALE_NAMES_LIST);
if (s != null) {
resList = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(s, "ASCII"));
@@ -646,11 +653,19 @@
if(list == null){
if (DEBUG) System.out.println("createFullLocaleNameArray returned null");
// Use locale name set as the last resort fallback
- return createLocaleNameSet(baseName, loader);
+ Set<String> locNameSet = createLocaleNameSet(baseName, loader);
+ String rootLocaleID = ULocale.ROOT.toString();
+ if (!locNameSet.contains(rootLocaleID)) {
+ // We need to add the root locale in the set
+ Set<String> tmp = new HashSet<String>(locNameSet);
+ tmp.add(rootLocaleID);
+ locNameSet = Collections.unmodifiableSet(tmp);
+ }
+ return locNameSet;
}
- HashSet<String> set = new HashSet<String>();
- set.addAll(list);
- return Collections.unmodifiableSet(set);
+ Set<String> fullLocNameSet = new HashSet<String>();
+ fullLocNameSet.addAll(list);
+ return Collections.unmodifiableSet(fullLocNameSet);
}
private static Set<String> createLocaleNameSet(String baseName, ClassLoader loader) {
diff --git a/main/classes/core/src/com/ibm/icu/lang/UCharacter.java b/main/classes/core/src/com/ibm/icu/lang/UCharacter.java
index 8424ea9..0558498 100644
--- a/main/classes/core/src/com/ibm/icu/lang/UCharacter.java
+++ b/main/classes/core/src/com/ibm/icu/lang/UCharacter.java
@@ -1,6 +1,7 @@
+//##header
/**
*******************************************************************************
-* Copyright (C) 1996-2010, International Business Machines Corporation and *
+* Copyright (C) 1996-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -5736,6 +5737,12 @@
return c1;
}
+//#if defined(ECLIPSE)
+//## public static final int codePointAt(String seq, int index) {
+//## return codePointAt((CharSequence)seq, index);
+//## }
+//#endif
+
/**
* Cover the JDK 1.5 API, for convenience. Return the code point at index.
* <br/><b>Note</b>: the semantics of this API is different from the related UTF16
@@ -5806,6 +5813,12 @@
return c2;
}
+//#if defined(ECLIPSE)
+//## public static final int codePointBefore(String seq, int index) {
+//## return codePointBefore((CharSequence)seq, index);
+//## }
+//#endif
+
/**
* Cover the JDK 1.5 API, for convenience. Return the code point before index.
* <br/><b>Note</b>: the semantics of this API is different from the related UTF16
@@ -5951,6 +5964,12 @@
return len;
}
+//#if defined(ECLIPSE)
+//## public static int codePointCount(String text, int start, int limit) {
+//## return codePointCount((CharSequence)text, start, limit);
+//## }
+//#endif
+
/**
* Cover the JDK API, for convenience. Count the number of code points in the range of text.
* @param text the characters to check
@@ -6024,6 +6043,12 @@
return index;
}
+//#if defined(ECLIPSE)
+//## public static int offsetByCodePoints(String text, int index, int codePointOffset) {
+//## return offsetByCodePoints((CharSequence)text, index, codePointOffset);
+//## }
+//#endif
+
/**
* Cover the JDK API, for convenience. Adjust the char index by a code point offset.
* @param text the characters to check
diff --git a/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java b/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
index 0bbcfa6..72e4962 100644
--- a/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
+++ b/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
@@ -1,6 +1,7 @@
+//##header
/*
*******************************************************************************
- * Copyright (C) 1996-2010, International Business Machines Corporation and *
+ * Copyright (C) 1996-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -2958,11 +2959,17 @@
* @see #setRoundingMode
* @stable ICU 2.0
*/
+//#if defined(ECLIPSE)
+//## public BigDecimal getRoundingIncrement() {
+//## return roundingIncrementICU;
+//## }
+//#else
public java.math.BigDecimal getRoundingIncrement() {
if (roundingIncrementICU == null)
return null;
return roundingIncrementICU.toBigDecimal();
}
+//#endif
/**
* {@icu} Sets the rounding increment. This method also controls whether rounding is
diff --git a/main/classes/core/src/com/ibm/icu/util/VersionInfo.java b/main/classes/core/src/com/ibm/icu/util/VersionInfo.java
index 51fe81d..8f200aa 100644
--- a/main/classes/core/src/com/ibm/icu/util/VersionInfo.java
+++ b/main/classes/core/src/com/ibm/icu/util/VersionInfo.java
@@ -1,6 +1,6 @@
/*
*******************************************************************************
- * Copyright (C) 1996-2010, International Business Machines Corporation and *
+ * Copyright (C) 1996-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -466,7 +466,7 @@
UNICODE_5_0 = getInstance(5, 0, 0, 0);
UNICODE_5_1 = getInstance(5, 1, 0, 0);
UNICODE_5_2 = getInstance(5, 2, 0, 0);
- ICU_VERSION = getInstance(4, 4, 1, 1);
+ ICU_VERSION = getInstance(4, 4, 2, 1);
ICU_DATA_VERSION = getInstance(4, 4, 0, 1);
UCOL_RUNTIME_VERSION = getInstance(6);
UCOL_BUILDER_VERSION = getInstance(7);
diff --git a/main/classes/currdata/build.xml b/main/classes/currdata/build.xml
index 3051404..8c5877f 100644
--- a/main/classes/currdata/build.xml
+++ b/main/classes/currdata/build.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -28,8 +28,12 @@
<target name="copy-data" description="Extract pre-built ICU currency data files and copy them to the project's binary directory">
<unjar src="${icu4j.data.jar}" dest="${bin.dir}">
- <patternset includes="**/curr/*"/>
+ <patternset includes="${icu4j.data.path}/curr/**"/>
</unjar>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/curr"/>
+ </antcall>
</target>
</project>
diff --git a/main/classes/langdata/build.xml b/main/classes/langdata/build.xml
index 3f22b8e..503a917 100644
--- a/main/classes/langdata/build.xml
+++ b/main/classes/langdata/build.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -28,8 +28,12 @@
<target name="copy-data" description="Extract pre-built ICU language data files and copy them to the project's binary directory">
<unjar src="${icu4j.data.jar}" dest="${bin.dir}">
- <patternset includes="**/lang/*"/>
+ <patternset includes="${icu4j.data.path}/lang/**"/>
</unjar>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/lang"/>
+ </antcall>
</target>
</project>
diff --git a/main/classes/regiondata/build.xml b/main/classes/regiondata/build.xml
index f990b76..79e43bf 100644
--- a/main/classes/regiondata/build.xml
+++ b/main/classes/regiondata/build.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -28,8 +28,12 @@
<target name="copy-data" description="Extract pre-built ICU region data files and copy them to the project's binary directory">
<unjar src="${icu4j.data.jar}" dest="${bin.dir}">
- <patternset includes="**/region/*"/>
+ <patternset includes="${icu4j.data.path}/region/**"/>
</unjar>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/region"/>
+ </antcall>
</target>
</project>
diff --git a/main/classes/translit/build.xml b/main/classes/translit/build.xml
index f5ac7af..4f6d707 100644
--- a/main/classes/translit/build.xml
+++ b/main/classes/translit/build.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -28,8 +28,12 @@
<target name="copy-data" description="Extract pre-built ICU transliteration data files and copy them to the project's binary directory">
<unjar src="${icu4j.data.jar}" dest="${bin.dir}">
- <patternset includes="**/translit/*"/>
+ <patternset includes="${icu4j.data.path}/translit/**"/>
</unjar>
+
+ <antcall target="@full-locale-names">
+ <param name="res.dir" value="${bin.dir}/${icu4j.data.path}/translit"/>
+ </antcall>
</target>
</project>
diff --git a/main/shared/build/common-targets.xml b/main/shared/build/common-targets.xml
index 1807f28..bfaaf84 100644
--- a/main/shared/build/common-targets.xml
+++ b/main/shared/build/common-targets.xml
@@ -1,6 +1,6 @@
<!--
*******************************************************************************
-* Copyright (C) 2009, International Business Machines Corporation and *
+* Copyright (C) 2009-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
-->
@@ -72,6 +72,25 @@
<antcall target="_all.${ant.project.name}"/>
</target>
+ <target name="@full-locale-names">
+ <echo message="Generating ${res.dir}/fullLocaleNames.lst"/>
+ <pathconvert pathsep="${line.separator}" property="full.locale.names">
+ <fileset dir="${res.dir}">
+ <include name="??.res"/>
+ <include name="??_*.res"/>
+ <include name="???.res"/>
+ <include name="???_*.res"/>
+ <include name="root.res"/>
+ <exclude name="res_index.res"/>
+ </fileset>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*.res" to="*"/>
+ </chainedmapper>
+ </pathconvert>
+ <echo message="${full.locale.names}" file="${res.dir}/fullLocaleNames.lst"/>
+ </target>
+
<!-- Dependencies -->
<!-- collate -->
diff --git a/main/shared/build/common.properties b/main/shared/build/common.properties
index c185b0c..401da32 100644
--- a/main/shared/build/common.properties
+++ b/main/shared/build/common.properties
@@ -1,12 +1,13 @@
#*******************************************************************************
-#* Copyright (C) 2009-2010, International Business Machines Corporation and *
+#* Copyright (C) 2009-2011, International Business Machines Corporation and *
#* others. All Rights Reserved. *
#*******************************************************************************
# Version numbers, etc.
icu4j.spec.version = 4.4
-icu4j.impl.version = 4.4.2
-current.year = 2010
+icu4j.impl.version = 4.4.2.1
+icu4j.data.version = 44
+current.year = 2011
corp = IBM Corporation
copyright = Copyright 2000-${current.year}, International Business Machines Corporation and others. All Rights Reserved.
@@ -54,3 +55,6 @@
icu4j.tools.jar = ${icu4j.tools.dir}/${jar.dir}/icu4j-tools.jar
icu4j.demos.jar = ${icu4j.demos.dir}/${jar.dir}/icu4jdemos.jar
+
+# Misc
+icu4j.data.path = com/ibm/icu/impl/data/icudt${icu4j.data.version}b
diff --git a/main/shared/data/icudata.jar b/main/shared/data/icudata.jar
index 068fbbd..f9653d2 100755
--- a/main/shared/data/icudata.jar
+++ b/main/shared/data/icudata.jar
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:376755f97046c388374f005290325814266aca6e1d25c1e41ec433ea1cc23a2b
-size 7021718
+oid sha256:ba2fa6190f003421be3232f9b51e1c0a19379686d4d64e0c9d0b744f984446d2
+size 6990527
diff --git a/main/tests/core/src/com/ibm/icu/dev/test/calendar/DataDrivenCalendarTest.java b/main/tests/core/src/com/ibm/icu/dev/test/calendar/DataDrivenCalendarTest.java
index 15342f5..dc0aad6 100644
--- a/main/tests/core/src/com/ibm/icu/dev/test/calendar/DataDrivenCalendarTest.java
+++ b/main/tests/core/src/com/ibm/icu/dev/test/calendar/DataDrivenCalendarTest.java
@@ -1,6 +1,6 @@
/*
*******************************************************************************
- * Copyright (C) 2007-2008, International Business Machines Corporation and *
+ * Copyright (C) 2007-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -16,6 +16,7 @@
import com.ibm.icu.text.DateFormat;
import com.ibm.icu.text.SimpleDateFormat;
import com.ibm.icu.util.Calendar;
+import com.ibm.icu.util.TimeZone;
import com.ibm.icu.util.ULocale;
/**
@@ -269,9 +270,15 @@
logln(caseString + " SUCCESS: got=expected="+toDate);
logln("PASS: "+caseString+" matched! ");
} else {
- errln(caseString + " FAIL: got " +
+ if (caseString.equals("[case 31]") && TimeZone.getDefaultTimeZoneType() == TimeZone.TIMEZONE_JDK) {
+ logln(caseString + " FAIL(expected): got " +
+ toCalendar.getTimeInMillis() + " expected " +
+ toDate);
+ } else {
+ errln(caseString + " FAIL: got " +
toCalendar.getTimeInMillis() + " expected " +
toDate);
+ }
}
}else if (!toSet.matches(toCalendar, diffSet)) {
String diffs = diffSet.diffFrom(toSet);
diff --git a/main/tests/core/src/com/ibm/icu/dev/test/calendar/JapaneseTest.java b/main/tests/core/src/com/ibm/icu/dev/test/calendar/JapaneseTest.java
index 9635cd4..11717ce 100644
--- a/main/tests/core/src/com/ibm/icu/dev/test/calendar/JapaneseTest.java
+++ b/main/tests/core/src/com/ibm/icu/dev/test/calendar/JapaneseTest.java
@@ -1,6 +1,6 @@
/*
*******************************************************************************
- * Copyright (C) 2002-2010, International Business Machines Corporation and *
+ * Copyright (C) 2002-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -208,8 +208,12 @@
fmt.applyPattern("G y");
logln("fmt's locale = " + fmt.getLocale(ULocale.ACTUAL_LOCALE));
//SimpleDateFormat fmt = new SimpleDateFormat("G y", new Locale("en_US@calendar=japanese"));
- long aDateLong = -3197117222000L;
- Date aDate = new Date(aDateLong); //08 Sept 1868
+ long aDateLong = -3197117222000L; // 1868-09-08 00:00 Pacific Time (GMT-07:52:58)
+ if (TimeZone.getDefaultTimeZoneType() == TimeZone.TIMEZONE_JDK) {
+ // Java time zone implementation does not support LMTs
+ aDateLong = -3197116800000L; // 1868-09-08 00:00 Pacific Time (GMT-08:00)
+ }
+ Date aDate = new Date(aDateLong);
logln("aDate: " + aDate.toString() +", from " + aDateLong);
String str;
str = fmt2.format(aDate);
diff --git a/main/tests/core/src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java b/main/tests/core/src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java
index 642767b..217044c 100644
--- a/main/tests/core/src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java
+++ b/main/tests/core/src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java
@@ -1,6 +1,7 @@
+//##header
/*****************************************************************************************
*
- * Copyright (C) 1996-2009, International Business Machines
+ * Copyright (C) 1996-2011, International Business Machines
* Corporation and others. All Rights Reserved.
**/
@@ -334,14 +335,19 @@
public void testJB6354()
{
DecimalFormat pat = new DecimalFormat("#,##0.00");
+//#if defined(ECLIPSE)
+//## BigDecimal r1, r2;
+//#else
+ java.math.BigDecimal r1, r2;
+//#endif
// get default rounding increment
- java.math.BigDecimal r1 = pat.getRoundingIncrement();
+ r1 = pat.getRoundingIncrement();
// set rounding mode with zero increment. Rounding
// increment should be set by this operation
pat.setRoundingMode(BigDecimal.ROUND_UP);
- java.math.BigDecimal r2 = pat.getRoundingIncrement();
+ r2 = pat.getRoundingIncrement();
// check for different values
if ((r1 != null) && (r2 != null))
diff --git a/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java b/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
index bcf9587..e8e743d 100644
--- a/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
+++ b/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
@@ -1,6 +1,7 @@
+//##header
/*
*******************************************************************************
- * Copyright (C) 2001-2010, International Business Machines Corporation and *
+ * Copyright (C) 2001-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -1149,7 +1150,12 @@
expect2(df, 2.0, "2.00 *&' Rs '&*");
expect2(df, -1.0, "-1.00 *&' Rs '&*");
- java.math.BigDecimal r = df.getRoundingIncrement();
+//#if defined(ECLIPSE)
+//## BigDecimal r;
+//#else
+ java.math.BigDecimal r;
+//#endif
+ r = df.getRoundingIncrement();
if (r != null) {
errln("FAIL: rounding = " + r + ", expect null");
}
diff --git a/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java b/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
index f869be9..8e33498 100644
--- a/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
+++ b/main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
@@ -1,6 +1,7 @@
+//##header
/*
*******************************************************************************
- * Copyright (C) 1996-2010, International Business Machines Corporation and *
+ * Copyright (C) 1996-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -259,7 +260,11 @@
} else if (protocol.equals("file")) {
return getFileTargets(dataURL);
} else {
- errln("Don't know how to test " + dataURL.getPath());
+//#if defined(ECLIPSE)
+//## logln("Don't know how to test " + dataURL);
+//#else
+ errln("Don't know how to test " + dataURL);
+//#endif
return null;
}
}
diff --git a/main/tests/core/src/com/ibm/icu/dev/test/serializable/CoverageTest.java b/main/tests/core/src/com/ibm/icu/dev/test/serializable/CoverageTest.java
index 6c96afe..48275c9 100644
--- a/main/tests/core/src/com/ibm/icu/dev/test/serializable/CoverageTest.java
+++ b/main/tests/core/src/com/ibm/icu/dev/test/serializable/CoverageTest.java
@@ -1,6 +1,7 @@
+//##header
/*
*******************************************************************************
- * Copyright (C) 2005-2010, International Business Machines Corporation and *
+ * Copyright (C) 2005-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -201,6 +202,14 @@
while (urlEnum.hasMoreElements()) {
URL url = urlEnum.nextElement();
URLHandler handler = URLHandler.get(url);
+ if (handler == null) {
+//#if defined(ECLIPSE)
+//## logln("Unsupported URL: " + url);
+//#else
+ errln("Unsupported URL: " + url);
+//#endif
+ continue;
+ }
handler.guide(this, true, false);
}
} catch (IOException e) {