You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2018/02/14 19:38:26 UTC

[maven-enforcer] 03/03: Added patch from MENFORCER-277 Not yet compiling.

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

khmarbaise pushed a commit to branch MENFORCER-267
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git

commit ee2710487e5c119f57bcb49ee461ba5090c48b62
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Wed Feb 14 20:37:58 2018 +0100

    Added patch from MENFORCER-277
    Not yet compiling.
---
 .../maven/plugins/enforcer/AbstractBanDependencies.java    |  7 ++++---
 .../maven/plugins/enforcer/BanTransitiveDependencies.java  |  2 +-
 .../maven/plugins/enforcer/DependencyConvergence.java      | 11 ++++++++---
 .../maven/plugins/enforcer/RequirePluginVersions.java      |  9 +++++++++
 .../maven/plugins/enforcer/RequireUpperBoundDeps.java      | 10 ++++++++--
 .../maven/plugins/enforcer/utils/EnforcerRuleUtils.java    |  5 ++++-
 .../plugins/enforcer/BannedDependenciesTestSetup.java      |  5 +++--
 .../apache/maven/plugins/enforcer/EnforcerTestUtils.java   | 11 ++++++++---
 .../apache/maven/plugins/enforcer/MockPlexusContainer.java |  1 +
 .../maven/plugins/enforcer/TestRequireReleaseDeps.java     | 14 ++++++++------
 10 files changed, 54 insertions(+), 21 deletions(-)

diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
index 9039312..4d77c17 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
@@ -27,6 +27,7 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
@@ -74,7 +75,7 @@ public abstract class AbstractBanDependencies
         }
 
         // get the correct list of dependencies
-        Set<Artifact> dependencies = getDependenciesToCheck( session );
+        Set<Artifact> dependencies = getDependenciesToCheck( session.getProjectBuildingRequest() );
 
         // look for banned dependencies
         Set<Artifact> foundExcludes = checkDependencies( dependencies, helper.getLog() );
@@ -105,12 +106,12 @@ public abstract class AbstractBanDependencies
         return "Found Banned Dependency: " + artifact.getId() + "\n";
     }
 
