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 (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  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, &quot;Program&quot; 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 (&quot;Redistributor&quot;) 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 (&quot;ICU4J&quot;) 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 (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  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, &quot;Program&quot; 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 (&quot;Redistributor&quot;) 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 (&quot;ICU4J&quot;) 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) {