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 <khmarba...@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 khmarba...@apache.org.