You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/03/05 22:56:48 UTC

[maven-project-info-reports-plugin] 01/01: [MPIR-384] Use PatternExcludesArtifactFilter to exclude artifacts in PluginManagement

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

slachiewicz pushed a commit to branch MPIR-384
in repository https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git

commit 7f414a5c0e70eb281ec5b7519b7375c46b832f86
Author: Gabriel Belingueres <be...@gmail.com>
AuthorDate: Mon Jan 14 14:34:58 2019 -0300

    [MPIR-384] Use PatternExcludesArtifactFilter to exclude artifacts in PluginManagement
---
 src/it/MPIR-375/pom.xml                            |  5 --
 .../report/projectinfo/PluginManagementReport.java | 62 +++++-----------------
 .../plugin-management-plugin-config-MPIR-375.xml   |  7 ---
 3 files changed, 14 insertions(+), 60 deletions(-)

diff --git a/src/it/MPIR-375/pom.xml b/src/it/MPIR-375/pom.xml
index 16afb89..acb0755 100644
--- a/src/it/MPIR-375/pom.xml
+++ b/src/it/MPIR-375/pom.xml
@@ -73,11 +73,6 @@
     </pluginManagement>
 
     <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>@sitePluginVersion@</version>
-      </plugin>
       <!--
       Example plugin generating the Eclipse's "Plugin execution not covered by lifecycle configuration" error message
        -->
diff --git a/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java b/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java
index a9f088b..cddd113 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/PluginManagementReport.java
@@ -34,6 +34,7 @@ import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;
 import org.codehaus.plexus.i18n.I18N;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -128,7 +129,7 @@ public class PluginManagementReport
 
         private final ProjectBuildingRequest buildingRequest;
         
-        private final List<String> excludes;
+        private final PatternExcludesArtifactFilter patternExcludesArtifactFilter;
 
         /**
          * @param log {@link #log}
@@ -161,7 +162,7 @@ public class PluginManagementReport
 
             this.buildingRequest = buildingRequest;
 
-            this.excludes = excludes;
+            this.patternExcludesArtifactFilter = new PatternExcludesArtifactFilter( excludes );
         }
 
         @Override
@@ -220,14 +221,10 @@ public class PluginManagementReport
 
                 Artifact pluginArtifact = repositorySystem.createProjectArtifact( plugin.getGroupId(), plugin
                     .getArtifactId(), versionRange.toString() );
-                
-                try
+
+                if ( patternExcludesArtifactFilter.include( pluginArtifact ) )
                 {
-                    if ( isExcluded( pluginArtifact ) )
-                    {
-                        log.debug( "Excluding plugin " + pluginArtifact.getId() + " from report" );
-                    }
-                    else
+                    try
                     {
                         MavenProject pluginProject =
                             projectBuilder.build( pluginArtifact, buildingRequest ).getProject();
@@ -235,13 +232,17 @@ public class PluginManagementReport
                         tableRow( getPluginRow( pluginProject.getGroupId(), pluginProject.getArtifactId(),
                                                 pluginProject.getVersion(), pluginProject.getUrl() ) );
                     }
+                    catch ( ProjectBuildingException e )
+                    {
+                        log.info( "Could not build project for: " + plugin.getArtifactId() + ":" + e.getMessage(), e );
+                        tableRow( getPluginRow( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(),
+                                                null ) );
+                    }
                 }
-                catch ( ProjectBuildingException e )
+                else
                 {
-                    log.info( "Could not build project for: " + plugin.getArtifactId() + ":" + e.getMessage(), e );
-                    tableRow( getPluginRow( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(), null ) );
+                    log.debug( "Excluding plugin " + pluginArtifact.getId() + " from report" );
                 }
-
             }
             endTable();
 
@@ -283,41 +284,6 @@ public class PluginManagementReport
                 }
             };
         }
-        
-        private boolean isExcluded( Artifact pluginArtifact )
-        {
-            if ( excludes == null )
-            {
-                return false;
-            }
 
-            for ( String pattern : excludes )
-            {
-                String[] subStrings = pattern.split( ":" );
-                subStrings = StringUtils.stripAll( subStrings );
-                String resultPattern = StringUtils.join( subStrings, ":" );
-
-                if ( compareDependency( resultPattern, pluginArtifact ) )
-                {
-                    return true;
-                }
-            }
-
-            return false;
-        }
-
-        /**
-         * Compares the given pattern against the given artifact. The pattern should follow the format
-         * <code>groupId:artifactId:type:classifier:version</code>.
-         * 
-         * @param pattern The pattern to compare the artifact with.
-         * @param artifact the artifact
-         * @return <code>true</code> if the artifact matches the pattern
-         */
-        protected boolean compareDependency( String pattern, Artifact artifact )
-        {
-            // TODO: compare with a better pattern matcher, like class ArtifactMatcher from Enforcer rules plugin
-            return artifact.getId().startsWith( pattern );
-        }
     }
 }
diff --git a/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml b/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml
index 6a94350..fc99bcd 100644
--- a/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml
+++ b/src/test/resources/plugin-configs/plugin-management-plugin-config-MPIR-375.xml
@@ -24,13 +24,6 @@ under the License.
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>plugin management project info</name>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-    </dependency>
-  </dependencies>
 
   <build>
     <pluginManagement>