Skip to content

Commit

Permalink
ICU-22534 BRS75 J API Signature file and API change report
Browse files Browse the repository at this point in the history
  • Loading branch information
yumaoka committed Mar 26, 2024
1 parent 4f75c62 commit 6ad2ffb
Show file tree
Hide file tree
Showing 9 changed files with 176 additions and 8 deletions.
147 changes: 146 additions & 1 deletion icu4j/APIChangeReport.html
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,157 @@ <h2>Added in ICU4J 75</h2>

<h3>Package com.ibm.icu.lang</h3>
<ul>
<li><span style='color:orange'>(draft)</span> public static enum <i>UCharacter.IdentifierStatus</i></li>
<li><span style='color:orange'>(draft)</span> public static enum <i>UCharacter.IdentifierType</i></li>
UCharacter
<ul>
<li><span style='color:orange'>(draft)</span> public static final int <i>getIdentifierTypes</i>(int, java.util.EnumSet&lt;UCharacter.IdentifierType&gt;)</li>
<li><span style='color:orange'>(draft)</span> public static final boolean <i>hasIdentifierType</i>(int, UCharacter.IdentifierType)</li>
</ul>
UCharacter.IdentifierStatus
<ul>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierStatus ALLOWED</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierStatus RESTRICTED</li>
</ul>
UCharacter.IdentifierType
<ul>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType DEFAULT_IGNORABLE</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType DEPRECATED</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType EXCLUSION</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType INCLUSION</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType LIMITED_USE</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType NOT_CHARACTER</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType NOT_NFKC</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType NOT_XID</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType OBSOLETE</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType RECOMMENDED</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType TECHNICAL</li>
<li><span style='color:orange'>(draft)</span> public static final UCharacter.IdentifierType UNCOMMON_USE</li>
</ul>
UProperty
<ul>
<li><span style='color:orange'>(draft)</span> public static final int IDENTIFIER_STATUS</li>
<li><span style='color:orange'>(draft)</span> public static final int IDENTIFIER_TYPE</li>
</ul>
UScript
<ul>
<li><span style='color:green'>(stable)</span> public static final int ARABIC_NASTALIQ</li>
</ul>
</ul>

<h3>Package com.ibm.icu.message2</h3>
<ul>
MFDataModel.Attribute
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.LiteralOrVariableRef value</li>
</ul>
MFDataModel.CatchallKey
<ul>
<li><span style='color:orange'>(draft)</span> public <i>MFDataModel.CatchallKey</i>()</li>
</ul>
MFDataModel.FunctionAnnotation
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final java.util.Map&lt;java.lang.String, MFDataModel.Option&gt; options</li>
</ul>
MFDataModel.FunctionExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.FunctionAnnotation annotation</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Attribute&gt; attributes</li>
</ul>
MFDataModel.InputDeclaration
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.VariableExpression value</li>
</ul>
MFDataModel.Literal
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String value</li>
</ul>
MFDataModel.LiteralExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Annotation annotation</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Literal arg</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Attribute&gt; attributes</li>
</ul>
MFDataModel.LocalDeclaration
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Expression value</li>
</ul>
MFDataModel.Markup
<ul>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Attribute&gt; attributes</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Markup.Kind kind</li>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final java.util.Map&lt;java.lang.String, MFDataModel.Option&gt; options</li>
</ul>
MFDataModel.Option
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.LiteralOrVariableRef value</li>
</ul>
MFDataModel.Pattern
<ul>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.PatternPart&gt; parts</li>
</ul>
MFDataModel.PatternMessage
<ul>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Declaration&gt; declarations</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Pattern pattern</li>
</ul>
MFDataModel.SelectMessage
<ul>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Declaration&gt; declarations</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Expression&gt; selectors</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Variant&gt; variants</li>
</ul>
MFDataModel.StringPart
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String value</li>
</ul>
MFDataModel.UnsupportedAnnotation
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String source</li>
</ul>
MFDataModel.UnsupportedExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.UnsupportedAnnotation annotation</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Attribute&gt; attributes</li>
</ul>
MFDataModel.UnsupportedStatement
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String body</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Expression&gt; expressions</li>
<li><span style='color:orange'>(draft)</span> public final java.lang.String keyword</li>
</ul>
MFDataModel.VariableExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Annotation annotation</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.VariableRef arg</li>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.Attribute&gt; attributes</li>
</ul>
MFDataModel.VariableRef
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
</ul>
MFDataModel.Variant
<ul>
<li><span style='color:orange'>(draft)</span> public final java.util.List&lt;MFDataModel.LiteralOrCatchallKey&gt; keys</li>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Pattern value</li>
</ul>
MFParseException
<ul>
<li><span style='color:orange'>(draft)</span> public <i>MFParseException</i>(java.lang.String, int)</li>
<li><span style='color:orange'>(draft)</span> public java.lang.String <i>getMessage</i>()</li>
</ul>
MFSerializer
<ul>
<li><span style='color:orange'>(draft)</span> public <i>MFSerializer</i>()</li>
</ul>
</ul>

