diff --git a/icu4j/APIChangeReport.html b/icu4j/APIChangeReport.html
index 24c77121d2e..8ade0f05c39 100644
--- a/icu4j/APIChangeReport.html
+++ b/icu4j/APIChangeReport.html
@@ -2,233 +2,171 @@
-
+
-ICU4J API Comparison: ICU4J 69.1 with ICU4J 70.1
+ICU4J API Comparison: ICU4J 70 with ICU4J 71
-ICU4J API Comparison: ICU4J 69.1 with ICU4J 70.1
+ICU4J API Comparison: ICU4J 70 with ICU4J 71
-Removed from ICU4J 69.1
-
-Package com.ibm.icu.lang
-
-UCharacter
-
-- (stable) public static boolean isHighSurrogate(char)
-- (stable) public static boolean isLowSurrogate(char)
-- (stable) public static final boolean isSurrogatePair(char, char)
-- (stable) public static final int toCodePoint(char, char)
-
-
-
-Package com.ibm.icu.text
-
-UTF16
-
-- (stable) public static boolean isLeadSurrogate(char)
-- (stable) public static boolean isSurrogate(char)
-- (stable) public static boolean isTrailSurrogate(char)
-
-
-
+Removed from ICU4J 70
+(no API removed)
-Deprecated or Obsoleted in ICU4J 70.1
+Deprecated or Obsoleted in ICU4J 71
(no API obsoleted)
-Changed in ICU4J 70.1 (old, new)
+Changed in ICU4J 71 (old, new)
+(no API changed)
-Package com.ibm.icu.lang
+
+Promoted to stable in ICU4J 71
+
+Package com.ibm.icu.number
-UCharacter
+- (stable) public static final class NumberRangeFormatter.SpanField
+- (stable) public static enum NumberFormatter.RoundingPriority
+- (stable) public static enum NumberFormatter.TrailingZeroDisplay
+FractionPrecision
-- (stable) public static int getCodePoint(char, char)
-(stable) public static int getCodePoint(int, int)
+- (stable) public Precision withSignificantDigits(int, int, NumberFormatter.RoundingPriority)
+
+NumberFormatter.RoundingPriority
+
+- (stable) public static final NumberFormatter.RoundingPriority RELAXED
+- (stable) public static final NumberFormatter.RoundingPriority STRICT
+
+NumberFormatter.SignDisplay
+
+- (stable) public static final NumberFormatter.SignDisplay ACCOUNTING_NEGATIVE
+- (stable) public static final NumberFormatter.SignDisplay NEGATIVE
+
+NumberFormatter.TrailingZeroDisplay
+
+- (stable) public static final NumberFormatter.TrailingZeroDisplay AUTO
+- (stable) public static final NumberFormatter.TrailingZeroDisplay HIDE_IF_WHOLE
+
+Precision
+
+- (stable) public Precision trailingZeroDisplay(NumberFormatter.TrailingZeroDisplay)
+
+
+
+Package com.ibm.icu.util
+
+- (stable) public static enum BasicTimeZone.LocalOption
+- (stable) public static enum MeasureUnit.MeasurePrefix
+BasicTimeZone
+
+- (stable) public void getOffsetFromLocal(long, BasicTimeZone.LocalOption, BasicTimeZone.LocalOption, int[])
+
+BasicTimeZone.LocalOption
+
+- (stable) public static final BasicTimeZone.LocalOption DAYLIGHT_FORMER
+- (stable) public static final BasicTimeZone.LocalOption DAYLIGHT_LATTER
+- (stable) public static final BasicTimeZone.LocalOption FORMER
+- (stable) public static final BasicTimeZone.LocalOption LATTER
+- (stable) public static final BasicTimeZone.LocalOption STANDARD_FORMER
+- (stable) public static final BasicTimeZone.LocalOption STANDARD_LATTER
+
+MeasureUnit
+
+- (stable) public static final MeasureUnit MILLIGRAM_OFGLUCOSE_PER_DECILITER
+- (stable) public MeasureUnit.MeasurePrefix getPrefix()
+- (stable) public MeasureUnit withPrefix(MeasureUnit.MeasurePrefix)
+
+MeasureUnit.MeasurePrefix
+
+- (stable) public int getBase()
+- (stable) public int getPower()
+- (stable) public static final MeasureUnit.MeasurePrefix ATTO
+- (stable) public static final MeasureUnit.MeasurePrefix CENTI
+- (stable) public static final MeasureUnit.MeasurePrefix DECI
+- (stable) public static final MeasureUnit.MeasurePrefix DEKA
+- (stable) public static final MeasureUnit.MeasurePrefix EXA
+- (stable) public static final MeasureUnit.MeasurePrefix EXBI
+- (stable) public static final MeasureUnit.MeasurePrefix FEMTO
+- (stable) public static final MeasureUnit.MeasurePrefix GIBI
+- (stable) public static final MeasureUnit.MeasurePrefix GIGA
+- (stable) public static final MeasureUnit.MeasurePrefix HECTO
+- (stable) public static final MeasureUnit.MeasurePrefix KIBI
+- (stable) public static final MeasureUnit.MeasurePrefix KILO
+- (stable) public static final MeasureUnit.MeasurePrefix MEBI
+- (stable) public static final MeasureUnit.MeasurePrefix MEGA
+- (stable) public static final MeasureUnit.MeasurePrefix MICRO
+- (stable) public static final MeasureUnit.MeasurePrefix MILLI
+- (stable) public static final MeasureUnit.MeasurePrefix NANO
+- (stable) public static final MeasureUnit.MeasurePrefix ONE
+- (stable) public static final MeasureUnit.MeasurePrefix PEBI
+- (stable) public static final MeasureUnit.MeasurePrefix PETA
+- (stable) public static final MeasureUnit.MeasurePrefix PICO
+- (stable) public static final MeasureUnit.MeasurePrefix TEBI
+- (stable) public static final MeasureUnit.MeasurePrefix TERA
+- (stable) public static final MeasureUnit.MeasurePrefix YOBI
+- (stable) public static final MeasureUnit.MeasurePrefix YOCTO
+- (stable) public static final MeasureUnit.MeasurePrefix YOTTA
+- (stable) public static final MeasureUnit.MeasurePrefix ZEBI
+- (stable) public static final MeasureUnit.MeasurePrefix ZEPTO
+- (stable) public static final MeasureUnit.MeasurePrefix ZETTA
+
+RuleBasedTimeZone
+
+- (stable) public void getOffsetFromLocal(long, BasicTimeZone.LocalOption, BasicTimeZone.LocalOption, int[])
+
+SimpleTimeZone
+
+- (stable) public void getOffsetFromLocal(long, BasicTimeZone.LocalOption, BasicTimeZone.LocalOption, int[])
+
+VTimeZone
+
+- (stable) public void getOffsetFromLocal(long, BasicTimeZone.LocalOption, BasicTimeZone.LocalOption, int[])
-Promoted to stable in ICU4J 70.1
+Added in ICU4J 71
Package com.ibm.icu.number
FormattedNumber
-- (stable) public MeasureUnit getOutputUnit()
-
-NumberFormatterSettings
-
-- (stable) public T extends NumberFormatterSettings<?> usage(java.lang.String)
+- (draft) public NounClass getNounClass()
Package com.ibm.icu.text
-DateIntervalFormat
+DateTimePatternGenerator
-- (stable) public DisplayContext getContext(DisplayContext.Type)
-- (stable) public void setContext(DisplayContext)
+- (draft) public java.lang.String getDateTimeFormat(int)
+- (draft) public void setDateTimeFormat(int, java.lang.String)
-DecimalFormat
+NumberFormat.Field
-- (stable) public static final int MINIMUM_GROUPING_DIGITS_AUTO
-- (stable) public static final int MINIMUM_GROUPING_DIGITS_MIN2
-
-PluralRules
-
-- (stable) public java.lang.String select(FormattedNumberRange)
+- (draft) public static final NumberFormat.Field APPROXIMATELY_SIGN
Package com.ibm.icu.util
-- (stable) public class ICUInputTooLongException
-- (stable) public final class NoUnit
-- (stable) public static enum MeasureUnit.Complexity
-LocaleMatcher
+- (draft) public enum NounClass
+NounClass
-- (stable) public boolean isMatch(ULocale, ULocale)
-- (stable) public boolean isMatch(java.util.Locale, java.util.Locale)
-
-LocaleMatcher.Builder
-
-- (stable) public LocaleMatcher.Builder setMaxDistance(ULocale, ULocale)
-- (stable) public LocaleMatcher.Builder setMaxDistance(java.util.Locale, java.util.Locale)
-- (stable) public LocaleMatcher.Builder setNoDefaultLocale()
-
-MeasureUnit
-
-- (stable) public static final MeasureUnit CANDELA
-- (stable) public static final MeasureUnit DESSERT_SPOON
-- (stable) public static final MeasureUnit DESSERT_SPOON_IMPERIAL
-- (stable) public static final MeasureUnit DOT
-- (stable) public static final MeasureUnit DRAM
-- (stable) public static final MeasureUnit DROP
-- (stable) public static final MeasureUnit EARTH_RADIUS
-- (stable) public static final MeasureUnit GRAIN
-- (stable) public static final MeasureUnit JIGGER
-- (stable) public static final MeasureUnit LUMEN
-- (stable) public static final MeasureUnit PINCH
-- (stable) public static final MeasureUnit QUART_IMPERIAL
-- (stable) public static MeasureUnit forIdentifier(java.lang.String)
-- (stable) public MeasureUnit.Complexity getComplexity()
-- (stable) public int getDimensionality()
-- (stable) public java.lang.String getIdentifier()
-- (stable) public MeasureUnit product(MeasureUnit)
-- (stable) public MeasureUnit reciprocal()
-- (stable) public java.util.List<MeasureUnit> splitToSingleUnits()
-- (stable) public MeasureUnit withDimensionality(int)
-
-MeasureUnit.Complexity
-
-- (stable) public static final MeasureUnit.Complexity COMPOUND
-- (stable) public static final MeasureUnit.Complexity MIXED
-- (stable) public static final MeasureUnit.Complexity SINGLE
-
-
-
-
-
-Added in ICU4J 70.1
-
-Package com.ibm.icu.lang
-
-UCharacter
-
-- (draft) public static boolean hasBinaryProperty(java.lang.CharSequence, int)
-- (stable) public static boolean isHighSurrogate(int)
-- (stable) public static boolean isLowSurrogate(int)
-- (stable) public static final boolean isSurrogatePair(int, int)
-- (stable) public static final int toCodePoint(int, int)
-
-UCharacter.JoiningGroup
-
-- (stable) public static final int THIN_YEH
-- (stable) public static final int VERTICAL_TAIL
-
-UCharacter.UnicodeBlock
-
-- (stable) public static final UCharacter.UnicodeBlock ARABIC_EXTENDED_B
-- (stable) public static final int ARABIC_EXTENDED_B_ID
-- (stable) public static final UCharacter.UnicodeBlock CYPRO_MINOAN
-- (stable) public static final int CYPRO_MINOAN_ID
-- (stable) public static final UCharacter.UnicodeBlock ETHIOPIC_EXTENDED_B
-- (stable) public static final int ETHIOPIC_EXTENDED_B_ID
-- (stable) public static final UCharacter.UnicodeBlock KANA_EXTENDED_B
-- (stable) public static final int KANA_EXTENDED_B_ID
-- (stable) public static final UCharacter.UnicodeBlock LATIN_EXTENDED_F
-- (stable) public static final int LATIN_EXTENDED_F_ID
-- (stable) public static final UCharacter.UnicodeBlock LATIN_EXTENDED_G
-- (stable) public static final int LATIN_EXTENDED_G_ID
-- (stable) public static final UCharacter.UnicodeBlock OLD_UYGHUR
-- (stable) public static final int OLD_UYGHUR_ID
-- (stable) public static final UCharacter.UnicodeBlock TANGSA
-- (stable) public static final int TANGSA_ID
-- (stable) public static final UCharacter.UnicodeBlock TOTO
-- (stable) public static final int TOTO_ID
-- (stable) public static final UCharacter.UnicodeBlock UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A
-- (stable) public static final int UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A_ID
-- (stable) public static final UCharacter.UnicodeBlock VITHKUQI
-- (stable) public static final int VITHKUQI_ID
-- (stable) public static final UCharacter.UnicodeBlock ZNAMENNY_MUSICAL_NOTATION
-- (stable) public static final int ZNAMENNY_MUSICAL_NOTATION_ID
-
-UProperty
-
-- (draft) public static final int BASIC_EMOJI
-- (draft) public static final int EMOJI_KEYCAP_SEQUENCE
-- (draft) public static final int RGI_EMOJI
-- (draft) public static final int RGI_EMOJI_FLAG_SEQUENCE
-- (draft) public static final int RGI_EMOJI_MODIFIER_SEQUENCE
-- (draft) public static final int RGI_EMOJI_TAG_SEQUENCE
-- (draft) public static final int RGI_EMOJI_ZWJ_SEQUENCE
-
-UScript
-
-- (stable) public static final int CYPRO_MINOAN
-- (stable) public static final int OLD_UYGHUR
-- (stable) public static final int TANGSA
-- (stable) public static final int TOTO
-- (stable) public static final int VITHKUQI
-
-
-
-Package com.ibm.icu.text
-
-UTF16
-
-- (stable) public static boolean isLeadSurrogate(int)
-- (stable) public static boolean isSurrogate(int)
-- (stable) public static boolean isTrailSurrogate(int)
-
-UnicodeSet
-
-- (draft) public boolean hasStrings()
-
-UnicodeSetIterator
-
-- (draft) public UnicodeSetIterator skipToStrings()
-
-
-
-Package com.ibm.icu.util
-
-MeasureUnit
-
-- (draft) public static final MeasureUnit ITEM
-- (draft) public static final MeasureUnit KILOWATT_HOUR_PER_100_KILOMETER
-
-VersionInfo
-
-- (stable) public static final VersionInfo UNICODE_14_0
+- (draft) public static final NounClass ANIMATE
+- (draft) public static final NounClass COMMON
+- (draft) public static final NounClass FEMININE
+- (draft) public static final NounClass INANIMATE
+- (draft) public static final NounClass MASCULINE
+- (draft) public static final NounClass NEUTER
+- (draft) public static final NounClass OTHER
+- (draft) public static final NounClass PERSONAL
-Contents generated by ReportAPI tool on Tue Sep 28 16:43:15 PDT 2021
© 2021 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html
+Contents generated by ReportAPI tool on Thu Mar 10 16:22:38 PST 2022
© 2022 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html
diff --git a/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/ReportAPI.java b/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/ReportAPI.java
index 8e8938e3de9..0fa921ec87f 100644
--- a/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/ReportAPI.java
+++ b/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/ReportAPI.java
@@ -284,9 +284,22 @@ public class ReportAPI {
throw new IllegalStateException(); // UTF-8 should always be supported
}
+ // Change names to remove minor, milli, and micro version numbers for the report.
+ String oldName = oldData.name;
+ int ptIndex = oldName.indexOf('.');
+ if (ptIndex >= 0) {
+ oldName = oldName.substring(0, ptIndex);
+ }
+ String newName = newData.name;
+ ptIndex = newName.indexOf('.');
+ if (ptIndex >= 0) {
+ newName = newName.substring(0, ptIndex);
+ }
+
+
DateFormat fmt = new SimpleDateFormat("yyyy");
String year = fmt.format(new Date());
- String title = "ICU4J API Comparison: " + oldData.name + " with " + newData.name;
+ String title = "ICU4J API Comparison: " + oldName + " with " + newName;
String info = "Contents generated by ReportAPI tool on " + new Date().toString();
String copyright = "© " + year + " and later: Unicode, Inc. and others."
+ " License & terms of use: "
@@ -307,7 +320,7 @@ public class ReportAPI {
pw.println();
pw.println("
");
- pw.println("Removed from " + oldData.name +"
");
+ pw.println("Removed from " + oldName +"
");
if (removed.size() > 0) {
printResults(removed, pw, true, false);
} else {
@@ -317,9 +330,9 @@ public class ReportAPI {
pw.println();
pw.println("
");
if (internal) {
- pw.println("Withdrawn, Deprecated, or Obsoleted in " + newData.name + "
");
+ pw.println("Withdrawn, Deprecated, or Obsoleted in " + newName + "
");
} else {
- pw.println("Deprecated or Obsoleted in " + newData.name + "
");
+ pw.println("Deprecated or Obsoleted in " + newName + "
");
}
if (obsoleted.size() > 0) {
printResults(obsoleted, pw, true, false);
@@ -329,7 +342,7 @@ public class ReportAPI {
pw.println();
pw.println("
");
- pw.println("Changed in " + newData.name + " (old, new)
");
+ pw.println("Changed in " + newName + " (old, new)
");
if (changed.size() > 0) {
printResults(changed, pw, true, true);
} else {
@@ -338,7 +351,7 @@ public class ReportAPI {
pw.println();
pw.println("
");
- pw.println("Promoted to stable in " + newData.name + "
");
+ pw.println("Promoted to stable in " + newName + "
");
if (promotedStable.size() > 0) {
printResults(promotedStable, pw, true, false);
} else {
@@ -350,7 +363,7 @@ public class ReportAPI {
// internal API check is enabled
pw.println();
pw.println("
");
- pw.println("Promoted to draft in " + newData.name + "
");
+ pw.println("Promoted to draft in " + newName + "
");
if (promotedDraft.size() > 0) {
printResults(promotedDraft, pw, true, false);
} else {
@@ -360,7 +373,7 @@ public class ReportAPI {
pw.println();
pw.println("
");
- pw.println("Added in " + newData.name + "
");
+ pw.println("Added in " + newName + "
");
if (added.size() > 0) {
printResults(added, pw, true, false);
} else {
@@ -376,7 +389,7 @@ public class ReportAPI {
pw.println();
pw.println();
- pw.println("=== Removed from " + oldData.name + " ===");
+ pw.println("=== Removed from " + oldName + " ===");
if (removed.size() > 0) {
printResults(removed, pw, false, false);
} else {
@@ -386,9 +399,9 @@ public class ReportAPI {
pw.println();
pw.println();
if (internal) {
- pw.println("=== Withdrawn, Deprecated, or Obsoleted in " + newData.name + " ===");
+ pw.println("=== Withdrawn, Deprecated, or Obsoleted in " + newName + " ===");
} else {
- pw.println("=== Deprecated or Obsoleted in " + newData.name + " ===");
+ pw.println("=== Deprecated or Obsoleted in " + newName + " ===");
}
if (obsoleted.size() > 0) {
printResults(obsoleted, pw, false, false);
@@ -398,7 +411,7 @@ public class ReportAPI {
pw.println();
pw.println();
- pw.println("=== Changed in " + newData.name + " (old, new) ===");
+ pw.println("=== Changed in " + newName + " (old, new) ===");
if (changed.size() > 0) {
printResults(changed, pw, false, true);
} else {
@@ -407,7 +420,7 @@ public class ReportAPI {
pw.println();
pw.println();
- pw.println("=== Promoted to stable in " + newData.name + " ===");
+ pw.println("=== Promoted to stable in " + newName + " ===");
if (promotedStable.size() > 0) {
printResults(promotedStable, pw, false, false);
} else {
@@ -417,7 +430,7 @@ public class ReportAPI {
if (internal) {
pw.println();
pw.println();
- pw.println("=== Promoted to draft in " + newData.name + " ===");
+ pw.println("=== Promoted to draft in " + newName + " ===");
if (promotedDraft.size() > 0) {
printResults(promotedDraft, pw, false, false);
} else {
@@ -427,7 +440,7 @@ public class ReportAPI {
pw.println();
pw.println();
- pw.println("=== Added in " + newData.name + " ===");
+ pw.println("=== Added in " + newName + " ===");
if (added.size() > 0) {
printResults(added, pw, false, false);
} else {