From 3dca31cccdbf2b444ab2775a6b1d8461ff380b87 Mon Sep 17 00:00:00 2001
From: Doug Felt Release DateInternational Components for Unicode for Java
- Read Me for ICU4J 2.8
+ International Components for Unicode for Java (ICU4J)
+ Read Me for ICU4J 3.0 - Draft
-
+
- January 29th, 2004
For the most recent release, see the ICU4J download site.
-Today's global market demands programs that support a wide variety of languages and national conventions. Customers prefer software @@ -88,7 +92,7 @@ Java. For example, the Thai word-break is now in Java 1.4. However, if you are using Java 1.3, you can use the ICU4J package until you upgrade to 1.4.
-The ICU projects (ICU4C and ICU4J) use the X license. The X license is a non-viral and recommended free software license that is compatible with the GNU GPL license. This became effective with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J in mid-2001. All new ICU releases will adopt the X license; previous ICU releases continue to utilize the IPL (IBM Public License). Users of previous releases of ICU who want to adopt new ICU releases will need to accept the terms and conditions of the X license.
@@ -103,7 +107,7 @@ The text of the X license is available at htt For more details please see the press announcement and the Project FAQ. -
Parts of ICU4J depend on functionality that is only available in JDK 1.3
or later, although some components work under earlier JVMs. All
@@ -129,7 +133,7 @@ For more details please see the AIX 5.1, IBM JDK 1.3.1, 1.4.1
- There are two ways to download the ICU4J releases.
@@ -197,7 +201,7 @@ cvs logout
href="http://oss.software.ibm.com/icu4j/download/index.html">http://oss.software.ibm.com/icu4j/download/index.htmlHow to Download ICU4J
+How to Download ICU4J
Below, $Root is the placement of the icu directory in your file system, like "drive:\...\icu4j" in your environment. "drive:\..." stands for any @@ -205,40 +209,36 @@ drive and any directory on that drive that you chose to install icu4j into.
Information and build files:
-readme.html + | readme.html (this file) |
- A description of ICU4J (International Components for Unicode for Java) | +A description of ICU4J (International Components for Unicode for Java) |
releasenotes.html - | A description of features and changes in this and prior releases of ICU4J | +license.html | +The X license, used by ICU4J |
---|---|---|---|
license.html | -The X license, used by ICU4J | +build.bat | +A convenience bat file for building ICU4J with Ant on Windows |
build.bat | -A convenience bat file for building ICU4J with Ant on Windows | +build.sh | +A convenience sh file for building ICU4J with Ant on Unix |
build.sh | -A convenience sh file for building ICU4J with Ant on Unix | -||
build.xml | -Ant build file. See How to Install and Build for more information | +build.xml | +Ant build file. See How to Install and Build for more information |
The source directories mirror the package structure of the code.
Core packages become part of the ICU4J jar file.
API packages contain classes with supported API.
RichText classes are Core and API, but can be removed from icu4j.jar, and can be built into their own jar.
$Root/src/com/ibm/icu/dev Non-Core, Non-API |
- Packages used for internal development: + | $Root/src/com/ibm/icu/dev Non-Core, Non-API |
+ Packages used for internal development:
|
---|---|---|---|
$Root/src/com/ibm/icu/impl Core, Non-API |
- These are utility classes used from different ICU4J core packages. | +$Root/src/com/ibm/icu/impl Core, Non-API |
+ These are utility classes used from different ICU4J core packages. |
$Root/src/com/ibm/icu/lang Core, API |
- Character properties package. | +$Root/src/com/ibm/icu/lang Core, API |
+ Character properties package. |
$Root/src/com/ibm/icu/math Core, API |
- Additional math classes. | +$Root/src/com/ibm/icu/math Core, API |
+ Additional math classes. |
$Root/src/com/ibm/icu/text Core, API |
- Additional text classes. These add to, and in some cases replace, related core Java classes: + | $Root/src/com/ibm/icu/text Core, API |
+ Additional text classes. These add to, and in some cases replace, related core Java classes:
|
$Root/src/com/ibm/icu/util Core, API |
- Additional utility classes: + | $Root/src/com/ibm/icu/util Core, API |
+ Additional utility classes:
|
$Root/src/com/ibm/richtext RichText |
- Styled text editing + | $Root/src/com/ibm/richtext RichText |
+ Styled text editing package. This includes demos, tests, and GUIs for editing and displaying styled text. The richtext package provides a scrollable display, typing, arrow-key support, tabs, alignment and @@ -301,35 +301,33 @@ drive and any directory on that drive that you chose to install icu4j into. |
Building ICU4J creates and populates the following directories:
+Building ICU4J creates and populates the following directories:
-$Root/classes | -contains all class files | +$Root/classes | +contains all class files |
---|---|---|---|
$Root/doc | -contains JavaDoc for all packages | +$Root/doc | +contains JavaDoc for all packages |
ICU4J data is stored in the following locations:
-Data organization:
- -ICU4J data is stored in the following locations: - -
com.ibm.icu.impl.data |
- Holds data used by the ICU4J core packages (com.ibm.icu.lang , com.ibm.icu.text , com.ibm.icu.util , com.ibm.icu.math and com.ibm.icu.text ). In particular, all resource information is stored here. |
+ com.ibm.icu.impl.data |
+ Holds data used by the ICU4J core packages (com.ibm.icu.lang , com.ibm.icu.text , com.ibm.icu.util , com.ibm.icu.math and com.ibm.icu.text ). In particular, all resource information is stored here. |
---|---|---|---|
com.ibm.icu.dev.data |
- Holds data that is not part of ICU4J core, but rather part of a test, sample, or demo. | +com.ibm.icu.dev.data |
+ Holds data that is not part of ICU4J core, but rather part of a test, sample, or demo. |
The ICU user's guide contains lots of general information about ICU, in its C, C++, and Java incarnations.
@@ -354,11 +352,14 @@ drive and any directory on that drive that you chose to install icu4j into.To install ICU4J, simply place the prebuilt jar file icu4j.jar on your Java CLASSPATH. No other files are needed.
+Eclipse users: See the ICU4J site for information on +how to configure Eclipse to build ICU4J.
+To build ICU4J, you will need a Java2 JDK and the Ant build system. We strongly recommend using the Ant build system to build ICU4J:
@@ -401,73 +402,70 @@ Compiling 24 source files to F:\icu4j\classes Completed in 19 seconds -The following are some targets that you can give after ant. For more +
The following are some targets that you can provide to ant. For more targets, see the build.xml file:
-all | -Build all targets. | +all | +Build all targets. |
---|---|---|---|
core | -Build the main class files in the subdirectory classes. If no target + | core | +Build the main class files in the subdirectory classes. If no target is specified, core is assumed. |
tests | -Build the test class files. | +tests | +Build the test class files. |
demos | -Build the demos. | +demos | +Build the demos. |
tools | -Build the tools. | +tools | +Build the tools. |
docs | -Run javadoc over the main class files, generating an HTML documentation tree in the + | docs | +Run javadoc over the main class files, generating an HTML documentation tree in the subdirectory doc. |
jar | -Create a jar archive icu4j.jar in the root ICU4J directory containing + | jar | +Create a jar archive icu4j.jar in the root ICU4J directory containing the main class files. |
jarSrc | -Like the jar target, but containing only the source files. + | jarSrc | +Like the jar target, but containing only the source files. |
jarDocs | -Like the jar target, but containing only the docs. + | jarDocs | +Like the jar target, but containing only the docs. |
richedit | -Build the richedit core class files and tests. + | richedit | +Build the richedit core class files and tests. |
richeditJar | -Create the richedit jar file (which contains only the richedit core class files). + | richeditJar | +Create the richedit jar file (which contains only the richedit core class files). The file richedit.jar will be created in the ./richedit subdirectory. Any existing file of that name will be overwritten. |
richeditZip | -Create a zip archive of the richedit docs and jar file for distribution. The zip file richedit.zip + | richeditZip | +Create a zip archive of the richedit docs and jar file for distribution. The zip file richedit.zip will be created in the ./richedit subdirectory. Any existing file of that name will be overwritten. |
clean | -Remove all built targets, leaving the source. | +clean | +Remove all built targets, leaving the source. |
For more information, read the Ant documentation and the build.xml file.
@@ -480,424 +478,345 @@ Ant you can build by running javac and javadoc directly. This is not recommended. You may have to manually create destination directories.) -Some clients may not wish to ship all of ICU4J with their application, since the application might only use a small part of ICU4J. +ICU4J release 2.6 and later provide build options to build individual ICU4J 'modules' for a more compact distribution. +The modules are based on a service and the APIs that define it, e.g., +the normalizer module supports all the APIs of the Normalizer class (and some others). +Tests can be run to verify that the APIs supported by the module function correctly. +Because of internal code dependencies, a module contains extra classes that are not part of the module's core service API. +Some or most of the APIs of these extra classes will not work. Only the module's core service API is +guaranteed. Other APIs may work partially or not at all, so client code should avoid them.
++Individual modules are not built directly into their own separate jar files. Since their dependencies +often overlap, using separate modules to 'add on' ICU4J functionality would result in +unwanted duplication of class files. Instead, building a module causes a subset of ICU4J's +classes to be built and put into ICU4J's standard +build directory. After one or more module targets are built, the 'moduleJar' target can then be +built, which packages the class files into a 'module jar.' Other than the fact that it +contains fewer class files, little distinguishes this jar file from a full ICU4J jar file, +and in fact they share the same name.
+
Currently ICU4J can be divided into the following modules:
-
-
Module Name | +Ant Targets | +Test Package Supported | +Size | +|||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+
|
+
Modules:
+
Normalizer | +normalizer, normalizerTests | +com.ibm.icu.dev.test.normalizer | +355 KB | +||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
+
|
+|||||||||||
Collator | +collator, collatorTests | +com.ibm.icu.dev.test.collator | +1,716 KB | +||||||||
+
|
+|||||||||||
Calendar | +calendar, calendarTests | +com.ibm.icu.dev.test.calendar | +1,160 KB | +||||||||
+
|
+|||||||||||
BreakIterator | +breakIterator, breakIteratorTests | +com.ibm.icu.dev.test.breakiterator | +1,105 KB | +||||||||
+
|
+|||||||||||
Basic Properties | +propertiesBasic, propertiesTests | +com.ibm.icu.dev.test.lang | +350 KB | +||||||||
+
|
+|||||||||||
Full Properties | +propertiesFull, propertiesTests | +com.ibm.icu.dev.test.lang | +986 KB | +||||||||
+
|
+|||||||||||
Formatting | +format, formatTests | +com.ibm.icu.dev.test.format | +1,788 KB | +||||||||
+
|
+|||||||||||
Transforms | +transliterator, transliteratorTests | +com.ibm.icu.dev.test.translit | +1,364 KB | +||||||||
+
|
+
Building any of these modules is as easy as specifying a build target to the Ant build system,e.g:
To build a module that contains only the Normalizer API:
ant normalizer
java -classpath $icu4j_root/classes com.ibm.icu.dev.test.TestAll -nothrow -w
ant moduleJar
ant -projecthelp
Note: the demos provided with ICU4J are for the most part undocumented. This list can show you where to look, but you'll @@ -975,9 +894,7 @@ one of the following:
- -+
+ Warning: Resource +file formats can change across releases of ICU4J! The format of ICU4J resources is not part of the API. Clients who +develop their own resources for use with ICU4J should be prepared to +regenerate them when they move to new releases of ICU4J.
ICU4J 2.1 and above uses the standard class lookup mechanism. This means -any ppropriately named resource on the CLASSPATH will be located, in the +any appropriately named resource on the CLASSPATH will be located, in the order listed in the classpath.
@@ -1101,7 +1025,8 @@ resource files to understand the contents of the ICU4J resources, as they are the same.
-Currently only the LocaleElements resource data is shared, other ICU resources (calendar, transliterator, etc.) are still checked in @@ -1165,9 +1090,7 @@ overwrite any corresponding .class files already in that directory. class file in $icu_root\source\data\locales\java. The ICULocaleData.jar is moved to $icu4j_root\src\com\ibm\icu\impl\data directory. -
For information specific to this current release, please refer to the releasenotes.html
+http://oss.software.ibm.com/icu4j/ is a pointer to general information about the International Components for Unicode in Java
@@ -1175,19 +1098,21 @@ pointer to general information about the International Components for Unicode inhttp://www.ibm.com/developer/unicode is a pointer to information on how to make applications global.
-Your comments are important to making ICU4J successful. We are committed to fixing any bugs, and will use your feedback to help plan future releases.
To submit comments, request features and report bugs, contact us through the ICU4J mailing list.
While we are not able to respond individually to each comment, we do review all comments.
Thanks for your interest in ICU4J!
+Copyright © 2002-2003 International Business Machines Corporation and others. All Rights
+ Copyright © 2002-2004 International Business Machines Corporation and others. All Rights
Reserved.
5600 Cottle Road, San José, CA 95193