-    protected Set<Artifact> getDependenciesToCheck( MavenSession session )
+    protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest request)
     {
         Set<Artifact> dependencies = null;
         try
         {
-            DependencyNode node = graphBuilder.buildDependencyGraph( session.getProjectBuildingRequest(), null );
+            DependencyNode node = graphBuilder.buildDependencyGraph( request, null );
             if ( searchTransitive )
             {
                 dependencies = getAllDescendants( node );
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
index 00f96f5..20bae2e 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
@@ -28,7 +28,6 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher;
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder;
@@ -159,6 +158,7 @@ public class BanTransitiveDependencies
         try
         {
             MavenSession session = (MavenSession) helper.evaluate( "${session}" );
+            
             rootNode = createDependencyGraphBuilder().buildDependencyGraph( session.getProjectBuildingRequest(), null );
         }
         catch ( Exception e )
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
index f6f4256..36f24ba 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.enforcer.rule.api.EnforcerRule;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
@@ -32,7 +31,9 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.enforcer.utils.DependencyVersionMap;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
@@ -58,7 +59,7 @@ public class DependencyConvergence
     // CHECKSTYLE_OFF: LineLength
     /**
      * Uses the {@link EnforcerRuleHelper} to populate the values of the
-     * {@link DependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)}
+     * {@link DependencyGraphBuilder#buildDependencyGraph(org.apache.maven.project.ProjectBuildingRequest, ArtifactFilter)}
      * factory method. <br/>
      * This method simply exists to hide all the ugly lookup that the {@link EnforcerRuleHelper} has to do.
      * 
@@ -72,12 +73,16 @@ public class DependencyConvergence
     {
         try
         {
+            MavenProject project = (MavenProject) helper.evaluate( "${project}" );
             MavenSession session = (MavenSession) helper.evaluate( "${session}" );
+            
+            ProjectBuildingRequest request = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
+            request.setProject( project );
             DependencyGraphBuilder dependencyTreeBuilder =
                 (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class );
             ArtifactFilter filter = null; // we need to evaluate all scopes
             
-            DependencyNode node = dependencyTreeBuilder.buildDependencyGraph(session.getProjectBuildingRequest(), filter );
+            DependencyNode node = dependencyTreeBuilder.buildDependencyGraph(request, filter );
 
             return node;
         }
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
index e700735..958cc5f 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
@@ -69,6 +69,7 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti
 import org.codehaus.plexus.util.ReflectionUtils;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.sonatype.aether.impl.ArtifactResolver;
 
 /**
  * This rule will enforce that all plugins specified in the poms have a version declared.
@@ -161,6 +162,12 @@ public class RequirePluginVersions
     /** The lifecycles. */
     private Collection<Lifecycle> lifecycles;
 
+    /** The factory. */
+    ArtifactFactory factory;
+    
+    /** The resolver. */
+    ArtifactResolver resolver;
+
     /** The local. */
     ArtifactRepository local;
 
@@ -210,6 +217,8 @@ public class RequirePluginVersions
 
             session = (MavenSession) helper.evaluate( "${session}" );
             pluginManager = (PluginManager) helper.getComponent( PluginManager.class );
+            factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
+            resolver = (ArtifactResolver) helper.getComponent( ArtifactResolver.class );
             local = (ArtifactRepository) helper.evaluate( "${localRepository}" );
             remoteRepositories = project.getRemoteArtifactRepositories();
 
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
index fad4d23..09ba0ae 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
@@ -34,7 +34,9 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
 import org.apache.maven.shared.dependency.graph.DependencyNode;
@@ -88,7 +90,7 @@ public class RequireUpperBoundDeps
     // CHECKSTYLE_OFF: LineLength
     /**
      * Uses the {@link EnforcerRuleHelper} to populate the values of the
-     * {@link DependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)}
+     * {@link DependencyGraphBuilder#buildDependencyGraph(org.apache.maven.project.ProjectBuildingRequest, ArtifactFilter)}
      * factory method. <br/>
      * This method simply exists to hide all the ugly lookup that the {@link EnforcerRuleHelper} has to do.
      * 
@@ -103,11 +105,15 @@ public class RequireUpperBoundDeps
         try
         {
             MavenSession session = (MavenSession) helper.evaluate( "${session}" );
+            MavenProject project = (MavenProject) helper.evaluate( "${project}" );
+            ProjectBuildingRequest request = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
+            request.setProject( project );
+
             DependencyGraphBuilder dependencyTreeBuilder =
                 (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class );
             ArtifactFilter filter = null; // we need to evaluate all scopes
             
-            DependencyNode node = dependencyTreeBuilder.buildDependencyGraph(session.getProjectBuildingRequest(), filter );
+            DependencyNode node = dependencyTreeBuilder.buildDependencyGraph(request, filter );
 
             return node;
         }
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
index 559e187..9af0233 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
@@ -42,7 +42,10 @@ public class EnforcerRuleUtils
 
     /** The factory. */
     ArtifactFactory factory;
-
+    
+    /** The resolver. */
+    ArtifactResolver resolver;
+    
     /** The local. */
     ArtifactRepository local;
 
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java
index 1d36ef7..8218c36 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java
@@ -29,6 +29,7 @@ import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
 
 public class BannedDependenciesTestSetup
 {
@@ -92,10 +93,10 @@ public class BannedDependenciesTestSetup
     {
         BannedDependencies rule = new BannedDependencies()
         {
-            @SuppressWarnings( "unchecked" )
             @Override
-            protected Set<Artifact> getDependenciesToCheck( MavenProject project )
+            protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest request )
             {
+                  MavenProject project = request.getProject();
                 // the integration with dependencyGraphTree is verified with the integration tests
                 // for unit-testing
                 return isSearchTransitive() ? project.getArtifacts() : project.getDependencyArtifacts();
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/EnforcerTestUtils.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/EnforcerTestUtils.java
index 29014a5..5b1461a 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/EnforcerTestUtils.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/EnforcerTestUtils.java
@@ -33,6 +33,7 @@ import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
 import org.apache.maven.plugin.logging.SystemStreamLog;
 import org.apache.maven.plugins.enforcer.utils.MockEnforcerExpressionEvaluator;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
@@ -58,9 +59,9 @@ public final class EnforcerTestUtils
 
         Properties systemProperties = new Properties();
         systemProperties.put( "maven.version", "3.0" );
-        when( mer.getUserProperties() ).thenReturn( new Properties() );
-        when( mer.getSystemProperties() ).thenReturn( systemProperties );
-
+        when( mer.getSystemProperties()).thenReturn( systemProperties );
+        when( mer.getProjectBuildingRequest() ).thenReturn( new DefaultProjectBuildingRequest() );
+         
         MavenExecutionResult meresult = mock( MavenExecutionResult.class );
         return new MavenSession( mock, (RepositorySystemSession) null, mer, meresult );
     }
@@ -107,6 +108,8 @@ public final class EnforcerTestUtils
     public static EnforcerRuleHelper getHelper( MavenProject project, boolean mockExpression )
     {
         MavenSession session = getMavenSession();
+        session.getProjectBuildingRequest().setProject( project );
+        
         ExpressionEvaluator eval;
         if ( mockExpression )
         {
@@ -131,6 +134,8 @@ public final class EnforcerTestUtils
     public static EnforcerRuleHelper getHelper( MavenProject project, ExpressionEvaluator eval )
     {
         MavenSession session = getMavenSession();
+        session.getProjectBuildingRequest().setProject( project );
+
         return new DefaultEnforcementRuleHelper( session, eval, new SystemStreamLog(), null );
     }
 
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockPlexusContainer.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockPlexusContainer.java
index a73cbbd..da67086 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockPlexusContainer.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockPlexusContainer.java
@@ -27,6 +27,7 @@ import java.util.Map;
 
 import org.apache.maven.execution.RuntimeInformation;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.RuntimeInfo;
 import org.codehaus.classworlds.ClassRealm;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.PlexusContainerException;
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseDeps.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseDeps.java
index 858e60f..9204233 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseDeps.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestRequireReleaseDeps.java
@@ -22,13 +22,14 @@ package org.apache.maven.plugins.enforcer;
 import java.io.IOException;
 import java.util.Set;
 
-import junit.framework.TestCase;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
 import org.apache.maven.plugins.enforcer.utils.EnforcerRuleUtilsHelper;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
+
+import junit.framework.TestCase;
 
 /**
  * The Class TestNoSnapshots.
@@ -81,7 +82,7 @@ public class TestRequireReleaseDeps
         project.setParent( parent );
         project.setArtifacts( null );
         project.setDependencyArtifacts( null );
-        helper = EnforcerTestUtils.getHelper(project);
+        helper = EnforcerTestUtils.getHelper( project );
 
         rule.setFailWhenParentIsSnapshot( true );
         EnforcerRuleUtilsHelper.execute( rule, helper, true );
@@ -89,15 +90,16 @@ public class TestRequireReleaseDeps
         rule.setFailWhenParentIsSnapshot( false );
         EnforcerRuleUtilsHelper.execute( rule, helper, false );
 
-
     }
 
     private RequireReleaseDeps newRequireReleaseDeps()
     {
         RequireReleaseDeps rule = new RequireReleaseDeps()
         {
-            protected Set<Artifact> getDependenciesToCheck( MavenProject project )
-            {
+            @Override
+            protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest request )
+                         {
+            MavenProject project = request.getProject();
                 // the integration with dependencyGraphTree is verified with the integration tests
                 // for unit-testing 
                 return isSearchTransitive() ? project.getArtifacts() : project.getDependencyArtifacts();

-- 
To stop receiving notification emails like this one, please contact
khmarbaise@apache.org.