You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2024/10/15 23:06:55 UTC

(logging-log4j-transform) branch main updated: Skip the transformer if log4j-api isn't present (#134)

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

rgoers pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j-transform.git


The following commit(s) were added to refs/heads/main by this push:
     new 837fb79  Skip the transformer if log4j-api isn't present (#134)
837fb79 is described below

commit 837fb79bd7b2bceb8dcdcdfd82b200e8a0f29f8b
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Tue Oct 15 16:06:50 2024 -0700

    Skip the transformer if log4j-api isn't present (#134)
    
    * Skip the transformer if log4j-api isn't present
    
    Signed-off-by: Ralph Goers <rg...@apache.org>
    
    * Chanage Log message
    
    * Convert exceptions to just logging errors and returning
    
    ---------
    
    Signed-off-by: Ralph Goers <rg...@apache.org>
---
 .../log4j/transform/maven/LocationMojo.java        | 28 +++++++++++++++-------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
index 4a15886..0fc805c 100644
--- a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
+++ b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
@@ -29,6 +29,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import org.apache.logging.log4j.transform.maven.scan.ClassFileInclusionScanner;
@@ -106,7 +107,9 @@ public class LocationMojo extends AbstractMojo {
             getLog().info("Skipping project with packaging \"pom\".");
             return;
         }
-        validateLog4jVersion();
+        if (!validateLog4jVersion()) {
+            return;
+        }
 
         final Path sourceDirectory = this.sourceDirectory.toPath();
         final Path outputDirectory = this.outputDirectory.toPath();
@@ -189,23 +192,32 @@ public class LocationMojo extends AbstractMojo {
         }
     }
 
-    private void validateLog4jVersion() throws MojoExecutionException {
-        Artifact log4jApi = project.getArtifacts().stream()
+    private boolean validateLog4jVersion() throws MojoExecutionException {
+        Optional<Artifact> artifact = project.getArtifacts().stream()
                 .filter(a -> LOG4J_GROUP_ID.equals(a.getGroupId()) && LOG4J_API_ARTIFACT_ID.equals(a.getArtifactId()))
-                .findAny()
-                .orElseThrow(() -> new MojoExecutionException("Missing `log4j-api` dependency."));
+                .findAny();
+        Artifact log4jApi;
+        if (artifact.isPresent()) {
+            log4jApi = artifact.get();
+        } else {
+            getLog().info("Skipping project. Log4j API is not being used.");
+            return false;
+        }
         try {
             if (MIN_SUPPORTED_VERSION.compareTo(log4jApi.getSelectedVersion()) > 0) {
-                throw new MojoExecutionException("Log4j2 API version " + MIN_SUPPORTED_VERSION
-                        + " required. Selected version: " + log4jApi.getSelectedVersion());
+                getLog().error("Log4j2 API version " + MIN_SUPPORTED_VERSION + " required. Selected version: "
+                        + log4jApi.getSelectedVersion());
+                return false;
             }
             // Transitive dependency
             if (!project.getDependencyArtifacts().contains(log4jApi)) {
                 getLog().warn("Log4j2 API should not be a transitive dependency.");
             }
         } catch (OverConstrainedVersionException e) {
-            throw new MojoExecutionException("Can not determine `log4j-api` version.", e);
+            getLog().error("Can not determine `log4j-api` version. " + e.getMessage());
+            return false;
         }
+        return true;
     }
 
     private ClassLoader getProjectDependencies() throws MojoExecutionException {