ReadMe: International Components for Unicode for Java

Version: 1.3.1 June 12 2001


COPYRIGHT:
Copyright (c) 2001 International Business Machines Corporation and others. All Rights Reserved.


Contents

Introduction

In today's global market, it is crucial to develop and maintain programs that support a wide variety of national languages. Customers prefer software and web pages in their own languages. Studies confirm that this leads to increased sales. Java provides a very strong foundation for global programs (IBM and the ICU4J team played a key role in providing such technology into Sun's standard Java version).

However, Java does not yet provide some features that are required in some products. The ICU4J library is an add-on to the regular JVM that provides the following tools:

In some cases, the above support has been rolled into a later release of Java. For example, the Thai word-break is now in Java 1.4. However, if you are using Java 1.2, you can use the ICU4J package until you upgrade to 1.4.

License Information

The ICU projects (ICU4C and ICU4J) have changed their licenses from the IPL (IBM Public License) to the X license. The X license is a non-viral and recommended free software license that is compatible with the GNU GPL license. This is effective starting with release 1.8.1 of ICU4C and release 1.3.1 of ICU4J. All previous ICU releases will continue to utilize the IPL. New ICU releases will adopt the X license. The users of previous releases of ICU will need to accept the terms and conditions of the X license in order to adopt the new ICU releases.

The main effect of the change is to provide GPL compatibility. The X license is listed as GPL compatible, see the gnu page at http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses

The text of the X license is available at http://www.x.org/terms.htm. The IBM version contains the essential text of the license, omitting the X-specific trademarks and copyright notices.

For more details please see the press announcement and the Project FAQ.

What the International Components for Unicode for Java Contains

There are two ways to download the ICU4J releases,

For more details on how to download ICU4J directly from the web site, please also see http://oss.software.ibm.com/icu4j/download/index.html

Below, $Root is the placement of the icu directory in your file system, like "drive:\...\icu4j" in your environment. "drive:\..." stands for any drive and any directory on that drive that you chose to install icu4j into.

The following files describe the code drop:

readme.html
this file
describes the International Components for Unicode for Java
license.html contains the X license
build.bat A convenience batch file for Windows for building ICU4J
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.xml Ant build file. How to Install and Build for more information
buildall.bat A bat file for building ICU4J with Javac. This is not recommended

The source directories mirror package structure of the code.  The following directories contain source code and data files:

$Root/richeditDist/ Documentations and stubs used for building the RichEdit demos in package com.ibm.richtext.demo
$Root/src/data/ Various data files used to generate ICU4J classes.  Most of the files contain Unicode information that is available from http://www.unicode.org/. Used only by tools and tests in package com.ibm.tools and com.ibm.test.
$Root/src/com/ibm/data Data files used by the BreakIterator tests and demos in package com.ibm.demo.rbbi and com.ibm.test.rbbi
$Root/src/com/ibm/demo Demonstration applications and Applets for calendar, holidays, rule-based breakiterators, rule-based number format and transliterator. This directory is gradually being deprecated, the contents will be shifted to the package com.ibm.icu.demo.
$Root/src/com/ibm/icu/demo New folder for demonstration applications and Applets. The classes in the package com.ibm.demo will eventually be shifted to here.
$Root/src/com/ibm/icu/internal Contains only a class com.ibm.icu.UInfo which is used in the normalization builder, com.ibm.tools.normalizer.NormalizerBuilder.
$Root/src/com/ibm/icu/test New folder for tests. The classes in package com.ibm.test will eventually be shifted here.
$Root/src/com/ibm/icu/math Mathematic manipulation.
$Root/src/com/ibm/icu/richtext Styled text display. This folder includes demos, test and GUIs for displaying text.
$Root/src/com/ibm/test Tests for various ICU4J components.. For information about running the tests, see $Root/src/com/ibm/test/TestAll.java. The folder will be gradually deprecated, The classes will be shifted to com.ibm.icu.test.
$Root/src/com/ibm/text The following components:
  • Arabic shaping
  • Break iterators
  • Date formats
  • Number formats
  • Transliterators
  • Normalization
  • String manipulations
  • StringSearch
  • Unicode compression
  • Unicode character properties
  • Unicode sets
$Root/src/com/ibm/textlayout Text layout
$Root/src/com/ibm/tools Various tools used to generate ICU4J classes and data for the modules below.
  • Unicode compression
  • Normalization
  • Rule-based Iterators
  • Transliteration
$Root/src/com/ibm/util Calendars, time zones and other utility classes

The following directories are populated when you've built everything:

$Root/classes contains all class files
$Root/doc contains JavaDoc for all packages

Data organization:

Data is stored in various locations in ICU4J:

API Overview

The complete API documentation is available on the ICU4J web site:

Platform Dependencies

Parts of ICU4J depend on functionality that is only available in Java2 (JDk1.2) or later, although some components work under 1.1.  However, all components should be compiled using a Java2 compiler as even components that run using a 1.1.x JVM may require language features that are only present in 1.2.  Currently 1.1.x is unsupported and untested and you use the components on a 1.1.x system at your own risk.

How to Install and Build

To install ICU4J, simply place the prebuilt jar file icu4j.jar on your Java CLASSPATH.  No other files are needed.

The prerequisites for building ICU4J are a working JDK and the Ant build system:

Once Ant is installed, building is just a matter of typing ant in the ICU4J root directory. This causes the Ant build system to perform a build as specified by the file build.xml, located in the ICU4J root directory. You can give Ant options like -verbose, and you can specify targets. Ant will only build what's been changed and will resolve dependencies properly.

F:\icu4j>ant tests
Buildfile: build.xml
Project base dir set to: F:\icu4j
Executing Target: core
Compiling 71 source files to F:\icu4j\classes
Executing Target: tests
Compiling 24 source files to F:\icu4j\classes
Completed in 19 seconds

Current targets that you can give after ant:

all Build all targets.
core Build the main class files in the subdirectory classes. If no target is specified, core is assumed.
tests Build the test class files.
demos Build the demos.
tools Build the tools.
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 the main class files.
zip Create a zip archive of the source, docs, and jar file for distribution, excluding unwanted things like CVS directories and emacs backup files. The zip file icu4jYYYYMMDD.zip will be created in the directory above the root ICU4J directory, where YYYYMMDD is today's date. Any existing file of that name will be overwritten.
zipsrc Like the zip target, without the docs and the jar file. The zip file icu4jsrcYYYYMMDD.zip will be created in the directory above the root ICU4J directory.
clean Remove all built targets, leaving the source.

For more information, read the Ant documentation and the build.xml file.

After doing a build it is a good idea to run all the tests by typing
"java -classpath $Root/classes -DUnicodeData=$Root/src/data/unicode com.ibm.test.TestAll".

(As an alternative to using Ant, you can build simply by running javac and javadoc directly. This is not recommended, but a Windows batch file "buildall.bat" exists to get you started if you're really allergic to build systems. You may have to create destination directories.)

Where to Find More Information

http://oss.software.ibm.com/icu4j is a pointer to general information about the International Components for Unicode in Java

http://www.ibm.com/developer/unicode is a pointer to information on how to make applications global.

Submitting Comments, Requesting Features and Reporting Bugs

Your comments are important to making this release successful.  We are committed to fixing any bugs, and will also 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.


Copyright © 2001 International Business Machines Corporation and others. All Rights Reserved.
10275 N De Anza Blvd., Cupertino, CA 95014
All rights reserved.