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.

Reply via email to