1#!/usr/bin/env bash 2# Copyright (C) 2023 and later: Unicode, Inc. and others. 3# License & terms of use: http://www.unicode.org/copyright.html 4 5if [ ! -f "releases_tools/shared.sh" ]; then 6 echo "ERROR: This script should be executed while being in the icu4j folder" 7 exit 8fi 9. releases_tools/shared.sh 10 11# ==================================================================================== 12# The start of the script proper 13 14reportTitle "Checking the JDK version (must be 8)" 15checkThatJdk8IsDefault 16 17# ==================================================================================== 18 19reportTitle gatherapi :: Collect API information 20 21mvn clean -q --batch-mode 22# Build everything 23mvn install -q --batch-mode -DskipITs -DskipTests 24# Gather API info 25mvn site -q --batch-mode -DskipITs -DskipTests -P gatherapi > /dev/null 26 27checkFileCreated "${out_dir}/icu4j${api_report_version}.api3.gz" 28 29# Prepare classpath folder to run the tools 30copyDependencyArtifacts 31 32# ==================================================================================== 33 34reportTitle apireport :: Run API report generator tool 35 36java -cp "$toolcp" \ 37 com.ibm.icu.dev.tool.docs.ReportAPI \ 38 -old: tools/build/icu4j${api_report_prev_version}.api3.gz \ 39 -new: ${out_dir}/icu4j${api_report_version}.api3.gz \ 40 -html \ 41 -out: ${out_dir}/icu4j_compare_${api_report_prev_version}_${api_report_version}.html 42 43checkFileCreated "${out_dir}/icu4j_compare_${api_report_prev_version}_${api_report_version}.html" 44 45# ==================================================================================== 46 47reportTitle checkDeprecated :: Check consistency between javadoc @deprecated and @Deprecated annotation 48 49java -cp "$toolcp" \ 50 com.ibm.icu.dev.tool.docs.DeprecatedAPIChecker \ 51 ${out_dir}/icu4j${api_report_version}.api3.gz 52 53# ==================================================================================== 54 55reportTitle checkAPIStatusConsistency :: Check consistency between API class status and methods overriding java.lang.Object 56 57# If you need classes excluded from this check, define following property in build-local.properties. 58# e.g. checkAPIStatusConsistency.skip.classes=com.ibm.icu.text.Normalizer;com.ibm.icu.util.ULocale 59 60java -cp "$toolcp" \ 61 com.ibm.icu.dev.tool.docs.APIStatusConsistencyChecker \ 62 ${out_dir}/icu4j${api_report_version}.api3.gz \ 63 checkAPIStatusConsistency.skip.classes= 64 65# ==================================================================================== 66 67reportTitle draftAPIs :: Run API collector tool and generate draft API report in html 68 69java -cp "$toolcp" \ 70 com.ibm.icu.dev.tool.docs.CollectAPI \ 71 -f Draft \ 72 -o ${out_dir}/draftAPIs.html \ 73 ${out_dir}/icu4j${api_report_version}.api3.gz 74 75checkFileCreated "${out_dir}/draftAPIs.html" 76 77# ==================================================================================== 78 79reportTitle draftAPIsTSV :: Run API collector tool and generate draft API report in TSV 80 81java -cp "$toolcp" \ 82 com.ibm.icu.dev.tool.docs.CollectAPI \ 83 -f Draft \ 84 -o ${out_dir}/draftAPIs.tsv \ 85 -t ${out_dir}/icu4j${api_report_version}.api3.gz 86 87checkFileCreated "${out_dir}/draftAPIs.tsv" 88