From eca359cf6938ef8e0bd0972d137deb2fa0df6789 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Wed, 2 Jul 2025 12:32:37 -0500 Subject: [PATCH] Try not manually installing java 17, and parse jacoco outputs more directly (per Cursor) --- .circleci/config.yml | 20 ++++++-------------- pom.xml | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7433d19e..952363a8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,21 +17,13 @@ commands: path: << parameters.module >>/target/site/jacoco/jacoco-resources when: always - install_java17: + check_java_version: steps: - run: - name: Install Java 17 + name: Check Java Version command: | - sudo apt-get update - sudo apt install -y openjdk-17-jdk - sudo rm /etc/alternatives/java - sudo ln -s /usr/lib/jvm/java-17-openjdk-amd64/bin/java /etc/alternatives/java - - run: - ## used by jacoco uncovered class reporting in pom.xml - name: Install html2text - command: | - sudo apt-get update - sudo apt-get install -y html2text + java -version + echo "Java version check completed" mvn_verify: steps: @@ -139,7 +131,7 @@ jobs: executor: localstack/default steps: ## - localstack/startup - - install_java17 + - check_java_version - mvn_verify - check_middleware_api_versions @@ -147,7 +139,7 @@ jobs: executor: localstack/default steps: ## - localstack/startup - - install_java17 + - check_java_version - mvn_verify - check_middleware_api_versions - mvn_jar_deploy diff --git a/pom.xml b/pom.xml index a8d48433..a09cd325 100644 --- a/pom.xml +++ b/pom.xml @@ -249,25 +249,25 @@ echo " See also target/site/jacoco/index.html" echo " and https://www.jacoco.org/jacoco/trunk/doc/counters.html" echo "------------------------------------------------------------" -if which xpath > /dev/null 2>&1; then +# Parse Jacoco HTML coverage summary using grep and sed +if [ -f target/site/jacoco/index.html ]; then echo "Element\nInstructions Missed\nInstruction Coverage\nBranches Missed\nBranch Coverage\nComplexity Missed\nComplexity Hit\nLines Missed\nLines Hit\nMethods Missed\nMethods Hit\nClasses Missed\nClasses Hit\n" > /tmp/$$.headers - xpath -n -q -e '/html/body/table/tfoot/tr[1]/td/text()' target/site/jacoco/index.html > /tmp/$$.values + # Extract values from the footer row of the coverage table + grep -A 12 '' target/site/jacoco/index.html | grep '' | sed 's/\([^<]*\)<\/td>/\1/' | tr '\n' '\t' | sed 's/\t$/\n/' > /tmp/$$.values paste /tmp/$$.headers /tmp/$$.values | tail +2 | awk -v FS='\t' '{printf("%-20s %s\n",$1,$2)}' rm /tmp/$$.headers /tmp/$$.values else - echo "xpath is not installed. Jacoco coverage summary will not be produced here..."; + echo "Jacoco coverage summary could not be parsed..."; fi -if which html2text > /dev/null 2>&1; then - echo "Untested classes, per Jacoco:" - echo "-----------------------------" - for i in target/site/jacoco/*/index.html; do - html2text -width 500 -nobs $i | sed '1,/^Total/d;' | grep -v Created | sed 's/ \+/ /g' | sed 's/ [[:digit:]]$//' | grep -v 0$ | cut -d' ' -f1; - done; - echo -else - echo "html2text is not installed. Untested classes from Jacoco will not be printed here..."; -fi +echo "Untested classes, per Jacoco:" +echo "-----------------------------" +# Parse Jacoco XML reports directly to find classes with 0% coverage +find target/site/jacoco -name "jacoco.xml" -exec grep -l '