blob: 1d9452aa75bfcba14ca8dc636f74e06f54ab0b5f [file] [log] [blame]
#!/usr/bin/env bash
# Copyright (C) 2023 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
if [ ! -f "releases_tools/shared.sh" ]; then
echo "ERROR: This script should be executed while being in the icu4j folder"
exit
fi
. releases_tools/shared.sh
# ====================================================================================
# The start of the script proper
reportTitle "Checking the JDK version (must be 8)"
checkThatJdk8IsDefault
# ====================================================================================
reportTitle gatherapi :: Collect API information
mvn clean -q --batch-mode
# Build everything
mvn install -q --batch-mode -DskipITs -DskipTests
# Gather API info
mvn site -q --batch-mode -DskipITs -DskipTests -P gatherapi > /dev/null
checkFileCreated "${out_dir}/icu4j${api_report_version}.api3.gz"
# Prepare classpath folder to run the tools
copyDependencyArtifacts
# ====================================================================================
reportTitle apireport :: Run API report generator tool
java -cp "$toolcp" \
com.ibm.icu.dev.tool.docs.ReportAPI \
-old: tools/build/icu4j${api_report_prev_version}.api3.gz \
-new: ${out_dir}/icu4j${api_report_version}.api3.gz \
-html \
-out: ${out_dir}/icu4j_compare_${api_report_prev_version}_${api_report_version}.html
checkFileCreated "${out_dir}/icu4j_compare_${api_report_prev_version}_${api_report_version}.html"
# ====================================================================================
reportTitle checkDeprecated :: Check consistency between javadoc @deprecated and @Deprecated annotation
java -cp "$toolcp" \
com.ibm.icu.dev.tool.docs.DeprecatedAPIChecker \
${out_dir}/icu4j${api_report_version}.api3.gz
# ====================================================================================
reportTitle checkAPIStatusConsistency :: Check consistency between API class status and methods overriding java.lang.Object
# If you need classes excluded from this check, define following property in build-local.properties.
# e.g. checkAPIStatusConsistency.skip.classes=com.ibm.icu.text.Normalizer;com.ibm.icu.util.ULocale
java -cp "$toolcp" \
com.ibm.icu.dev.tool.docs.APIStatusConsistencyChecker \
${out_dir}/icu4j${api_report_version}.api3.gz \
checkAPIStatusConsistency.skip.classes=
# ====================================================================================
reportTitle draftAPIs :: Run API collector tool and generate draft API report in html
java -cp "$toolcp" \
com.ibm.icu.dev.tool.docs.CollectAPI \
-f Draft \
-o ${out_dir}/draftAPIs.html \
${out_dir}/icu4j${api_report_version}.api3.gz
checkFileCreated "${out_dir}/draftAPIs.html"
# ====================================================================================
reportTitle draftAPIsTSV :: Run API collector tool and generate draft API report in TSV
java -cp "$toolcp" \
com.ibm.icu.dev.tool.docs.CollectAPI \
-f Draft \
-o ${out_dir}/draftAPIs.tsv \
-t ${out_dir}/icu4j${api_report_version}.api3.gz
checkFileCreated "${out_dir}/draftAPIs.tsv"