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.