You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2021/02/08 20:01:31 UTC

[jackrabbit-filevault-package-maven-plugin] branch feature/use-maven-shared-utils created (now f5528e3)

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

kwin pushed a change to branch feature/use-maven-shared-utils
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git.


      at f5528e3  JCRVLT-501 (almost) get rid of plexus-utils

This branch includes the following new commits:

     new f5528e3  JCRVLT-501 (almost) get rid of plexus-utils

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[jackrabbit-filevault-package-maven-plugin] 01/01: JCRVLT-501 (almost) get rid of plexus-utils

Posted by kw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch feature/use-maven-shared-utils
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git

commit f5528e3e9e9c022025827df3d6d9d624dc2f1351
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Feb 8 21:00:42 2021 +0100

    JCRVLT-501 (almost) get rid of plexus-utils
    
    remove unneeded Apache Commons dependencies
    rely on Maven 3.1+ way of resolving artifacts
---
 pom.xml                                            | 46 ++++++----------
 .../packaging/AbstractMetadataPackageMojo.java     | 19 +++++++
 .../AbstractSourceAndMetadataPackageMojo.java      |  2 +-
 .../maven/packaging/CheckSignatureMojo.java        | 63 ++++++++++------------
 .../maven/packaging/GenerateMetadataMojo.java      | 18 ++-----
 .../packaging/MavenBasedPackageDependency.java     |  2 +-
 .../maven/packaging/ValidateFilesMojo.java         |  2 +-
 .../filevault/maven/packaging/VaultMojo.java       | 10 ++--
 8 files changed, 76 insertions(+), 86 deletions(-)

diff --git a/pom.xml b/pom.xml
index bd05a83..90652ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -281,6 +281,17 @@
             <url>scm:svn:https://svn.apache.org/repos/asf/jackrabbit/site/live/filevault-package-maven-plugin-archives/${project.version}</url>
         </site>
     </distributionManagement>
+    
+    <dependencyManagement>
+        <dependencies>
+            <!-- manage to the version used by plexus-archiver, only used transitively -->
+            <dependency>
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-utils</artifactId>
+                <version>3.3.0</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
 
     <!-- ====================================================================== -->
     <!-- D E P E N D E N C I E S                                                -->
