You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2023/01/25 21:23:06 UTC

[maven-enforcer] branch master updated: [MENFORCER-415] Move error message to MojoException

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git


The following commit(s) were added to refs/heads/master by this push:
     new 4bbf7cd  [MENFORCER-415] Move error message to MojoException
4bbf7cd is described below

commit 4bbf7cd116b09a68fb2de9ca43a1b4e981d0b385
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Mon Jan 23 22:22:59 2023 +0100

    [MENFORCER-415] Move error message to MojoException
    
    In multimodal project it is very difficult to find a reason of failed job.
---
 .../apache/maven/plugins/enforcer/EnforceMojo.java | 32 ++++++++--------------
 1 file changed, 11 insertions(+), 21 deletions(-)

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 0694a7c..fa01727 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
@@ -18,10 +18,9 @@
  */
 package org.apache.maven.plugins.enforcer;
 
+import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -228,9 +227,6 @@ public class EnforceMojo extends AbstractMojo {
             }
         }
 
-        // messages with warn/error flag
-        Map<String, Boolean> messages = new LinkedHashMap<>();
-
         // create my helper
         PluginParameterExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator(session, mojoExecution);
         EnforcerRuleHelper helper = new DefaultEnforcementRuleHelper(session, evaluator, log, container);
@@ -241,7 +237,7 @@ public class EnforceMojo extends AbstractMojo {
             failFast = false;
         }
 
-        boolean hasErrors = false;
+        List<String> errorMessages = new ArrayList<>();
 
         // go through each rule
         for (int ruleIndex = 0; ruleIndex < rulesList.size(); ruleIndex++) {
@@ -252,36 +248,30 @@ public class EnforceMojo extends AbstractMojo {
                 executeRule(ruleIndex, ruleDesc, helper);
             } catch (EnforcerRuleError e) {
                 String ruleMessage = createRuleMessage(ruleIndex, ruleDesc, EnforcerLevel.ERROR, e);
-                throw new MojoExecutionException(ruleMessage, e);
+                throw new MojoExecutionException(System.lineSeparator() + ruleMessage, e);
             } catch (EnforcerRuleException e) {
 
                 String ruleMessage = createRuleMessage(ruleIndex, ruleDesc, level, e);
 
                 if (failFast && level == EnforcerLevel.ERROR) {
-                    throw new MojoExecutionException(ruleMessage, e);
+                    throw new MojoExecutionException(System.lineSeparator() + ruleMessage, e);
                 }
 
                 if (level == EnforcerLevel.ERROR) {
-                    hasErrors = true;
-                    messages.put(ruleMessage, true);
+                    errorMessages.add(ruleMessage);
                 } else {
-                    messages.put(ruleMessage, false);
+                    log.warn(ruleMessage);
                 }
             }
         }
 
-        // log any messages
-        messages.forEach((message, error) -> {
-            if (fail && error) {
-                log.error(message);
+        if (!errorMessages.isEmpty()) {
+            if (fail) {
+                throw new MojoExecutionException(
+                        System.lineSeparator() + String.join(System.lineSeparator(), errorMessages));
             } else {
-                log.warn(message);
+                errorMessages.forEach(log::warn);
             }
-        });
-
-        if (fail && hasErrors) {
-            throw new MojoExecutionException(
-                    "Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.");
         }
     }