<h3>Package com.ibm.icu.number</h3>
<ul>
LocalizedNumberFormatter
Expand All @@ -139,6 +284,6 @@ <h3>Package com.ibm.icu.util</h3>
</ul>

<hr/>
<p><i><font size="-1">Contents generated by ReportAPI tool on Wed Feb 28 11:47:14 PST 2024<br/>© 2024 and later: Unicode, Inc. and others. License & terms of use: <a href="http:https://www.unicode.org/copyright.html">http:https://www.unicode.org/copyright.html</a></font></i></p>
<p><i><font size="-1">Contents generated by ReportAPI tool on Mon Mar 25 13:11:50 EDT 2024<br/>© 2024 and later: Unicode, Inc. and others. License & terms of use: <a href="http:https://www.unicode.org/copyright.html">http:https://www.unicode.org/copyright.html</a></font></i></p>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ public String getType() {
return "buddhist";
}

/*
/**
* {@inheritDoc}
* @internal
* @deprecated This API is ICU internal only.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4090,7 +4090,7 @@ protected void pinField(int field) {
}
}

/*
/**
* The year in this calendar is counting from 1 backward if the era is 0.
* @return The year in era 0 of this calendar is counting backward from 1.
* @internal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ public String getType() {
return "coptic";
}

/*
/**
* {@inheritDoc}
* @internal
* @deprecated This API is ICU internal only.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -896,7 +896,7 @@ public String getType() {
return "gregorian";
}

/*
/**
* {@inheritDoc}
* @internal
* @deprecated This API is ICU internal only.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ public int getActualMaximum(int field) {
return super.getActualMaximum(field);
}

/*
/**
* {@inheritDoc}
* @internal
* @deprecated This API is ICU internal only.
Expand Down
Binary file removed icu4j/tools/build/icu4j65.api3.gz
Binary file not shown.
Binary file added icu4j/tools/build/icu4j75.api3.gz
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,18 @@ public int errorCount() {
{"clone", "java.lang.Object()"},
};

// Exceptions - API status of these methods are different from the parent
// by intent.
//
// TODO: We should revisit this and see if we want to continue
// to handle these as exceptions, or update our policy.
static final String[][] CONSISTENCY_EXCEPTIONS = {
//{"<class>", "<method>"},
{"com.ibm.icu.text.Normalizer", "clone"},
{"com.ibm.icu.text.PersonNameFormatter", "toString"},
{"com.ibm.icu.text.SimplePersonName", "toString"},
};

public void checkConsistency() {
Map<String, APIInfo> classMap = new TreeMap<>();
// Build a map of APIInfo for classes, indexed by class name
Expand Down Expand Up @@ -116,8 +128,19 @@ public void checkConsistency() {
String classVer = clsApi.getStatusVersion();

if (methodStatus != classStatus || !Objects.equals(methodVer, classVer)) {
pw.println("## Error ## " + methodName + " in " + fullClassName);
errCount++;
boolean isExcepted = false;
for (String[] exceptMethod : CONSISTENCY_EXCEPTIONS) {
if (exceptMethod[0].equals(fullClassName) && exceptMethod[1].equals(methodName)) {
isExcepted = true;
break;
}
}
if (isExcepted) {
pw.println("## Info ## " + methodName + " in " + fullClassName + " (included in the exception list)");
} else {
pw.println("## Error ## " + methodName + " in " + fullClassName);
errCount++;
}
}
}
}
Expand Down

0 comments on commit 6ad2ffb

Please sign in to comment.