@@ -333,11 +344,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-compat</artifactId>
-            <version>${maven.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
             <artifactId>maven-model</artifactId>
             <version>${maven.version}</version>
         </dependency>
@@ -352,24 +358,13 @@
             <version>4.2.3</version>
         </dependency>
         <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-            <version>3.3.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.9</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.6</version>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-shared-utils</artifactId>
+            <version>3.3.3</version>
         </dependency>
         <dependency>
             <groupId>org.jetbrains</groupId>
             <artifactId>annotations</artifactId>
-            <version>18.0.0</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -386,19 +381,19 @@
         <dependency>
             <groupId>biz.aQute.bnd</groupId>
             <artifactId>biz.aQute.bndlib</artifactId>
-            <version>3.3.0</version>
+            <version>5.2.0</version>
         </dependency>
 
         <!-- used in the CheckSignature mojo -->
         <dependency>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>animal-sniffer-maven-plugin</artifactId>
-            <version>1.16</version>
+            <version>1.19</version>
         </dependency>
         <dependency>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>animal-sniffer</artifactId>
-            <version>1.16</version>
+            <version>1.19</version>
         </dependency>
 
         <!-- class analyzer -->
@@ -428,12 +423,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-shared-utils</artifactId>
-            <version>3.3.3</version>
-        </dependency>
-        
-        <dependency>
             <groupId>org.eclipse.aether</groupId>
             <artifactId>aether-api</artifactId>
             <version>${aether.version}</version>
@@ -450,7 +439,6 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.12</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractMetadataPackageMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractMetadataPackageMojo.java
index 888bbd0..4708063 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractMetadataPackageMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractMetadataPackageMojo.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import java.util.jar.JarFile;
 
@@ -27,9 +28,16 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.jackrabbit.vault.fs.config.ConfigurationException;
 import org.apache.jackrabbit.vault.util.Constants;
 import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.ArtifactResult;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -221,6 +229,17 @@ public abstract class AbstractMetadataPackageMojo extends AbstractMojo {
         return metaInfDirectory;
     }
 
+    protected static File resolveArtifact(org.eclipse.aether.artifact.Artifact artifact, RepositorySystem repoSystem, RepositorySystemSession repoSession, List<RemoteRepository> repositories) throws MojoExecutionException {
+        ArtifactRequest req = new ArtifactRequest(artifact, repositories, null);
+        ArtifactResult resolutionResult;
+        try {
+            resolutionResult = repoSystem.resolveArtifact(repoSession, req);
+            return resolutionResult.getArtifact().getFile();
+        } catch( ArtifactResolutionException e ) {
+            throw new MojoExecutionException("Artifact " + artifact + " could not be resolved.", e);
+        }
+    }
+
     Filters loadGeneratedFilterFile() throws IOException, ConfigurationException {
         // load filters for further processing
         Filters filters = new Filters();
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractSourceAndMetadataPackageMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractSourceAndMetadataPackageMojo.java
index cc74ad5..25bae89 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractSourceAndMetadataPackageMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractSourceAndMetadataPackageMojo.java
@@ -21,7 +21,7 @@ import java.util.Set;
 
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Parameter;
-import org.codehaus.plexus.util.DirectoryScanner;
+import org.apache.maven.shared.utils.io.DirectoryScanner;
 
 /**
  * Commons ancestor for all mojos dealing with package source files and meta data files
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java
index d0fe28b..f85533a 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/CheckSignatureMojo.java
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.filevault.maven.packaging;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -26,10 +27,6 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -43,6 +40,10 @@ import org.codehaus.mojo.animal_sniffer.ClassListBuilder;
 import org.codehaus.mojo.animal_sniffer.SignatureChecker;
 import org.codehaus.mojo.animal_sniffer.maven.MavenLogger;
 import org.codehaus.mojo.animal_sniffer.maven.Signature;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /**
  * Maven goal which checks the embedded libraries against a defined
@@ -63,7 +64,7 @@ public class CheckSignatureMojo extends AbstractMojo {
     private MavenProject project;
 
     /**
-     * list of embedded bundles
+     * list of embedded bundles to scan
      */
     @Parameter
     private Embedded[] embeddeds = new Embedded[0];
@@ -76,16 +77,20 @@ public class CheckSignatureMojo extends AbstractMojo {
     private boolean failOnMissingEmbed;
 
 
-    /**
-     */
     @Component
-    private ArtifactFactory artifactFactory;
+    private RepositorySystem repoSystem;
+
+    @Parameter( defaultValue = "${repositorySystemSession}", readonly = true, required = true )
+    private RepositorySystemSession repoSession;
+
+    @Parameter( defaultValue = "${project.remoteProjectRepositories}", readonly = true, required = true )
+    private List<RemoteRepository> repositories;
 
     /**
      * Project classpath.
      */
     @Parameter(property = "project.compileClasspathElements", required = true, readonly = true)
-    private List classpathElements;
+    private List<String> classpathElements;
 
     /**
      * Class names to ignore signatures for (wildcards accepted).
@@ -94,16 +99,6 @@ public class CheckSignatureMojo extends AbstractMojo {
     private String[] ignores;
 
     /**
-     */
-    @Parameter(property = "localRepository", readonly = true)
-    private ArtifactRepository localRepository;
-
-    /**
-     */
-    @Component
-    private ArtifactResolver resolver;
-
-    /**
      * Signature module to use.
      */
     @Parameter
@@ -120,9 +115,8 @@ public class CheckSignatureMojo extends AbstractMojo {
      */
     private Set<String> buildPackageList() throws IOException {
         ClassListBuilder plb = new ClassListBuilder(new MavenLogger(getLog()));
-        for (Object classpathElement : classpathElements) {
-            String path = (String) classpathElement;
-            plb.process(new File(path));
+        for (String classpathElement : classpathElements) {
+            plb.process(new File(classpathElement));
         }
         return plb.getPackages();
     }
@@ -140,9 +134,8 @@ public class CheckSignatureMojo extends AbstractMojo {
         try {
             getLog().info("Checking unresolved references to " + signature);
 
-            org.apache.maven.artifact.Artifact a = signature.createArtifact(artifactFactory);
-
-            resolver.resolve(a, project.getRemoteArtifactRepositories(), localRepository);
+            org.eclipse.aether.artifact.Artifact artifact = new DefaultArtifact(signature.getGroupId(),signature.getArtifactId(), "signature", signature.getVersion());
+            File signatureFile = AbstractMetadataPackageMojo.resolveArtifact(artifact, repoSystem, repoSession, repositories);
             // just check code from this module
             final Set<String> ignoredPackages = buildPackageList();
 
@@ -159,20 +152,20 @@ public class CheckSignatureMojo extends AbstractMojo {
                 getLog().debug(ignoredPackages.toString());
             }
 
-            final SignatureChecker signatureChecker = new SignatureChecker(new FileInputStream(a.getFile()),
-                    ignoredPackages, new MavenLogger(getLog()));
-            signatureChecker.setCheckJars(true);
-            signatureChecker.setSourcePath(Collections.singletonList(new File(project.getBuild().getSourceDirectory())));
-            signatureChecker.process(getEmbeddeds().toArray(new File[0]));
+            try (InputStream signatureInput = new FileInputStream(signatureFile)) {
+                final SignatureChecker signatureChecker = new SignatureChecker(signatureInput,
+                        ignoredPackages, new MavenLogger(getLog()));
+                signatureChecker.setCheckJars(true);
+                signatureChecker.setSourcePath(Collections.singletonList(new File(project.getBuild().getSourceDirectory())));
+                signatureChecker.process(getEmbeddeds().toArray(new File[0]));
 
-            if (signatureChecker.isSignatureBroken()) {
-                throw new MojoFailureException(
-                        "Signature errors found. Verify them and put @IgnoreJRERequirement on them.");
+                if (signatureChecker.isSignatureBroken()) {
+                    throw new MojoFailureException(
+                            "Signature errors found. Verify them and put @IgnoreJRERequirement on them.");
+                }
             }
         } catch (IOException e) {
             throw new MojoExecutionException("Failed to check signatures", e);
-        } catch (AbstractArtifactResolutionException e) {
-            throw new MojoExecutionException("Failed to obtain signature: " + signature, e);
         }
     }
 
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java
index e8c8886..e13e0ab 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/GenerateMetadataMojo.java
@@ -78,15 +78,12 @@ import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.jar.ManifestException;
-import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.StringUtils;
+import org.apache.maven.shared.utils.io.FileUtils;
+import org.apache.maven.shared.utils.io.IOUtil;
+import org.apache.maven.shared.utils.StringUtils;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.resolution.ArtifactRequest;
-import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.eclipse.aether.resolution.ArtifactResult;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
 import aQute.bnd.header.Attrs;
@@ -1233,13 +1230,6 @@ public class GenerateMetadataMojo extends AbstractMetadataPackageMojo {
     }
     
     private File resolveArtifact(org.eclipse.aether.artifact.Artifact artifact) throws MojoExecutionException {
-        ArtifactRequest req = new ArtifactRequest(artifact, this.repositories, null);
-        ArtifactResult resolutionResult;
-        try {
-            resolutionResult = this.repoSystem.resolveArtifact( this.repoSession, req );
-            return resolutionResult.getArtifact().getFile();
-        } catch( ArtifactResolutionException e ) {
-            throw new MojoExecutionException( "Artifact " + artifact + " could not be resolved.", e );
-        }
+        return resolveArtifact(artifact, repoSystem, repoSession, repositories);
     }
 }
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/MavenBasedPackageDependency.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/MavenBasedPackageDependency.java
index ac1eae1..fa88841 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/MavenBasedPackageDependency.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/MavenBasedPackageDependency.java
@@ -30,7 +30,7 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.StringUtils;
+import org.apache.maven.shared.utils.StringUtils;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
index fd298cb..d2c0190 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
@@ -54,8 +54,8 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.shared.utils.io.DirectoryScanner;
 import org.codehaus.plexus.util.AbstractScanner;
-import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.Scanner;
 
 /** 
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
index d08df70..f0189b1 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
@@ -61,10 +61,10 @@ import org.apache.maven.shared.filtering.MavenResourcesFiltering;
 import org.codehaus.plexus.archiver.FileSet;
 import org.codehaus.plexus.archiver.jar.ManifestException;
 import org.codehaus.plexus.archiver.util.DefaultFileSet;
-import org.codehaus.plexus.util.DirectoryScanner;
-import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.MatchPatterns;
-import org.codehaus.plexus.util.StringUtils;
+import org.apache.maven.shared.utils.io.DirectoryScanner;
+import org.apache.maven.shared.utils.io.FileUtils;
+import org.apache.maven.shared.utils.io.MatchPatterns;
+import org.apache.maven.shared.utils.StringUtils;
 import org.jetbrains.annotations.NotNull;
 
 /** Builds a content package. */
@@ -262,7 +262,7 @@ public class VaultMojo extends AbstractSourceAndMetadataPackageMojo {
         Path destFile = Paths.get(destFileName);
         if ((destFile.startsWith(Constants.ROOT_DIR) && enableJcrRootFiltering) ||
             (destFile.startsWith(Constants.META_INF) && enableMetaInfFiltering)) {
-            MatchPatterns matchPatterns = MatchPatterns.from(filteredFilePatterns);
+            MatchPatterns matchPatterns = MatchPatterns.from(filteredFilePatterns.toArray(new String[0]));
             if (filteredFilePatterns == null || matchPatterns.matches(sourceFile.toString(), true)) {
                 getLog().info("Apply filtering to " + getProjectRelativeFilePath(sourceFile));
                 Resource resource = new Resource();