From 49a9a4cfcc5be3afca10d99ae5d1bcf7280db674 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 22 Dec 2021 13:55:01 -0800 Subject: [PATCH] [MENFORCER-409] Log at ERROR level when is set --- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../ban-pom-dependency-version/verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../verify.groovy | 2 +- .../require-plugin-versions-ci/verify.groovy | 2 +- .../maven/plugins/enforcer/EnforceMojo.java | 35 +++++++++++-------- 14 files changed, 33 insertions(+), 28 deletions(-) diff --git a/maven-enforcer-plugin/src/it/projects/ban-distribution-management-multi-module-build/verify.groovy b/maven-enforcer-plugin/src/it/projects/ban-distribution-management-multi-module-build/verify.groovy index 6ff5ee51..95d7a1c1 100644 --- a/maven-enforcer-plugin/src/it/projects/ban-distribution-management-multi-module-build/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/ban-distribution-management-multi-module-build/verify.groovy @@ -18,5 +18,5 @@ */ File buildLog = new File( basedir, 'build.log' ) assert buildLog.text.contains( '[INFO] BUILD FAILURE' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanDistributionManagement failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.BanDistributionManagement failed with message:' ) assert buildLog.text.contains( 'You have defined a repository in distributionManagement.' ) diff --git a/maven-enforcer-plugin/src/it/projects/ban-duplicate-dependencies-versions/verify.groovy b/maven-enforcer-plugin/src/it/projects/ban-duplicate-dependencies-versions/verify.groovy index c4047456..c273942d 100644 --- a/maven-enforcer-plugin/src/it/projects/ban-duplicate-dependencies-versions/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/ban-duplicate-dependencies-versions/verify.groovy @@ -17,7 +17,7 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicatePomDependencyVersions failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicatePomDependencyVersions failed with message:' ) assert buildLog.text.contains( 'Found 1 duplicate dependency declarations in this project:' ) assert buildLog.text.contains( '- dependencyManagement.dependencies.dependency[org.apache.maven.plugins.enforcer.its:menforcer128_api:jar] ( 2 times )' ) diff --git a/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version-utf8-with-bom/verify.groovy b/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version-utf8-with-bom/verify.groovy index eb917f97..e1e4696c 100644 --- a/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version-utf8-with-bom/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version-utf8-with-bom/verify.groovy @@ -17,7 +17,7 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicatePomDependencyVersions failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicatePomDependencyVersions failed with message:' ) assert buildLog.text.contains( 'Found 1 duplicate dependency declaration in this project:' ) assert buildLog.text.contains( '- dependencies.dependency[org.apache.maven.plugins.enforcer.its:menforcer152:jar] ( 2 times )' ) diff --git a/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version/verify.groovy b/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version/verify.groovy index 0c251289..8f3fd232 100644 --- a/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/ban-pom-dependency-version/verify.groovy @@ -17,7 +17,7 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicatePomDependencyVersions failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.BanDuplicatePomDependencyVersions failed with message:' ) assert buildLog.text.contains( 'Found 1 duplicate dependency declaration in this project:' ) assert buildLog.text.contains( '- dependencies.dependency[org.apache.maven.plugins.enforcer.its:menforcer152:jar] ( 2 times )' ) diff --git a/maven-enforcer-plugin/src/it/projects/ban-transitive-dependencies-fail/verify.groovy b/maven-enforcer-plugin/src/it/projects/ban-transitive-dependencies-fail/verify.groovy index 5dacb943..e8381cdc 100644 --- a/maven-enforcer-plugin/src/it/projects/ban-transitive-dependencies-fail/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/ban-transitive-dependencies-fail/verify.groovy @@ -17,5 +17,5 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BanTransitiveDependencies failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.BanTransitiveDependencies failed with message:' ) \ No newline at end of file diff --git a/maven-enforcer-plugin/src/it/projects/banned-dependencies-versionrange-fail/verify.groovy b/maven-enforcer-plugin/src/it/projects/banned-dependencies-versionrange-fail/verify.groovy index c1e09434..8a0f2952 100644 --- a/maven-enforcer-plugin/src/it/projects/banned-dependencies-versionrange-fail/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/banned-dependencies-versionrange-fail/verify.groovy @@ -17,5 +17,5 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BannedDependencies failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.BannedDependencies failed with message:' ) \ No newline at end of file diff --git a/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-plugin-repo/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-plugin-repo/verify.groovy index c0657656..01f63fb9 100644 --- a/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-plugin-repo/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-plugin-repo/verify.groovy @@ -17,6 +17,6 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) assert buildLog.text.contains( 'Some poms have repositories defined:' ) assert buildLog.text.contains( 'org.apache.maven.its.enforcer:test version:1.0 has repositories [com.asual.maven.public]' ) diff --git a/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-repo/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-repo/verify.groovy index b9538f39..639dd56b 100644 --- a/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-repo/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-no-repositories-allow-repo/verify.groovy @@ -17,6 +17,6 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) assert buildLog.text.contains( 'Some poms have repositories defined:' ) assert buildLog.text.contains( 'org.apache.maven.its.enforcer:test version:1.0 has plugin repositories [plugin-repo]' ) diff --git a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure/verify.groovy index c0657656..01f63fb9 100644 --- a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure/verify.groovy @@ -17,6 +17,6 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) assert buildLog.text.contains( 'Some poms have repositories defined:' ) assert buildLog.text.contains( 'org.apache.maven.its.enforcer:test version:1.0 has repositories [com.asual.maven.public]' ) diff --git a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_allowed-plugin-repo/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_allowed-plugin-repo/verify.groovy index c0657656..01f63fb9 100644 --- a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_allowed-plugin-repo/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_allowed-plugin-repo/verify.groovy @@ -17,6 +17,6 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) assert buildLog.text.contains( 'Some poms have repositories defined:' ) assert buildLog.text.contains( 'org.apache.maven.its.enforcer:test version:1.0 has repositories [com.asual.maven.public]' ) diff --git a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_plugin-repositories/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_plugin-repositories/verify.groovy index b3c2b468..634d4aa9 100644 --- a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_plugin-repositories/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_plugin-repositories/verify.groovy @@ -17,6 +17,6 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) assert buildLog.text.contains( 'Some poms have repositories defined:' ) assert buildLog.text.contains( 'org.apache.maven.its.enforcer:test version:1.0 has plugin repositories [repo]' ) diff --git a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_repositories/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_repositories/verify.groovy index c0657656..01f63fb9 100644 --- a/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_repositories/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-no-repositories_failure_repositories/verify.groovy @@ -17,6 +17,6 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequireNoRepositories failed with message:' ) assert buildLog.text.contains( 'Some poms have repositories defined:' ) assert buildLog.text.contains( 'org.apache.maven.its.enforcer:test version:1.0 has repositories [com.asual.maven.public]' ) diff --git a/maven-enforcer-plugin/src/it/projects/require-plugin-versions-ci/verify.groovy b/maven-enforcer-plugin/src/it/projects/require-plugin-versions-ci/verify.groovy index 574942ca..4377c862 100644 --- a/maven-enforcer-plugin/src/it/projects/require-plugin-versions-ci/verify.groovy +++ b/maven-enforcer-plugin/src/it/projects/require-plugin-versions-ci/verify.groovy @@ -17,5 +17,5 @@ * under the License. */ File buildLog = new File( basedir, 'build.log' ) -assert buildLog.text.contains( '[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequirePluginVersions failed with message:' ) +assert buildLog.text.contains( '[ERROR] Rule 0: org.apache.maven.plugins.enforcer.RequirePluginVersions failed with message:' ) assert buildLog.text.contains( "Some plugins are missing valid versions or depend on Maven ${mavenVersion} defaults: (LATEST RELEASE SNAPSHOT are not allowed)" ) diff --git a/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java b/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java index 24234d73..dc335463 100644 --- a/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java +++ b/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java @@ -19,9 +19,9 @@ * under the License. */ -import java.util.ArrayList; import java.util.Hashtable; -import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; import org.apache.maven.enforcer.rule.api.EnforcerLevel; import org.apache.maven.enforcer.rule.api.EnforcerRule; @@ -158,8 +158,8 @@ public void execute() // CHECKSTYLE_ON: LineLength } - // list to store exceptions - List list = new ArrayList<>(); + // messages with warn/error flag + Map messages = new LinkedHashMap<>(); String currentRule = "Unknown"; @@ -228,31 +228,36 @@ public void execute() if ( level == EnforcerLevel.ERROR ) { hasErrors = true; - list.add( "Rule " + i + ": " + currentRule + " failed with message:" - + System.lineSeparator() + exceptionMessage ); + messages.put( "Rule " + i + ": " + currentRule + " failed with message:" + + System.lineSeparator() + exceptionMessage, true ); } else { - list.add( "Rule " + i + ": " + currentRule + " warned with message:" - + System.lineSeparator() + exceptionMessage ); + messages.put( "Rule " + i + ": " + currentRule + " warned with message:" + + System.lineSeparator() + exceptionMessage, false ); } } } } } - // if we found anything - // CHECKSTYLE_OFF: LineLength - if ( !list.isEmpty() ) + // log any messages + messages.forEach( ( message, error ) -> { - for ( String failure : list ) + if ( fail && error ) { - log.warn( failure ); + log.error( message ); } - if ( fail && hasErrors ) + else { - throw new MojoExecutionException( "Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed." ); + log.warn( message ); } + } ); + + // CHECKSTYLE_OFF: LineLength + if ( fail && hasErrors ) + { + throw new MojoExecutionException( "Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed." ); } // CHECKSTYLE_ON: LineLength }