You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2022/06/24 07:23:57 UTC

[sling-maven-enforcer-rules] branch master updated: tweak exception handling

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 11e5d71  tweak exception handling
11e5d71 is described below

commit 11e5d71d265fdc857375780dc1b8ff87030fd5ec
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Jun 24 09:23:51 2022 +0200

    tweak exception handling
    
    improve error message
---
 .../maven/enforcer/RequireExplicitDependencyScope.java   |  2 +-
 .../RequireProvidedDependenciesInRuntimeClasspath.java   | 16 ++++++++++++----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/maven/enforcer/RequireExplicitDependencyScope.java b/src/main/java/org/apache/sling/maven/enforcer/RequireExplicitDependencyScope.java
index 09e46c9..89e280a 100644
--- a/src/main/java/org/apache/sling/maven/enforcer/RequireExplicitDependencyScope.java
+++ b/src/main/java/org/apache/sling/maven/enforcer/RequireExplicitDependencyScope.java
@@ -62,7 +62,7 @@ public class RequireExplicitDependencyScope extends AbstractNonCacheableEnforcer
                 throw new EnforcerRuleException("Found " + numMissingDependencyScopes + " missing dependency " + scopesFormat.format(numMissingDependencyScopes) + ". Look at the warnings emitted above for the details.");
             }
         } catch (ExpressionEvaluationException eee) {
-            throw new EnforcerRuleException("Cannot resolve expression: " + eee.getCause(),  eee);
+            throw new EnforcerRuleException("Cannot resolve expression: " + eee.getCause(), eee);
         }
     }
 
diff --git a/src/main/java/org/apache/sling/maven/enforcer/RequireProvidedDependenciesInRuntimeClasspath.java b/src/main/java/org/apache/sling/maven/enforcer/RequireProvidedDependenciesInRuntimeClasspath.java
index aa6ee5e..34d5a9c 100644
--- a/src/main/java/org/apache/sling/maven/enforcer/RequireProvidedDependenciesInRuntimeClasspath.java
+++ b/src/main/java/org/apache/sling/maven/enforcer/RequireProvidedDependenciesInRuntimeClasspath.java
@@ -21,6 +21,7 @@ package org.apache.sling.maven.enforcer;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.text.ChoiceFormat;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -109,13 +110,19 @@ public class RequireProvidedDependenciesInRuntimeClasspath
         List<RemoteRepository> remoteRepositories;
         try {
             project = (MavenProject) helper.evaluate("${project}");
+            if (project == null) {
+                throw new ExpressionEvaluationException("${project} is null");
+            }
+            RepositorySystemSession repoSession = (RepositorySystemSession) helper.evaluate("${repositorySystemSession}");
+            if (repoSession == null) {
+                throw new ExpressionEvaluationException("${repositorySystemSession} is null");
+            }
             // get a new session to be able to tweak the dependency selector
-            newRepoSession = new DefaultRepositorySystemSession(
-                    (RepositorySystemSession) helper.evaluate("${repositorySystemSession}"));
+            newRepoSession = new DefaultRepositorySystemSession(repoSession);
             remoteRepositories = (List<RemoteRepository>) helper.evaluate("${project.remoteProjectRepositories}");
             repoSystem = helper.getComponent(RepositorySystem.class);
         } catch (ExpressionEvaluationException eee) {
-            throw new EnforcerRuleException("Unable to retrieve Maven project or repository system sesssion", eee);
+            throw new EnforcerRuleException("Cannot resolve expression: " + eee.getCause(), eee);
         } catch (ComponentLookupException cle) {
             throw new EnforcerRuleException("Unable to retrieve component RepositorySystem", cle);
         }
@@ -153,7 +160,8 @@ public class RequireProvidedDependenciesInRuntimeClasspath
                     rootDependency, repoSystem, newRepoSession, remoteRepositories, log);
             int numViolations = checkForMissingArtifacts(rootDependencyNode, runtimeArtifacts, log);
             if (numViolations > 0) {
-                throw new EnforcerRuleException("Found " + numViolations + " missing runtime dependencies. Look at the warnings emitted above for the details.");
+                ChoiceFormat dependenciesFormat = new ChoiceFormat("1#dependency|1<dependencies");
+                throw new EnforcerRuleException("Found " + numViolations + " missing runtime " + dependenciesFormat.format(numViolations) + ". Look at the warnings emitted above for the details.");
             }
         } catch (DependencyCollectionException e) {
             // draw graph