|
|
e2b0033 |
From 6a4c8a3177ad95989baa4df28d8a3479faf8be8c Mon Sep 17 00:00:00 2001
|
|
|
820761f |
From: Mikolaj Izdebski <mizdebsk@redhat.com>
|
|
|
820761f |
Date: Mon, 12 Oct 2015 15:48:16 +0200
|
|
|
820761f |
Subject: [PATCH] Port to Maven 3 API
|
|
|
820761f |
|
|
|
820761f |
---
|
|
|
0eb432b |
enforcer-rules/pom.xml | 6 ++-
|
|
|
0eb432b |
.../enforcer/AbstractBanDependencies.java | 13 +++--
|
|
|
0eb432b |
.../enforcer/BanTransitiveDependencies.java | 7 ++-
|
|
|
0eb432b |
.../enforcer/DependencyConvergence.java | 29 +++++------
|
|
|
69848d6 |
.../enforcer/RequirePluginVersions.java | 51 +++++++------------
|
|
|
69848d6 |
.../enforcer/RequireUpperBoundDeps.java | 31 ++++-------
|
|
|
0eb432b |
.../enforcer/utils/DependencyVersionMap.java | 6 +--
|
|
|
69848d6 |
.../enforcer/utils/EnforcerRuleUtils.java | 40 +++------------
|
|
|
69848d6 |
pom.xml | 11 ++--
|
|
|
69848d6 |
9 files changed, 78 insertions(+), 116 deletions(-)
|
|
|
820761f |
|
|
|
820761f |
diff --git a/enforcer-rules/pom.xml b/enforcer-rules/pom.xml
|
|
|
69848d6 |
index 187d38b..076c84a 100644
|
|
|
820761f |
--- a/enforcer-rules/pom.xml
|
|
|
820761f |
+++ b/enforcer-rules/pom.xml
|
|
|
0eb432b |
@@ -43,12 +43,16 @@
|
|
|
69848d6 |
</dependency>
|
|
|
69848d6 |
<dependency>
|
|
|
69848d6 |
<groupId>org.apache.maven</groupId>
|
|
|
69848d6 |
- <artifactId>maven-core</artifactId>
|
|
|
69848d6 |
+ <artifactId>maven-compat</artifactId>
|
|
|
69848d6 |
</dependency>
|
|
|
69848d6 |
<dependency>
|
|
|
69848d6 |
<groupId>org.apache.maven.shared</groupId>
|
|
|
69848d6 |
<artifactId>maven-common-artifact-filters</artifactId>
|
|
|
69848d6 |
</dependency>
|
|
|
69848d6 |
+ <dependency>
|
|
|
69848d6 |
+ <groupId>org.apache.maven.shared</groupId>
|
|
|
69848d6 |
+ <artifactId>maven-artifact-transfer</artifactId>
|
|
|
69848d6 |
+ </dependency>
|
|
|
69848d6 |
<dependency>
|
|
|
69848d6 |
<groupId>org.codehaus.plexus</groupId>
|
|
|
69848d6 |
<artifactId>plexus-utils</artifactId>
|
|
|
820761f |
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
|
|
|
69848d6 |
index 2888a61..cfd5338 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
|
|
|
69848d6 |
@@ -23,8 +23,10 @@ import org.apache.maven.artifact.Artifact;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
|
|
|
69848d6 |
import org.apache.maven.plugin.logging.Log;
|
|
|
69848d6 |
+import org.apache.maven.project.DefaultProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.plugins.enforcer.utils.ArtifactUtils;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
|
|
|
69848d6 |
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
|
|
|
69848d6 |
import org.apache.maven.shared.dependency.graph.DependencyNode;
|
|
|
0eb432b |
@@ -53,10 +55,11 @@ public abstract class AbstractBanDependencies
|
|
|
69848d6 |
{
|
|
|
69848d6 |
|
|
|
69848d6 |
// get the project
|
|
|
69848d6 |
- MavenProject project = null;
|
|
|
69848d6 |
+ ProjectBuildingRequest projectBuildingRequest = null;
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- project = (MavenProject) helper.evaluate( "${project}" );
|
|
|
69848d6 |
+ projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) );
|
|
|
69848d6 |
+ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( ExpressionEvaluationException eee )
|
|
|
69848d6 |
{
|
|
|
0eb432b |
@@ -83,7 +86,7 @@ public abstract class AbstractBanDependencies
|
|
|
69848d6 |
}
|
|
|
69848d6 |
|
|
|
69848d6 |
// get the correct list of dependencies
|
|
|
69848d6 |
- Set<Artifact> dependencies = getDependenciesToCheck( project );
|
|
|
69848d6 |
+ Set<Artifact> dependencies = getDependenciesToCheck( projectBuildingRequest );
|
|
|
69848d6 |
|
|
|
69848d6 |
// look for banned dependencies
|
|
|
69848d6 |
Set<Artifact> foundExcludes = checkDependencies( dependencies, helper.getLog() );
|
|
|
0eb432b |
@@ -114,12 +117,12 @@ public abstract class AbstractBanDependencies
|
|
|
69848d6 |
return "Found Banned Dependency: " + artifact.getId() + System.lineSeparator();
|
|
|
69848d6 |
}
|
|
|
69848d6 |
|
|
|
69848d6 |
- protected Set<Artifact> getDependenciesToCheck( MavenProject project )
|
|
|
69848d6 |
+ protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest projectBuildingRequest )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
Set<Artifact> dependencies = null;
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- DependencyNode node = graphBuilder.buildDependencyGraph( project, null );
|
|
|
69848d6 |
+ DependencyNode node = graphBuilder.buildDependencyGraph( projectBuildingRequest, null );
|
|
|
69848d6 |
if ( searchTransitive )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
dependencies = ArtifactUtils.getAllDescendants( node );
|
|
|
820761f |
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
|
|
|
69848d6 |
index 6e1dcd4..b84f421 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
|
|
|
e2b0033 |
@@ -27,7 +27,9 @@ import org.apache.maven.enforcer.rule.api.EnforcerRule;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
|
|
|
69848d6 |
import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher;
|
|
|
69848d6 |
+import org.apache.maven.project.DefaultProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
|
|
|
69848d6 |
import org.apache.maven.shared.dependency.graph.DependencyNode;
|
|
|
69848d6 |
import org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder;
|
|
|
0eb432b |
@@ -157,8 +159,9 @@ public class BanTransitiveDependencies
|
|
|
69848d6 |
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- MavenProject project = (MavenProject) helper.evaluate( "${project}" );
|
|
|
69848d6 |
- rootNode = createDependencyGraphBuilder().buildDependencyGraph( project, null );
|
|
|
69848d6 |
+ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) );
|
|
|
69848d6 |
+ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) );
|
|
|
69848d6 |
+ rootNode = createDependencyGraphBuilder().buildDependencyGraph( projectBuildingRequest, null );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( Exception e )
|
|
|
69848d6 |
{
|
|
|
0eb432b |
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java
|
|
|
69848d6 |
index 03201fd..35bcd57 100644
|
|
|
0eb432b |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java
|
|
|
0eb432b |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java
|
|
|
0eb432b |
@@ -23,6 +23,7 @@ import java.util.Set;
|
|
|
69848d6 |
|
|
|
69848d6 |
import org.apache.maven.artifact.Artifact;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
|
|
|
69848d6 |
/**
|
|
|
69848d6 |
* This rule checks that lists of plugins are not included.
|
|
|
69848d6 |
@@ -33,9 +34,9 @@ public class BannedPlugins
|
|
|
69848d6 |
extends BannedDependencies
|
|
|
69848d6 |
{
|
|
|
69848d6 |
@Override
|
|
|
69848d6 |
- protected Set<Artifact> getDependenciesToCheck( MavenProject project )
|
|
|
69848d6 |
+ protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest projectBuildingRequest )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- return project.getPluginArtifacts();
|
|
|
69848d6 |
+ return projectBuildingRequest.getProject().getPluginArtifacts();
|
|
|
69848d6 |
}
|
|
|
69848d6 |
|
|
|
69848d6 |
@Override
|
|
|
820761f |
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
|
|
|
69848d6 |
index 684f984..4795634 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
|
|
|
e2b0033 |
@@ -24,20 +24,19 @@ import java.util.Collections;
|
|
|
69848d6 |
import java.util.List;
|
|
|
69848d6 |
|
|
|
69848d6 |
import org.apache.maven.artifact.Artifact;
|
|
|
69848d6 |
-import org.apache.maven.artifact.factory.ArtifactFactory;
|
|
|
69848d6 |
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
|
|
69848d6 |
import org.apache.maven.artifact.repository.ArtifactRepository;
|
|
|
69848d6 |
-import org.apache.maven.artifact.resolver.ArtifactCollector;
|
|
|
69848d6 |
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRule;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
|
|
|
69848d6 |
import org.apache.maven.plugin.logging.Log;
|
|
|
69848d6 |
import org.apache.maven.plugins.enforcer.utils.DependencyVersionMap;
|
|
|
69848d6 |
+import org.apache.maven.project.DefaultProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyNode;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyNode;
|
|
|
69848d6 |
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
|
|
|
69848d6 |
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
|
|
69848d6 |
|
|
|
0eb432b |
@@ -74,17 +73,13 @@ public class DependencyConvergence
|
|
|
69848d6 |
{
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- MavenProject project = (MavenProject) helper.evaluate( "${project}" );
|
|
|
69848d6 |
- DependencyTreeBuilder dependencyTreeBuilder =
|
|
|
69848d6 |
- (DependencyTreeBuilder) helper.getComponent( DependencyTreeBuilder.class );
|
|
|
69848d6 |
+ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) );
|
|
|
69848d6 |
+ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) );
|
|
|
69848d6 |
+ DependencyGraphBuilder dependencyGraphBuilder = (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class );
|
|
|
69848d6 |
ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" );
|
|
|
69848d6 |
- ArtifactFactory factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
|
|
|
69848d6 |
- ArtifactMetadataSource metadataSource =
|
|
|
69848d6 |
- (ArtifactMetadataSource) helper.getComponent( ArtifactMetadataSource.class );
|
|
|
69848d6 |
- ArtifactCollector collector = (ArtifactCollector) helper.getComponent( ArtifactCollector.class );
|
|
|
69848d6 |
ArtifactFilter filter = null; // we need to evaluate all scopes
|
|
|
69848d6 |
- DependencyNode node = dependencyTreeBuilder.buildDependencyTree( project, repository, factory,
|
|
|
69848d6 |
- metadataSource, filter, collector );
|
|
|
69848d6 |
+ projectBuildingRequest.setLocalRepository( repository );
|
|
|
69848d6 |
+ DependencyNode node = dependencyGraphBuilder.buildDependencyGraph( projectBuildingRequest, filter );
|
|
|
69848d6 |
return node;
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( ExpressionEvaluationException e )
|
|
|
0eb432b |
@@ -95,9 +90,9 @@ public class DependencyConvergence
|
|
|
69848d6 |
{
|
|
|
69848d6 |
throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
- catch ( DependencyTreeBuilderException e )
|
|
|
69848d6 |
+ catch ( DependencyGraphBuilderException e )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e );
|
|
|
69848d6 |
+ throw new EnforcerRuleException( "Could not build dependency graph " + e.getLocalizedMessage(), e );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
}
|
|
|
69848d6 |
|
|
|
820761f |
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
|
|
|
69848d6 |
index 34f0f20..1323b11 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
|
|
|
69848d6 |
@@ -36,7 +36,6 @@ import org.apache.maven.artifact.factory.ArtifactFactory;
|
|
|
69848d6 |
import org.apache.maven.artifact.repository.ArtifactRepository;
|
|
|
69848d6 |
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
|
|
|
69848d6 |
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
|
|
69848d6 |
-import org.apache.maven.artifact.resolver.ArtifactResolver;
|
|
|
69848d6 |
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
|
|
69848d6 |
import org.apache.maven.artifact.versioning.VersionRange;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
|
|
|
69848d6 |
@@ -62,8 +61,12 @@ import org.apache.maven.plugin.version.PluginVersionNotFoundException;
|
|
|
69848d6 |
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
|
|
69848d6 |
import org.apache.maven.plugins.enforcer.utils.EnforcerRuleUtils;
|
|
|
69848d6 |
import org.apache.maven.plugins.enforcer.utils.PluginWrapper;
|
|
|
69848d6 |
+import org.apache.maven.project.DefaultProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.settings.Settings;
|
|
|
69848d6 |
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
|
|
|
69848d6 |
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
|
|
|
69848d6 |
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
|
|
|
69848d6 |
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
|
|
69848d6 |
import org.codehaus.plexus.util.ReflectionUtils;
|
|
|
69848d6 |
@@ -166,12 +169,6 @@ public class RequirePluginVersions
|
|
|
69848d6 |
/** The resolver. */
|
|
|
69848d6 |
private ArtifactResolver resolver;
|
|
|
69848d6 |
|
|
|
69848d6 |
- /** The local. */
|
|
|
69848d6 |
- private ArtifactRepository local;
|
|
|
69848d6 |
-
|
|
|
69848d6 |
- /** The remote repositories. */
|
|
|
69848d6 |
- private List<ArtifactRepository> remoteRepositories;
|
|
|
69848d6 |
-
|
|
|
69848d6 |
/** The log. */
|
|
|
69848d6 |
private Log log;
|
|
|
69848d6 |
|
|
|
69848d6 |
@@ -205,8 +202,8 @@ public class RequirePluginVersions
|
|
|
69848d6 |
pluginManager = (PluginManager) helper.getComponent( PluginManager.class );
|
|
|
69848d6 |
factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
|
|
|
69848d6 |
resolver = (ArtifactResolver) helper.getComponent( ArtifactResolver.class );
|
|
|
69848d6 |
- local = (ArtifactRepository) helper.evaluate( "${localRepository}" );
|
|
|
69848d6 |
- remoteRepositories = project.getRemoteArtifactRepositories();
|
|
|
69848d6 |
+ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) );
|
|
|
69848d6 |
+ projectBuildingRequest.setProject( project );
|
|
|
69848d6 |
|
|
|
69848d6 |
utils = new EnforcerRuleUtils( helper );
|
|
|
69848d6 |
|
|
|
69848d6 |
@@ -254,7 +251,7 @@ public class RequirePluginVersions
|
|
|
69848d6 |
// if anything was found, log it then append the optional message.
|
|
|
69848d6 |
if ( !failures.isEmpty() )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- handleMessagesToTheUser( project, failures );
|
|
|
69848d6 |
+ handleMessagesToTheUser( projectBuildingRequest, failures );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( ExpressionEvaluationException e )
|
|
|
69848d6 |
@@ -277,13 +274,9 @@ public class RequirePluginVersions
|
|
|
69848d6 |
{
|
|
|
69848d6 |
throw new EnforcerRuleException( e.getLocalizedMessage() );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
- catch ( ArtifactResolutionException e )
|
|
|
69848d6 |
- {
|
|
|
69848d6 |
- throw new EnforcerRuleException( e.getLocalizedMessage() );
|
|
|
69848d6 |
- }
|
|
|
69848d6 |
- catch ( ArtifactNotFoundException e )
|
|
|
69848d6 |
+ catch ( ArtifactResolverException e )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- throw new EnforcerRuleException( e.getLocalizedMessage() );
|
|
|
69848d6 |
+ // What does this mean?
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( IOException e )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
@@ -299,7 +292,7 @@ public class RequirePluginVersions
|
|
|
69848d6 |
}
|
|
|
69848d6 |
}
|
|
|
69848d6 |
|
|
|
69848d6 |
- private void handleMessagesToTheUser( MavenProject project, List<Plugin> failures )
|
|
|
69848d6 |
+ private void handleMessagesToTheUser( ProjectBuildingRequest projectBuildingRequest, List<Plugin> failures )
|
|
|
69848d6 |
throws EnforcerRuleException
|
|
|
69848d6 |
{
|
|
|
69848d6 |
StringBuilder newMsg = new StringBuilder();
|
|
|
69848d6 |
@@ -316,7 +309,7 @@ public class RequirePluginVersions
|
|
|
69848d6 |
{
|
|
|
69848d6 |
newMsg.append( ". \tThe version currently in use is " );
|
|
|
69848d6 |
|
|
|
69848d6 |
- Plugin currentPlugin = findCurrentPlugin( plugin, project );
|
|
|
69848d6 |
+ Plugin currentPlugin = findCurrentPlugin( plugin, projectBuildingRequest );
|
|
|
69848d6 |
|
|
|
69848d6 |
if ( currentPlugin != null )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
@@ -518,12 +511,12 @@ public class RequirePluginVersions
|
|
|
69848d6 |
* @param project project to search
|
|
|
69848d6 |
* @return matching plugin, null if not found.
|
|
|
69848d6 |
*/
|
|
|
69848d6 |
- protected Plugin findCurrentPlugin( Plugin plugin, MavenProject project )
|
|
|
69848d6 |
+ protected Plugin findCurrentPlugin( Plugin plugin, ProjectBuildingRequest projectBuildingRequest )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
Plugin found = null;
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- Model model = project.getModel();
|
|
|
69848d6 |
+ Model model = projectBuildingRequest.getProject().getModel();
|
|
|
69848d6 |
Map<String, Plugin> plugins = model.getBuild().getPluginsAsMap();
|
|
|
69848d6 |
found = plugins.get( plugin.getKey() );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
@@ -534,7 +527,7 @@ public class RequirePluginVersions
|
|
|
69848d6 |
|
|
|
69848d6 |
if ( found == null )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- found = resolvePlugin( plugin, project );
|
|
|
69848d6 |
+ found = resolvePlugin( plugin, projectBuildingRequest );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
|
|
|
69848d6 |
return found;
|
|
|
69848d6 |
@@ -547,23 +540,18 @@ public class RequirePluginVersions
|
|
|
69848d6 |
* @param project the project
|
|
|
69848d6 |
* @return the plugin
|
|
|
69848d6 |
*/
|
|
|
69848d6 |
- protected Plugin resolvePlugin( Plugin plugin, MavenProject project )
|
|
|
69848d6 |
+ protected Plugin resolvePlugin( Plugin plugin, ProjectBuildingRequest projectBuildingRequest )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
|
|
|
69848d6 |
- List<ArtifactRepository> pluginRepositories = project.getPluginArtifactRepositories();
|
|
|
69848d6 |
Artifact artifact = factory.createPluginArtifact( plugin.getGroupId(), plugin.getArtifactId(),
|
|
|
69848d6 |
VersionRange.createFromVersion( "LATEST" ) );
|
|
|
69848d6 |
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- this.resolver.resolve( artifact, pluginRepositories, this.local );
|
|
|
69848d6 |
+ this.resolver.resolveArtifact( projectBuildingRequest, artifact );
|
|
|
69848d6 |
plugin.setVersion( artifact.getVersion() );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
- catch ( ArtifactResolutionException e )
|
|
|
69848d6 |
- {
|
|
|
69848d6 |
- // What does this mean?
|
|
|
69848d6 |
- }
|
|
|
69848d6 |
- catch ( ArtifactNotFoundException e )
|
|
|
69848d6 |
+ catch ( ArtifactResolverException e )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
// What does this mean?
|
|
|
69848d6 |
}
|
|
|
69848d6 |
@@ -1046,13 +1034,12 @@ public class RequirePluginVersions
|
|
|
69848d6 |
*
|
|
|
69848d6 |
* @param project the project
|
|
|
69848d6 |
* @return the all plugin entries wrapped in a PluginWrapper Object
|
|
|
69848d6 |
- * @throws ArtifactResolutionException the artifact resolution exception
|
|
|
69848d6 |
- * @throws ArtifactNotFoundException the artifact not found exception
|
|
|
69848d6 |
+ * @throws ArtifactResolverException the artifact resolution exception
|
|
|
69848d6 |
* @throws IOException Signals that an I/O exception has occurred.
|
|
|
69848d6 |
* @throws XmlPullParserException the xml pull parser exception
|
|
|
69848d6 |
*/
|
|
|
69848d6 |
protected List<PluginWrapper> getAllPluginEntries( MavenProject project )
|
|
|
69848d6 |
- throws ArtifactResolutionException, ArtifactNotFoundException, IOException, XmlPullParserException
|
|
|
69848d6 |
+ throws ArtifactResolverException, IOException, XmlPullParserException
|
|
|
69848d6 |
{
|
|
|
69848d6 |
List<Model> models = new ArrayList<Model>();
|
|
|
69848d6 |
|
|
|
820761f |
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
|
|
|
69848d6 |
index 458554a..c48205f 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireUpperBoundDeps.java
|
|
|
820761f |
@@ -26,10 +26,7 @@ import java.util.List;
|
|
|
69848d6 |
import java.util.Map;
|
|
|
69848d6 |
|
|
|
69848d6 |
import org.apache.maven.artifact.Artifact;
|
|
|
69848d6 |
-import org.apache.maven.artifact.factory.ArtifactFactory;
|
|
|
69848d6 |
-import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
|
|
69848d6 |
import org.apache.maven.artifact.repository.ArtifactRepository;
|
|
|
69848d6 |
-import org.apache.maven.artifact.resolver.ArtifactCollector;
|
|
|
69848d6 |
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
|
|
69848d6 |
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
|
|
69848d6 |
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
|
|
e2b0033 |
@@ -37,11 +34,13 @@ import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
|
|
|
69848d6 |
import org.apache.maven.plugin.logging.Log;
|
|
|
69848d6 |
+import org.apache.maven.project.DefaultProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyNode;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyNode;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
|
|
|
69848d6 |
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
|
|
|
69848d6 |
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
|
|
69848d6 |
|
|
|
0eb432b |
@@ -105,18 +104,10 @@ public class RequireUpperBoundDeps
|
|
|
69848d6 |
{
|
|
|
69848d6 |
try
|
|
|
69848d6 |
{
|
|
|
69848d6 |
- MavenProject project = (MavenProject) helper.evaluate( "${project}" );
|
|
|
69848d6 |
- DependencyTreeBuilder dependencyTreeBuilder =
|
|
|
69848d6 |
- (DependencyTreeBuilder) helper.getComponent( DependencyTreeBuilder.class );
|
|
|
69848d6 |
- ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" );
|
|
|
69848d6 |
- ArtifactFactory factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
|
|
|
69848d6 |
- ArtifactMetadataSource metadataSource =
|
|
|
69848d6 |
- (ArtifactMetadataSource) helper.getComponent( ArtifactMetadataSource.class );
|
|
|
69848d6 |
- ArtifactCollector collector = (ArtifactCollector) helper.getComponent( ArtifactCollector.class );
|
|
|
69848d6 |
- ArtifactFilter filter = null; // we need to evaluate all scopes
|
|
|
69848d6 |
- DependencyNode node =
|
|
|
69848d6 |
- dependencyTreeBuilder.buildDependencyTree( project, repository, factory, metadataSource, filter,
|
|
|
69848d6 |
- collector );
|
|
|
69848d6 |
+ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) );
|
|
|
69848d6 |
+ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) );
|
|
|
69848d6 |
+ DependencyGraphBuilder dependencyGraphBuilder = (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class );
|
|
|
69848d6 |
+ DependencyNode node = dependencyGraphBuilder.buildDependencyGraph( projectBuildingRequest, null );
|
|
|
69848d6 |
return node;
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( ExpressionEvaluationException e )
|
|
|
0eb432b |
@@ -127,7 +118,7 @@ public class RequireUpperBoundDeps
|
|
|
69848d6 |
{
|
|
|
69848d6 |
throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
- catch ( DependencyTreeBuilderException e )
|
|
|
69848d6 |
+ catch ( DependencyGraphBuilderException e )
|
|
|
69848d6 |
{
|
|
|
69848d6 |
throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e );
|
|
|
69848d6 |
}
|
|
|
820761f |
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
|
|
|
69848d6 |
index b6213fa..2c2a645 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
|
|
|
820761f |
@@ -26,8 +26,8 @@ import java.util.Map;
|
|
|
69848d6 |
|
|
|
69848d6 |
import org.apache.maven.artifact.Artifact;
|
|
|
69848d6 |
import org.apache.maven.plugin.logging.Log;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.DependencyNode;
|
|
|
69848d6 |
-import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.DependencyNode;
|
|
|
69848d6 |
+import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
|
|
|
69848d6 |
|
|
|
69848d6 |
/**
|
|
|
69848d6 |
* @author Brian Fox
|
|
|
0eb432b |
@@ -132,4 +132,4 @@ public class DependencyVersionMap
|
|
|
69848d6 |
}
|
|
|
69848d6 |
return output;
|
|
|
69848d6 |
}
|
|
|
0eb432b |
-}
|
|
|
0eb432b |
\ No newline at end of file
|
|
|
69848d6 |
+}
|
|
|
820761f |
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
|
|
|
69848d6 |
index c122e10..a9208f7 100644
|
|
|
820761f |
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
|
|
|
820761f |
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/EnforcerRuleUtils.java
|
|
|
0eb432b |
@@ -23,12 +23,15 @@ import java.util.List;
|
|
|
69848d6 |
|
|
|
69848d6 |
import org.apache.maven.artifact.factory.ArtifactFactory;
|
|
|
69848d6 |
import org.apache.maven.artifact.repository.ArtifactRepository;
|
|
|
69848d6 |
-import org.apache.maven.artifact.resolver.ArtifactResolver;
|
|
|
69848d6 |
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
|
|
|
69848d6 |
import org.apache.maven.model.Plugin;
|
|
|
69848d6 |
import org.apache.maven.model.ReportPlugin;
|
|
|
69848d6 |
import org.apache.maven.plugin.logging.Log;
|
|
|
69848d6 |
+import org.apache.maven.project.DefaultProjectBuildingRequest;
|
|
|
69848d6 |
import org.apache.maven.project.MavenProject;
|
|
|
69848d6 |
+import org.apache.maven.project.ProjectBuildingRequest;
|
|
|
69848d6 |
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
|
|
|
69848d6 |
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
|
|
|
69848d6 |
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
|
|
|
69848d6 |
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
|
|
69848d6 |
|
|
|
0eb432b |
@@ -46,42 +49,14 @@ public class EnforcerRuleUtils
|
|
|
69848d6 |
/** The resolver. */
|
|
|
69848d6 |
ArtifactResolver resolver;
|
|
|
69848d6 |
|
|
|
69848d6 |
- /** The local. */
|
|
|
69848d6 |
- ArtifactRepository local;
|
|
|
69848d6 |
-
|
|
|
69848d6 |
- /** The remote repositories. */
|
|
|
69848d6 |
- List<ArtifactRepository> remoteRepositories;
|
|
|
69848d6 |
-
|
|
|
69848d6 |
/** The log. */
|
|
|
69848d6 |
Log log;
|
|
|
69848d6 |
|
|
|
69848d6 |
/** The project. */
|
|
|
69848d6 |
- MavenProject project;
|
|
|
69848d6 |
+ ProjectBuildingRequest projectBuildingRequest;
|
|
|
69848d6 |
|
|
|
69848d6 |
private EnforcerRuleHelper helper;
|
|
|
69848d6 |
|
|
|
69848d6 |
- /**
|
|
|
69848d6 |
- * Instantiates a new enforcer rule utils.
|
|
|
69848d6 |
- *
|
|
|
69848d6 |
- * @param theFactory the the factory
|
|
|
69848d6 |
- * @param theResolver the the resolver
|
|
|
69848d6 |
- * @param theLocal the the local
|
|
|
69848d6 |
- * @param theRemoteRepositories the the remote repositories
|
|
|
69848d6 |
- * @param project the project
|
|
|
69848d6 |
- * @param theLog the the log
|
|
|
69848d6 |
- */
|
|
|
69848d6 |
- public EnforcerRuleUtils( ArtifactFactory theFactory, ArtifactResolver theResolver, ArtifactRepository theLocal,
|
|
|
69848d6 |
- List<ArtifactRepository> theRemoteRepositories, MavenProject project, Log theLog )
|
|
|
69848d6 |
- {
|
|
|
69848d6 |
- super();
|
|
|
69848d6 |
- this.factory = theFactory;
|
|
|
69848d6 |
- this.resolver = theResolver;
|
|
|
69848d6 |
- this.local = theLocal;
|
|
|
69848d6 |
- this.remoteRepositories = theRemoteRepositories;
|
|
|
69848d6 |
- this.log = theLog;
|
|
|
69848d6 |
- this.project = project;
|
|
|
69848d6 |
- }
|
|
|
69848d6 |
-
|
|
|
69848d6 |
/**
|
|
|
69848d6 |
* Instantiates a new enforcer rule utils.
|
|
|
69848d6 |
*
|
|
|
0eb432b |
@@ -97,9 +72,8 @@ public class EnforcerRuleUtils
|
|
|
69848d6 |
{
|
|
|
69848d6 |
factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class );
|
|
|
69848d6 |
resolver = (ArtifactResolver) helper.getComponent( ArtifactResolver.class );
|
|
|
69848d6 |
- local = (ArtifactRepository) helper.evaluate( "${localRepository}" );
|
|
|
69848d6 |
- project = (MavenProject) helper.evaluate( "${project}" );
|
|
|
69848d6 |
- remoteRepositories = project.getRemoteArtifactRepositories();
|
|
|
69848d6 |
+ projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) );
|
|
|
69848d6 |
+ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) );
|
|
|
69848d6 |
}
|
|
|
69848d6 |
catch ( ComponentLookupException e )
|
|
|
69848d6 |
{
|
|
|
820761f |
diff --git a/pom.xml b/pom.xml
|
|
|
69848d6 |
index 83306f1..79dd17f 100644
|
|
|
820761f |
--- a/pom.xml
|
|
|
820761f |
+++ b/pom.xml
|
|
|
0eb432b |
@@ -63,7 +63,7 @@
|
|
|
69848d6 |
</site>
|
|
|
69848d6 |
</distributionManagement>
|
|
|
69848d6 |
<properties>
|
|
|
69848d6 |
- <maven.version>3.0</maven.version>
|
|
|
69848d6 |
+ <maven.version>3.3.1</maven.version>
|
|
|
69848d6 |
<maven.site.path>enforcer-archives/enforcer-LATEST</maven.site.path>
|
|
|
69848d6 |
<javaVersion>7</javaVersion>
|
|
|
69848d6 |
</properties>
|
|
|
0eb432b |
@@ -139,16 +139,21 @@
|
|
|
69848d6 |
<artifactId>commons-codec</artifactId>
|
|
|
69848d6 |
<version>1.12</version>
|
|
|
69848d6 |
</dependency>
|
|
|
69848d6 |
+ <dependency>
|
|
|
69848d6 |
+ <groupId>org.apache.maven.shared</groupId>
|
|
|
69848d6 |
+ <artifactId>maven-artifact-transfer</artifactId>
|
|
|
69848d6 |
+ <version>3.0-SNAPSHOT</version>
|
|
|
69848d6 |
+ </dependency>
|
|
|
69848d6 |
<dependency>
|
|
|
69848d6 |
<groupId>org.apache.maven.plugin-testing</groupId>
|
|
|
69848d6 |
<artifactId>maven-plugin-testing-harness</artifactId>
|
|
|
69848d6 |
- <version>2.1</version>
|
|
|
69848d6 |
+ <version>3.3.0</version>
|
|
|
69848d6 |
<scope>test</scope>
|
|
|
69848d6 |
</dependency>
|
|
|
69848d6 |
<dependency>
|
|
|
69848d6 |
<groupId>org.apache.maven.shared</groupId>
|
|
|
69848d6 |
<artifactId>maven-dependency-tree</artifactId>
|
|
|
69848d6 |
- <version>2.2</version>
|
|
|
69848d6 |
+ <version>3.0</version>
|
|
|
69848d6 |
</dependency>
|
|
|
69848d6 |
<dependency>
|
|
|
69848d6 |
<groupId>org.apache.maven.resolver</groupId>
|