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

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


The following commit(s) were added to refs/heads/master by this push:
     new 764a9ca0b [MNG-7823] Improve plugin validation level parsing (#1182)
764a9ca0b is described below

commit 764a9ca0bef69995f5ca40aced0c63ba60917d95
Author: Tamas Cservenak <[email protected]>
AuthorDate: Fri Jun 23 13:04:57 2023 +0200

    [MNG-7823] Improve plugin validation level parsing (#1182)
    
    Changes:
    * always parse it at session start
    * hence, will WARN if needed there as well, and will warn once
    * do not re-parse and possibly warn always, reuse parsed enum
    
    ---
    
    https://issues.apache.org/jira/browse/MNG-7823
---
 .../maven/plugin/internal/DefaultPluginValidationManager.java | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
 
b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
index cda45acad..7ef25648c 100644
--- 
a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
+++ 
b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java
@@ -83,13 +83,22 @@ public final class DefaultPluginValidationManager extends 
AbstractEventSpy imple
     public void onEvent(Object event) {
         if (event instanceof ExecutionEvent) {
             ExecutionEvent executionEvent = (ExecutionEvent) event;
-            if (executionEvent.getType() == ExecutionEvent.Type.SessionEnded) {
+            if (executionEvent.getType() == 
ExecutionEvent.Type.SessionStarted) {
+                RepositorySystemSession repositorySystemSession =
+                        executionEvent.getSession().getRepositorySession();
+                validationReportLevel(repositorySystemSession); // this will 
parse and store it in session.data
+            } else if (executionEvent.getType() == 
ExecutionEvent.Type.SessionEnded) {
                 
reportSessionCollectedValidationIssues(executionEvent.getSession());
             }
         }
     }
 
     private ValidationReportLevel 
validationReportLevel(RepositorySystemSession session) {
+        return (ValidationReportLevel) session.getData()
+                .computeIfAbsent(ValidationReportLevel.class, () -> 
parseValidationReportLevel(session));
+    }
+
+    private ValidationReportLevel 
parseValidationReportLevel(RepositorySystemSession session) {
         String level = ConfigUtils.getString(session, null, 
MAVEN_PLUGIN_VALIDATION_KEY);
         if (level == null || level.isEmpty()) {
             return DEFAULT_VALIDATION_LEVEL;

Reply via email to