Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dtp-dev] ICU4J Adoption in DTP

As part of our Callisto responsibilities, we need to adopt ICU4J
(http://icu.sourceforge.net/) in DTP. This provides robust
internationalization/localization support in ways not covered by the
standard J2SE.Stating in Eclipse 3.2M4, an ICU4J plug-in is included in the
platform download, and this is the version that we should use in DTP.

The impact of making this change is using ICU4J equivalent classes in place
of stock J2SE one. These are:

java.text.BreakIterator
java.text.CollationKey
java.text.Collator
java.text.DateFormat
java.text.DecimalFormat
java.text.NumberFormat
java.text.SimpleDateFormat
java.text.StringCharacterIterator
java.util.StringTokenizer

Essentially, this means replacing the java.* package names for these class
(typically in import statements) to com.ibm.icu.* equivalents. Scanning the
code currently included in the DTP build, I found 31 occurrences in 13
plug-ins (See attached report). I'd like to suggest that one person (me)
makes all these changes, since each is easy and low-risk. In discussions
with the PMC yesterday, we set early February (2/10) as a target for
completing this. If the group agrees, I will make these changes for M3
(1/20) in all except for the ODA plug-ins, which will follow in early
February after the next BIRT release.

Next, there is the question of Eclipse 3.1 support. Fortunately, the ICU4J
plug-in is a stand-alone jar wrapper, so extracting it from Eclipse 3.2M4
and using it Eclipse 3.1 is, in theory, not a problem. When I tried this,
however, the ICU4J plug-in failed to install, due to OSGI compliance levels
and lazy-loading values set in the manifest file. We've dealt with the
lazy-loading values in the back-port of the org.eclipse.ui.navigator
plug-in already, so that was easy to fix. After some research, I found that
removing the compliance level flag allows the plug-in to install and load
in Eclipse 3.1. I tested the ICU4J functionality with a simple plug-in, and
it seemed to work correctly. Of course, I did not run a comprehensive test,
but nothing seems to be blocking this usage in Eclipse 3.1. In order to
make this available to the community for use and further testing, we have
included this tweaked version of ICU4J in today's "Eclipse 3.1
compatibility pack" iteration build, found on the DTP download page.

Regards,
John Graham
Eclipse Data Tools Platform PMC
Staff Software Engineer
Sybase, Inc.

(See attached file: icu4j_report.pdf)

Attachment: icu4j_report.pdf
Description: Adobe PDF document


Back to the top