From 44fe19370545172ef12b05d724bfba87b3488c95 Mon Sep 17 00:00:00 2001 From: Uwe Schindler Date: Fri, 30 Mar 2018 20:29:07 +0200 Subject: [PATCH] Limit line length / number of missing classes to be reported on signature parsing --- .../de/thetaphi/forbiddenapis/Checker.java | 21 ++++++++++++------- src/test/antunit/TestInlineSignatures.xml | 6 ++++-- src/test/antunit/TestMavenMojo.xml | 3 ++- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/thetaphi/forbiddenapis/Checker.java b/src/main/java/de/thetaphi/forbiddenapis/Checker.java index 7a78cfb9..453b280b 100644 --- a/src/main/java/de/thetaphi/forbiddenapis/Checker.java +++ b/src/main/java/de/thetaphi/forbiddenapis/Checker.java @@ -447,16 +447,21 @@ private void addSignature(final String line, final String defaultMessage, final } private void reportMissingSignatureClasses(Set missingClasses) { - if (!missingClasses.isEmpty()) { - final StringBuilder sb = new StringBuilder("Some signatures were ignored because the following classes were not found on classpath: "); - boolean comma = false; - for (String s : missingClasses) { - if (comma) sb.append(", "); - comma = true; - sb.append(s); + if (missingClasses.isEmpty()) { + return; + } + logger.warn("Some signatures were ignored because the following classes were not found on classpath:"); + final StringBuilder sb = new StringBuilder(); + int count = 0; + for (String s : missingClasses) { + sb.append(count == 0 ? " " : ", ").append(s); + count++; + if (sb.length() >= 70) { + sb.append(",... (and ").append(missingClasses.size() - count).append(" more)."); + break; } - logger.warn(sb.toString()); } + logger.warn(sb.toString()); } /** Reads a list of bundled API signatures from classpath. */ diff --git a/src/test/antunit/TestInlineSignatures.xml b/src/test/antunit/TestInlineSignatures.xml index 7e08525d..84a34b29 100644 --- a/src/test/antunit/TestInlineSignatures.xml +++ b/src/test/antunit/TestInlineSignatures.xml @@ -97,7 +97,8 @@ java.lang.String#forbiddenFoobarField @ should be ignored java.awt.Color @ Color is disallowed, thats not bad, because ANT has no colors... (this was just added to don't fail because of missing signatures) - + + @@ -110,7 +111,8 @@ java.lang.String#forbiddenFoobarField @ should be ignored java.awt.Color @ Color is disallowed, thats not bad, because ANT has no colors... (this was just added to don't fail because of missing signatures) - + + diff --git a/src/test/antunit/TestMavenMojo.xml b/src/test/antunit/TestMavenMojo.xml index aa9d995b..a2957dbd 100644 --- a/src/test/antunit/TestMavenMojo.xml +++ b/src/test/antunit/TestMavenMojo.xml @@ -84,7 +84,8 @@ - + +