#!/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"