scuffed-code/icu4j/tools/build
2016-04-29 23:32:28 +00:00
..
.settings ICU-12445 Updated ant target coverageJaCoCo to check method coverage. When a new method is added with no test coverage, the check will fail. All existing methods with no test coverage are captured in coverage-exclusion.txt. 2016-04-29 19:33:24 +00:00
src/com/ibm/icu/dev/tool ICU-12445 Fixed a typo in a warning message.o 2016-04-29 23:32:28 +00:00
src8/com/ibm/icu/dev/tool/docs ICU-10988 Changed the default javadoc implementation to JDK7, updated the build script to use JDK8 supported version at build time if JDK8 is used. Prints out warning in top-level release targets, when JDK8 is used. 2015-09-23 03:59:54 +00:00
.classpath ICU-12445 Updated ant target coverageJaCoCo to check method coverage. When a new method is added with no test coverage, the check will fail. All existing methods with no test coverage are captured in coverage-exclusion.txt. 2016-04-29 19:33:24 +00:00
.project ICU-6951 Merging ICU4J new source layout changes to trunk 2009-06-16 05:52:23 +00:00
build-tools-build.launch ICU-6951 Merging ICU4J new source layout changes to trunk 2009-06-16 05:52:23 +00:00
build.properties ICU-6951 Merging ICU4J new source layout changes to trunk 2009-06-16 05:52:23 +00:00
build.xml ICU-10988 Changed the default javadoc implementation to JDK7, updated the build script to use JDK8 supported version at build time if JDK8 is used. Prints out warning in top-level release targets, when JDK8 is used. 2015-09-23 03:59:54 +00:00
icu4j48.api3.gz ICU-10905 Updated API signature files for old ICU versions. In the previous doc tool change, no-arg constructors are now included in the signature file. To prevent API change report tool to report them as newly added APIs, the API signature files were regenerated with the updated code. 2014-05-29 15:00:26 +00:00
icu4j49.api3.gz ICU-10905 Updated API signature files for old ICU versions. In the previous doc tool change, no-arg constructors are now included in the signature file. To prevent API change report tool to report them as newly added APIs, the API signature files were regenerated with the updated code. 2014-05-29 15:00:26 +00:00
icu4j50.api3.gz ICU-10905 Updated API signature files for old ICU versions. In the previous doc tool change, no-arg constructors are now included in the signature file. To prevent API change report tool to report them as newly added APIs, the API signature files were regenerated with the updated code. 2014-05-29 15:00:26 +00:00
icu4j51.api3.gz ICU-10905 Updated API signature files for old ICU versions. In the previous doc tool change, no-arg constructors are now included in the signature file. To prevent API change report tool to report them as newly added APIs, the API signature files were regenerated with the updated code. 2014-05-29 15:00:26 +00:00
icu4j52.api3.gz ICU-10905 Updated API signature files for old ICU versions. In the previous doc tool change, no-arg constructors are now included in the signature file. To prevent API change report tool to report them as newly added APIs, the API signature files were regenerated with the updated code. 2014-05-29 15:00:26 +00:00
icu4j53.api3.gz ICU-10905 Updated API signature files for old ICU versions. In the previous doc tool change, no-arg constructors are now included in the signature file. To prevent API change report tool to report them as newly added APIs, the API signature files were regenerated with the updated code. 2014-05-29 15:00:26 +00:00
icu4j54.api3.gz ICU-10993 Regenerated API signature files/change report to make sure the API status promotion fixes are properly reflected. 2014-09-16 19:22:20 +00:00
icu4j55.api3.gz ICU-11565 Added ICU4J 55 API signature file. Added ICU4J 55 serializable test data and deleted ICU4J 51 serializable data. 2015-03-11 20:43:39 +00:00
icu4j56.api3.gz ICU-12132 Regenerated ICU4J 56.1 API signature data file with JDK 7 javadoc. 2016-01-30 06:33:18 +00:00
icu4j57.api3.gz ICU-12186 Added ICU 57 API signature file. 2016-03-08 06:10:34 +00:00
manifest.stub ICU-11609 set svn property eol-style native for more text files in icu4j. 2015-04-17 23:31:56 +00:00
README.txt ICU-6951 Merging ICU4J new source layout changes to trunk 2009-06-16 05:52:23 +00:00

Copyright (C) 1996-2004, International Business Machines Corporation and
others. All Rights Reserved.

-------------------------------------------
Using the GatherAPIData and ReportAPI tools
-------------------------------------------

These two tools are used together to generate reports about changes in
supported API between versions of ICU4J.


GatherAPIData 

GatherAPIData uses javadoc to process the ICU4J source files and
generate a file listing information about the public API, including
the ICU4J status (draft, stable, deprecated, obsolete).  It excludes
private API, API marked @internal.  The file is written as text, so it
is human-readable, but it is a bit verbose.  To save space, the file
can be zip'd or gzip'd (using flags passed to the tool), which will
reduce the size by about a factor of 10.

GatherAPIData requires javadoc and is currently based on sun jdk
1.4.2.  JavaDoc is internal (I believe) so you need a reference jvm
from Sun to compile the tool, but it can be run against any 1.4 JDK
(at least, those from Sun).  Instructions in the source file show how
it can be invoked.

GatherAPIData should be passed all the packages that need reporting.
Currently, public api is only in the lang, math, text, and util
subpackages of com.ibm.icu.


ReportAPI 

ReportAPI takes two api files generated by GatherAPIData and reports
on removals, changes, and additions to the API.  It does this by
comparing the API information in the two API files.  When new classes
are added, only the class is listed, not its entire API, and similarly
when a class is deleted.  When APIs with the same name and signature
are changed (visibility, status, inheritance) these changes are listed
by showing the old and new versions of the API.

ReportAPI is not particularly smart, and in particular, does not know
about inherited API.  So for example, moving public API from a class
to a base class is reported as a deletion of API from the original
class, even though the effective API on the original class is
unchanged by this.

ReportAPI also does not know about Java class files, so for example it
cannot be used to compare com.ibm.icu.lang.UCharacter against
java.lang.Character.  This might be provided in a later release.

For these reasons, in general it is best to compare two successive
versions of ICU4J against each other, rather than radically different
versions.  A large number of changes can show up, many of which might
fall into these 'innocuous' categories.

ReportAPI can generate either plain text or html reports.  Since it
only requires the data files and does not rely on JavaDoc, it is more
straightforward to invoke.

ReportAPI uses the file extension to determine how to uncompress the
api data files.  It expects '.zip' for files that have been compressed
using zip, and '.gz' for files that have been compressed using gzip.
The GatherAPIData utility automatically appends these extensions when
compression is used.

API Data Files

API Data files for ICU4J 2.8 and 3.0 are in this directory.  The
intent is to store data files for each release version of ICU4J, to
facilitate comparison using the ReportAPI tool.  Of course, they can
always be regenerated using the GenerateAPI and the sources of a
particular ICU4J release.

The format of the API data file is straightforward.  The first line of
the file is the header, successive lines are the api information.
Each line consists of a number of tokens, each followed by a
semi-colon (incuding the last token on the line).

The header line contains the version number, the 'name' of the version
of ICU4J represented by the file, and a 'base directory' field
(currently not fully implemented).

The following lines contain data generated by the APIInfo class, one
line per class or method.  The tokens are status, visibility, static,
final, synchronized, abstract, type, package, containing class, name,
and 'signature' (which varies by the type of object).  For classes,
the 'signature' is the immediate inheritance of the class.  For
fields, the 'signature' is the type of the field.  For methods, the
'signature' is the function signature. All fields are always present.

For more information, please see APIInfo.java.

-------