Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipse-dev] ICU4J in Eclipse 3.2

There has been some buzz around the addition of the ICU4J libraries to the 
Eclipse SDK for 3.2, so I thought I would send out a note describing the 
motivation for this move and provide some general guidance on how the 
community is expected to use ICU4J, if they choose to adopt it.

ICU4J is a set of Java libraries that provides more comprehensive support 
for Unicode, software globalization, and internationalization.  In order 
to provide this functionality to the Eclipse community, ICU4J was added to 
the Eclipse platform build for the 3.2 M4 milestone.  You will see it in 
the build as a plugin named com.ibm.icu.  The Eclipse platform will be 
utilizing the ICU APIs for Eclipse 3.2. 

Especially for RCP applications, the size of the ICU4J library (on the 
order of 3MB) may be problematic.  In response to this, we are working on 
providing an ICU4J replacement plugin (whose size is on the order of 
100KB) that provides a functional subset of ICU4J API but instead calls 
the default Java API that already exists in the JDK.  The subset of ICU4J 
that Eclipse will be using is restricted to the following set of classes:
BreakIterator
CollationKey
Collator
DateFormat
DecimalFormat
NumberFormat
SimpleDateFormat
StringTokenizer

If your application needs to be compatible between both the ICU4J plugin 
and the replacement plugin (most often for size reasons), we recommend you 
only use the API in the classes from this list.  If you know that ICU4J 
will always be part of your application then you can safely use any of the 
ICU4J APIs.  The replacement plugin will be built separately and available 
as a download on the build pages, but this is still work in progress.  You 
can however, start using the ICU4J APIs since the ICU4J plugin is 
currently in the SDK build as of M4 (and beyond).

If you wish to use ICU4J, it is recommended that in your plugin manifest 
file instead of using the Require-Bundle header to specify the dependency 
on ICU4J (e.g.)
Require-Bundle: com.ibm.icu

that you use the Import-Package header to specify the plugin's dependency 
on ICU4J (e.g.).

Import-Package: com.ibm.icu.text,
 com.ibm.icu.util

This is to ensure you will not encounter compile or runtime errors if you 
decide to use the replacement plugin instead of the full ICU4J plugin, or 
vice-versa.

To find out more about ICU in general you can visit the following sites
http://icu.sourceforge.net/
http://www.ibm.com/software/globalization/icu/

Karice 



Back to the top