Bug 252809 - Localization - ICU4J
Summary: Localization - ICU4J
Status: RESOLVED FIXED
Alias: None
Product: Simultaneous Release
Classification: Eclipse Foundation
Component: Prereq (show other bugs)
Version: Galileo   Edit
Hardware: All All
: P1 normal (vote)
Target Milestone: M6   Edit
Assignee: Simultaneous Release Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 252842 254179 254181 254182 254183 254184 254185 254186 254187 254188 254189 254190 254191 254192 254193 254194 254195 254196 254197 254198 254199 254200 254201 254202 254203 254204 255892 257303 257579 257893 258610 260155 262486 263344 263372 263400
Blocks: 258478
  Show dependency tree
 
Reported: 2008-10-30 12:49 EDT by Bjorn Freeman-Benson CLA
Modified: 2009-10-09 13:14 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bjorn Freeman-Benson CLA 2008-10-30 12:49:17 EDT
Must use  ICU4J.
Comment 1 Ed Merks CLA 2008-11-10 19:35:35 EST
Here's a requirement cast in black and white. Unfortunately EMF cannot build dependencies on libraries larger than EMF itself.  It must work stand alone without Eclispe dependencies, so it cannot meet this requirement in the black and white form in which it's stated.
Comment 2 John Arthorne CLA 2008-11-10 21:38:31 EST
I don't think the size issue alone is valid because there is a 100KB implementation of the ICU4J API that forwards to java.* classes (com.ibm.icu.base).

I'm not sure I get the "no Eclipse dependencies" part... isn't EMF Eclipse? ICU4J on the other hand isn't an Eclipse dependency.

However I agree that the wording of this requirement is a bit black and white and could use some elaboration. ICU4J is only really needed for collating and assembling translated messages containing certain locale-dependent data such as numbers, dates, currency, etc. This is mostly a concern in GUI code that is presenting such translated strings. The Equinox project, for example, has never found a need for ICU4J's capabilities and doesn't currently use it. EMF might fall into the same boat here if it doesn't currently use java.text.*, or the locale-sensitive classes in java.util (Calendar, TimeZone, Currency, Locale, etc). I would minimally suggest wording like "Must use ICU4J where appropriate" or some such.
Comment 3 Ed Merks CLA 2008-11-11 06:28:15 EST
Yes, EMF is part of Eclipse, but it also has a long history of running stand alone outside of Eclipse with only EMF plugins/jars on the classpath so that the runtime, models, and even the item providers can be used in any runtime environment. Some of the issues for which ICU4J was needed were also addressed with Java 5.0.  E.g., the handling of unicode code points. 
Comment 4 Ketan Padegaonkar CLA 2009-01-08 01:25:52 EST
Part of SWTBot runs on top of plain SWT/JFace. SWTBot does not use any locale sensitive classes, as such this rather stringent requirement cannot be met by SWTBot.

Please advice on how this can be resolved.
Comment 5 John Arthorne CLA 2009-01-26 13:29:05 EST
Ketan, I think it is safe to assume that "must use ICU4J" implies using ICU4J when required. Specifically, to use ICU4J to replace certain java.* APIs as described on: http://wiki.eclipse.org/ICU4J. If you are not using those classes then there isn't really any way that you *can* use ICU4J. It would be useful to get clarification from the planning council on this point though.
Comment 6 Ketan Padegaonkar CLA 2009-01-26 22:46:47 EST
(In reply to comment #5)
> Ketan, I think it is safe to assume that "must use ICU4J" implies using ICU4J
> when required. Specifically, to use ICU4J to replace certain java.* APIs as
> described on: http://wiki.eclipse.org/ICU4J. If you are not using those classes
> then there isn't really any way that you *can* use ICU4J. It would be useful to
> get clarification from the planning council on this point though.

Thanks for the clarification. I did read the page before, and it seems that ICU4J is a drop in replacement for some of java's localization stuff.

SWTBot does use the Calendar class, but given that the SWTBot core (that tests plain SWT) is just 432Kb in size(including sources), it does not seem worth bundling ICU4j which is a massive 4.3MB dependency. I'm looking for advice on exception cases where it's OK to *not* use ICU4j.

SWTBot core is built on top of plain SWT/junit, and needs to run with a minimum footprint. This also seems to be point that Ed is trying to make in comment #1.

The rest of SWTBot that builds on the core does not use the listed classes, and will therefore not be needing ICU4j at all.
Comment 7 David Williams CLA 2009-10-09 13:14:04 EDT
THis is a routine mass closing of the previous release umbrella tracking bugs.