Any reason not to use 4.0.1 instead? Can we upgrade to that quickly?
On Sun, Apr 19, 2009 at 9:45 PM, Regis <[email protected]> wrote: > As title, it's icu 4.0. Thanks. > > Nathan Beyer wrote: >> >> Is this icu 4.0 or 4.0.1? >> >> Sent from my iPhone >> >> On Apr 17, 2009, at 1:37 AM, [email protected] wrote: >> >>> Author: regisxu >>> Date: Fri Apr 17 06:37:53 2009 >>> New Revision: 765865 >>> >>> URL: http://svn.apache.org/viewvc?rev=765865&view=rev >>> Log: >>> Apply patches for HARMONY-6096: [classlib][icu] upgrade icu4j 3.8 to >>> icu4j 4.0 >>> >>> include patches config_icu40.diff, CurrencyTest_v2.diff and >>> Charset_v3.diff (with minor changes) >>> >>> Modified: >>> harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties >>> harmony/enhanced/classlib/trunk/make/build-java.xml >>> >>> harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java >>> >>> harmony/enhanced/classlib/trunk/modules/nio_char/src/main/java/java/nio/charset/Charset.java >>> >>> Modified: >>> harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties >>> URL: >>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties?rev=765865&r1=765864&r2=765865&view=diff >>> >>> ============================================================================== >>> --- >>> harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties >>> (original) >>> +++ >>> harmony/enhanced/classlib/trunk/depends/files/bootclasspath.properties Fri >>> Apr 17 06:37:53 2009 >>> @@ -165,8 +165,8 @@ >>> >>> # ICU functionality for text/characters are provided by the ICU4J >>> # and ICU4J-charsets JAR files. >>> -bootclasspath.31=icu4j_3.8/icu4j-3_8.jar >>> -bootclasspath.32=icu4j_3.8/icu4j-charsets-3_8.jar >>> +bootclasspath.31=icu4j_4.0/icu4j-4_0.jar >>> +bootclasspath.32=icu4j_4.0/icu4j-charsets-4_0.jar >>> >>> # The following JARs are from Xerces/Xalan >>> bootclasspath.34=xalan-j_2.7.0/xalan.jar >>> >>> Modified: harmony/enhanced/classlib/trunk/make/build-java.xml >>> URL: >>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/make/build-java.xml?rev=765865&r1=765864&r2=765865&view=diff >>> >>> ============================================================================== >>> --- harmony/enhanced/classlib/trunk/make/build-java.xml (original) >>> +++ harmony/enhanced/classlib/trunk/make/build-java.xml Fri Apr 17 >>> 06:37:53 2009 >>> @@ -203,7 +203,7 @@ >>> <fileset dir="${depends.jars}"> >>> <patternset includes="bcel-5.2/*.jar" /> >>> <patternset includes="asm-3.1/*.jar" /> >>> - <patternset includes="icu4j_3.8/*.jar" /> >>> + <patternset includes="icu4j_4.0/*.jar" /> >>> <patternset includes="mx4j_3.0.2/*.jar" /> >>> <patternset includes="xalan-j_2.7.0/*.jar" /> >>> <patternset includes="xerces_2.9.1/*.jar" /> >>> >>> Modified: >>> harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java >>> URL: >>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java?rev=765865&r1=765864&r2=765865&view=diff >>> >>> ============================================================================== >>> --- >>> harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java >>> (original) >>> +++ >>> harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java >>> Fri Apr 17 06:37:53 2009 >>> @@ -102,11 +102,11 @@ >>> loc = new Locale("", "ZAR"); >>> Currency.getInstance(loc); >>> >>> - loc = new Locale("", "FX"); >>> - Currency.getInstance(loc); >>> + // loc = new Locale("", "FX"); >>> + // Currency.getInstance(loc); >>> >>> - loc = new Locale("", "FXX"); >>> - Currency.getInstance(loc); >>> + // loc = new Locale("", "FXX"); >>> + // Currency.getInstance(loc); >>> } >>> >>> /** >>> @@ -119,15 +119,15 @@ >>> Currency currUS = Currency.getInstance("USD"); >>> >>> Locale.setDefault(Locale.US); >>> - assertEquals("currK.getSymbol()", "KRW", currK.getSymbol()); >>> + assertEquals("currK.getSymbol()", "\u20a9", currK.getSymbol()); >>> // Some non-bug differences below because of CLDR data. >>> - assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI >>> + assertEquals("currI.getSymbol()", "\u20a8", currI >>> .getSymbol()); >>> assertEquals("currUS.getSymbol()", "$", currUS.getSymbol()); >>> >>> Locale.setDefault(new Locale("ko", "KR")); >>> assertEquals("currK.getSymbol()", "\uffe6", currK.getSymbol()); >>> - assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI >>> + assertEquals("currI.getSymbol()", "0\u2264Rs.|1\u2264Re.|1<Rs.", >>> currI >>> .getSymbol()); >>> assertEquals("currUS.getSymbol()", "US$", currUS.getSymbol()); >>> >>> @@ -189,10 +189,10 @@ >>> assertEquals("CAD", currCA.getSymbol(Locale.JAPANESE)); >>> assertEquals("$Ca", currCA.getSymbol(Locale.FRANCE)); >>> assertEquals("CAD", currCA.getSymbol(Locale.FRENCH)); >>> - assertEquals("Can$", currCA.getSymbol(Locale.US)); >>> + assertEquals("CA$", currCA.getSymbol(Locale.US)); >>> assertEquals("CAD", currCA.getSymbol(Locale.ENGLISH)); >>> assertEquals("Can$", currCA.getSymbol(new Locale("es", "US"))); >>> - assertEquals("Can$", currCA.getSymbol(new Locale("en", "US"))); >>> + assertEquals("CA$", currCA.getSymbol(new Locale("en", "US"))); >>> >>> assertEquals("$", currCA.getSymbol(Locale.CANADA)); >>> assertEquals("$", currCA.getSymbol(Locale.CANADA_FRENCH)); >>> >>> Modified: >>> harmony/enhanced/classlib/trunk/modules/nio_char/src/main/java/java/nio/charset/Charset.java >>> URL: >>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/nio_char/src/main/java/java/nio/charset/Charset.java?rev=765865&r1=765864&r2=765865&view=diff >>> >>> ============================================================================== >>> --- >>> harmony/enhanced/classlib/trunk/modules/nio_char/src/main/java/java/nio/charset/Charset.java >>> (original) >>> +++ >>> harmony/enhanced/classlib/trunk/modules/nio_char/src/main/java/java/nio/charset/Charset.java >>> Fri Apr 17 06:37:53 2009 >>> @@ -109,6 +109,8 @@ >>> // cached Charset table >>> private final static HashMap<String, Charset> cachedCharsetTable = new >>> HashMap<String, Charset>(); >>> >>> + private static boolean inForNameInternal = false; >>> + >>> static { >>> /* >>> * Create built-in charset provider even if no privilege to access >>> @@ -322,6 +324,11 @@ >>> */ >>> �...@suppresswarnings("unchecked") >>> public static SortedMap<String, Charset> availableCharsets() { >>> + // workaround: conflicted Charsets with icu4j 4.0 >>> + Charset.forName("TIS-620"); >>> + Charset.forName("windows-1258"); >>> + Charset.forName("cp856"); >>> + Charset.forName("cp922"); >>> // Initialize the built-in charsets map cache if necessary >>> if (null == _builtInCharsets) { >>> synchronized (Charset.class) { >>> @@ -468,8 +475,10 @@ >>> >>> // examine each configuration file >>> while (e.hasMoreElements()) { >>> - cs = searchConfiguredCharsets(charsetName, >>> contextClassLoader, >>> + inForNameInternal = true; >>> + cs = searchConfiguredCharsets(charsetName, >>> contextClassLoader, >>> e.nextElement()); >>> + inForNameInternal = false; >>> if (null != cs) { >>> cacheCharset(cs); >>> return cs; >>> @@ -477,6 +486,8 @@ >>> } >>> } catch (IOException ex) { >>> // Unexpected ClassLoader exception, ignore >>> + } finally { >>> + inForNameInternal = false; >>> } >>> return null; >>> } >>> @@ -485,13 +496,17 @@ >>> * save charset into cachedCharsetTable >>> */ >>> private static void cacheCharset(Charset cs) { >>> - cachedCharsetTable.put(cs.name(), cs); >>> + if (!cachedCharsetTable.containsKey(cs.name())){ >>> + cachedCharsetTable.put(cs.name(), cs); >>> + } >>> Set<String> aliasesSet = cs.aliases(); >>> if (null != aliasesSet) { >>> Iterator<String> iter = aliasesSet.iterator(); >>> while (iter.hasNext()) { >>> String alias = iter.next(); >>> - cachedCharsetTable.put(alias, cs); >>> + if (!cachedCharsetTable.containsKey(alias)) { >>> + cachedCharsetTable.put(alias, cs); >>> + } >>> } >>> } >>> } >>> @@ -525,8 +540,32 @@ >>> * If the specified charset name is illegal. >>> */ >>> public static boolean isSupported(String charsetName) { >>> - Charset cs = forNameInternal(charsetName); >>> - return (null != cs); >>> + if (inForNameInternal == true) { >>> + Charset cs = cachedCharsetTable.get(charsetName); >>> + if (null != cs) { >>> + return true; >>> + } >>> + >>> + if (null == charsetName) { >>> + throw new IllegalArgumentException(); >>> + } >>> + checkCharsetName(charsetName); >>> + >>> + // Try built-in charsets >>> + if (_builtInProvider == null) { >>> + _builtInProvider = new CharsetProviderImpl(); >>> + } >>> + cs = _builtInProvider.charsetForName(charsetName); >>> + if (null != cs) { >>> + cacheCharset(cs); >>> + return true; >>> + } >>> + return false; >>> + } else { >>> + Charset cs = forNameInternal(charsetName); >>> + return (null != cs); >>> + } >>> + >>> } >>> >>> /** >>> >>> >> > > > -- > Best Regards, > Regis. >
