diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3ab22de --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/enforcer-1.4.1-source-release.zip diff --git a/.rh-maven35-maven-enforcer.metadata b/.rh-maven35-maven-enforcer.metadata new file mode 100644 index 0000000..84d9e01 --- /dev/null +++ b/.rh-maven35-maven-enforcer.metadata @@ -0,0 +1 @@ +697528ff80b8f4d84c4349c1e906dc8816c202cd SOURCES/enforcer-1.4.1-source-release.zip diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/0001-Port-to-Maven-3-API.patch b/SOURCES/0001-Port-to-Maven-3-API.patch new file mode 100644 index 0000000..5c04188 --- /dev/null +++ b/SOURCES/0001-Port-to-Maven-3-API.patch @@ -0,0 +1,716 @@ +From 6a4c8a3177ad95989baa4df28d8a3479faf8be8c Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 12 Oct 2015 15:48:16 +0200 +Subject: [PATCH] Port to Maven 3 API + +--- + enforcer-rules/pom.xml | 8 +++- + .../plugins/enforcer/AbstractBanDependencies.java | 14 ++++-- + .../enforcer/BanTransitiveDependencies.java | 7 ++- + .../plugins/enforcer/DependencyConvergence.java | 31 +++++------- + .../plugins/enforcer/RequireMavenVersion.java | 5 +- + .../plugins/enforcer/RequireNoRepositories.java | 9 +--- + .../plugins/enforcer/RequirePluginVersions.java | 45 +++++++----------- + .../plugins/enforcer/RequireUpperBoundDeps.java | 32 +++++-------- + .../enforcer/utils/DependencyVersionMap.java | 4 +- + .../plugins/enforcer/utils/EnforcerRuleUtils.java | 55 +++++----------------- + maven-enforcer-plugin/pom.xml | 4 -- + .../maven/plugins/enforcer/DisplayInfoMojo.java | 4 +- + pom.xml | 19 +++++--- + 13 files changed, 94 insertions(+), 143 deletions(-) + +diff --git a/enforcer-rules/pom.xml b/enforcer-rules/pom.xml +index 5ecd495..379bef0 100644 +--- a/enforcer-rules/pom.xml ++++ b/enforcer-rules/pom.xml +@@ -43,17 +43,21 @@ + + + org.apache.maven +- maven-project ++ maven-core + + + org.apache.maven +- maven-core ++ maven-compat + + + org.apache.maven.shared + maven-common-artifact-filters + + ++ org.apache.maven.shared ++ maven-artifact-transfer ++ ++ + org.codehaus.plexus + plexus-utils + +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 960ef40..954ea2b 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 +@@ -23,12 +23,15 @@ import org.apache.maven.artifact.Artifact; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + 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; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; ++ + import java.util.HashSet; + import java.util.Set; + +@@ -58,10 +61,11 @@ public abstract class AbstractBanDependencies + { + + // get the project +- MavenProject project = null; ++ ProjectBuildingRequest projectBuildingRequest = null; + try + { +- project = (MavenProject) helper.evaluate( "${project}" ); ++ projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) ); ++ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) ); + } + catch ( ExpressionEvaluationException eee ) + { +@@ -88,7 +92,7 @@ public abstract class AbstractBanDependencies + } + + // get the correct list of dependencies +- Set dependencies = getDependenciesToCheck( project ); ++ Set dependencies = getDependenciesToCheck( projectBuildingRequest ); + + // look for banned dependencies + Set foundExcludes = checkDependencies( dependencies, helper.getLog() ); +@@ -119,12 +123,12 @@ public abstract class AbstractBanDependencies + return "Found Banned Dependency: " + artifact.getId() + "\n"; + } + +- protected Set getDependenciesToCheck( MavenProject project ) ++ protected Set getDependenciesToCheck( ProjectBuildingRequest projectBuildingRequest ) + { + Set dependencies = null; + try + { +- DependencyNode node = graphBuilder.buildDependencyGraph( project, null ); ++ DependencyNode node = graphBuilder.buildDependencyGraph( projectBuildingRequest, 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 c40e057..deb149c 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 +@@ -27,7 +27,9 @@ import org.apache.maven.enforcer.rule.api.EnforcerRule; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher; ++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.DependencyNode; + import org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder; +@@ -156,8 +158,9 @@ public class BanTransitiveDependencies + + try + { +- MavenProject project = (MavenProject) helper.evaluate( "${project}" ); +- rootNode = createDependencyGraphBuilder().buildDependencyGraph( project, null ); ++ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) ); ++ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) ); ++ rootNode = createDependencyGraphBuilder().buildDependencyGraph( projectBuildingRequest, 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 6d42810..46ed075 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,20 +24,19 @@ import java.util.Collections; + import java.util.List; + + import org.apache.maven.artifact.Artifact; +-import org.apache.maven.artifact.factory.ArtifactFactory; +-import org.apache.maven.artifact.metadata.ArtifactMetadataSource; + import org.apache.maven.artifact.repository.ArtifactRepository; +-import org.apache.maven.artifact.resolver.ArtifactCollector; + import org.apache.maven.artifact.resolver.filter.ArtifactFilter; + import org.apache.maven.enforcer.rule.api.EnforcerRule; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + 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.shared.dependency.tree.DependencyNode; +-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; +-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException; ++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; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + import org.codehaus.plexus.i18n.I18N; +@@ -77,18 +76,14 @@ public class DependencyConvergence + { + try + { +- MavenProject project = (MavenProject) helper.evaluate( "${project}" ); +- DependencyTreeBuilder dependencyTreeBuilder = +- (DependencyTreeBuilder) helper.getComponent( DependencyTreeBuilder.class ); ++ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) ); ++ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) ); ++ DependencyGraphBuilder dependencyGraphBuilder = ++ (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class ); + ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" ); +- ArtifactFactory factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class ); +- ArtifactMetadataSource metadataSource = +- (ArtifactMetadataSource) helper.getComponent( ArtifactMetadataSource.class ); +- ArtifactCollector collector = (ArtifactCollector) helper.getComponent( ArtifactCollector.class ); + ArtifactFilter filter = null; // we need to evaluate all scopes +- DependencyNode node = +- dependencyTreeBuilder.buildDependencyTree( project, repository, factory, metadataSource, filter, +- collector ); ++ projectBuildingRequest.setLocalRepository( repository ); ++ DependencyNode node = dependencyGraphBuilder.buildDependencyGraph( projectBuildingRequest, filter ); + return node; + } + catch ( ExpressionEvaluationException e ) +@@ -99,9 +94,9 @@ public class DependencyConvergence + { + throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e ); + } +- catch ( DependencyTreeBuilderException e ) ++ catch ( DependencyGraphBuilderException e ) + { +- throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e ); ++ throw new EnforcerRuleException( "Could not build dependency graph " + e.getLocalizedMessage(), e ); + } + } + +diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireMavenVersion.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireMavenVersion.java +index 46f83fd..5fab507 100644 +--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireMavenVersion.java ++++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireMavenVersion.java +@@ -20,9 +20,10 @@ package org.apache.maven.plugins.enforcer; + */ + + import org.apache.maven.artifact.versioning.ArtifactVersion; ++import org.apache.maven.artifact.versioning.DefaultArtifactVersion; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; +-import org.apache.maven.execution.RuntimeInformation; ++import org.apache.maven.rtinfo.RuntimeInformation; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + + /** +@@ -46,7 +47,7 @@ public class RequireMavenVersion + try + { + RuntimeInformation rti = (RuntimeInformation) helper.getComponent( RuntimeInformation.class ); +- ArtifactVersion detectedMavenVersion = rti.getApplicationVersion(); ++ ArtifactVersion detectedMavenVersion = new DefaultArtifactVersion( rti.getMavenVersion() ); + helper.getLog().debug( "Detected Maven Version: " + detectedMavenVersion ); + enforceVersion( helper.getLog(), "Maven", getVersion(), detectedMavenVersion ); + } +diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireNoRepositories.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireNoRepositories.java +index bc225b7..9bc9762 100644 +--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireNoRepositories.java ++++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireNoRepositories.java +@@ -25,14 +25,13 @@ import java.util.ArrayList; + import java.util.Collections; + import java.util.List; + +-import org.apache.maven.artifact.resolver.ArtifactNotFoundException; +-import org.apache.maven.artifact.resolver.ArtifactResolutionException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + import org.apache.maven.model.Model; + import org.apache.maven.model.Repository; + import org.apache.maven.plugins.enforcer.utils.EnforcerRuleUtils; + import org.apache.maven.project.MavenProject; ++import org.apache.maven.shared.artifact.resolve.ArtifactResolverException; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.util.StringUtils; + import org.codehaus.plexus.util.xml.pull.XmlPullParserException; +@@ -192,11 +191,7 @@ public class RequireNoRepositories + { + throw new EnforcerRuleException( e.getLocalizedMessage() ); + } +- catch ( ArtifactResolutionException e ) +- { +- throw new EnforcerRuleException( e.getLocalizedMessage() ); +- } +- catch ( ArtifactNotFoundException e ) ++ catch ( ArtifactResolverException e ) + { + throw new EnforcerRuleException( e.getLocalizedMessage() ); + } +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 4b1a8b4..f6754b9 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 +@@ -40,7 +40,6 @@ import org.apache.maven.artifact.factory.ArtifactFactory; + import org.apache.maven.artifact.repository.ArtifactRepository; + import org.apache.maven.artifact.resolver.ArtifactNotFoundException; + import org.apache.maven.artifact.resolver.ArtifactResolutionException; +-import org.apache.maven.artifact.resolver.ArtifactResolver; + import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; + import org.apache.maven.artifact.versioning.VersionRange; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; +@@ -66,8 +65,12 @@ import org.apache.maven.plugin.version.PluginVersionNotFoundException; + import org.apache.maven.plugin.version.PluginVersionResolutionException; + import org.apache.maven.plugins.enforcer.utils.EnforcerRuleUtils; + import org.apache.maven.plugins.enforcer.utils.PluginWrapper; ++import org.apache.maven.project.DefaultProjectBuildingRequest; + import org.apache.maven.project.MavenProject; ++import org.apache.maven.project.ProjectBuildingRequest; + import org.apache.maven.settings.Settings; ++import org.apache.maven.shared.artifact.resolve.ArtifactResolver; ++import org.apache.maven.shared.artifact.resolve.ArtifactResolverException; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + import org.codehaus.plexus.util.ReflectionUtils; +@@ -169,12 +172,6 @@ public class RequirePluginVersions + /** The resolver. */ + ArtifactResolver resolver; + +- /** The local. */ +- ArtifactRepository local; +- +- /** The remote repositories. */ +- List remoteRepositories; +- + /** The log. */ + Log log; + +@@ -223,8 +220,8 @@ public class RequirePluginVersions + 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(); ++ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) ); ++ projectBuildingRequest.setProject( project ); + + utils = new EnforcerRuleUtils( helper ); + +@@ -296,7 +293,7 @@ public class RequirePluginVersions + { + newMsg.append( ". \tThe version currently in use is " ); + +- Plugin currentPlugin = findCurrentPlugin( plugin, project ); ++ Plugin currentPlugin = findCurrentPlugin( plugin, projectBuildingRequest ); + + if ( currentPlugin != null ) + { +@@ -345,11 +342,7 @@ public class RequirePluginVersions + { + throw new EnforcerRuleException( e.getLocalizedMessage() ); + } +- catch ( ArtifactResolutionException e ) +- { +- throw new EnforcerRuleException( e.getLocalizedMessage() ); +- } +- catch ( ArtifactNotFoundException e ) ++ catch ( ArtifactResolverException e ) + { + throw new EnforcerRuleException( e.getLocalizedMessage() ); + } +@@ -519,12 +512,12 @@ public class RequirePluginVersions + * @param project project to search + * @return matching plugin, null if not found. + */ +- protected Plugin findCurrentPlugin( Plugin plugin, MavenProject project ) ++ protected Plugin findCurrentPlugin( Plugin plugin, ProjectBuildingRequest projectBuildingRequest ) + { + Plugin found = null; + try + { +- Model model = project.getModel(); ++ Model model = projectBuildingRequest.getProject().getModel(); + @SuppressWarnings( "unchecked" ) + Map plugins = model.getBuild().getPluginsAsMap(); + found = plugins.get( plugin.getKey() ); +@@ -536,7 +529,7 @@ public class RequirePluginVersions + + if ( found == null ) + { +- found = resolvePlugin( plugin, project ); ++ found = resolvePlugin( plugin, projectBuildingRequest ); + } + + return found; +@@ -549,25 +542,20 @@ public class RequirePluginVersions + * @param project the project + * @return the plugin + */ +- protected Plugin resolvePlugin( Plugin plugin, MavenProject project ) ++ protected Plugin resolvePlugin( Plugin plugin, ProjectBuildingRequest projectBuildingRequest ) + { + + @SuppressWarnings( "unchecked" ) +- List pluginRepositories = project.getPluginArtifactRepositories(); + Artifact artifact = + factory.createPluginArtifact( plugin.getGroupId(), plugin.getArtifactId(), + VersionRange.createFromVersion( "LATEST" ) ); + + try + { +- this.resolver.resolve( artifact, pluginRepositories, this.local ); ++ this.resolver.resolveArtifact( projectBuildingRequest, artifact ); + plugin.setVersion( artifact.getVersion() ); + } +- catch ( ArtifactResolutionException e ) +- { +- //What does this mean? +- } +- catch ( ArtifactNotFoundException e ) ++ catch ( ArtifactResolverException e ) + { + //What does this mean? + } +@@ -1048,13 +1036,12 @@ public class RequirePluginVersions + * + * @param project the project + * @return the all plugin entries wrapped in a PluginWrapper Object +- * @throws ArtifactResolutionException the artifact resolution exception +- * @throws ArtifactNotFoundException the artifact not found exception ++ * @throws ArtifactResolverException the artifact resolution exception + * @throws IOException Signals that an I/O exception has occurred. + * @throws XmlPullParserException the xml pull parser exception + */ + protected List getAllPluginEntries( MavenProject project ) +- throws ArtifactResolutionException, ArtifactNotFoundException, IOException, XmlPullParserException ++ throws ArtifactResolverException, IOException, XmlPullParserException + { + List plugins = new ArrayList(); + // get all the pom models +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 71210e2..5642746 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 +@@ -26,10 +26,7 @@ import java.util.List; + import java.util.Map; + + import org.apache.maven.artifact.Artifact; +-import org.apache.maven.artifact.factory.ArtifactFactory; +-import org.apache.maven.artifact.metadata.ArtifactMetadataSource; + import org.apache.maven.artifact.repository.ArtifactRepository; +-import org.apache.maven.artifact.resolver.ArtifactCollector; + import org.apache.maven.artifact.resolver.filter.ArtifactFilter; + import org.apache.maven.artifact.versioning.ArtifactVersion; + import org.apache.maven.artifact.versioning.DefaultArtifactVersion; +@@ -37,11 +34,13 @@ import org.apache.maven.artifact.versioning.OverConstrainedVersionException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleException; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + import org.apache.maven.plugin.logging.Log; ++import org.apache.maven.project.DefaultProjectBuildingRequest; + import org.apache.maven.project.MavenProject; +-import org.apache.maven.shared.dependency.tree.DependencyNode; +-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; +-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException; +-import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor; ++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; ++import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + import org.codehaus.plexus.i18n.I18N; +@@ -92,18 +91,11 @@ public class RequireUpperBoundDeps + { + try + { +- MavenProject project = (MavenProject) helper.evaluate( "${project}" ); +- DependencyTreeBuilder dependencyTreeBuilder = +- (DependencyTreeBuilder) helper.getComponent( DependencyTreeBuilder.class ); +- ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" ); +- ArtifactFactory factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class ); +- ArtifactMetadataSource metadataSource = +- (ArtifactMetadataSource) helper.getComponent( ArtifactMetadataSource.class ); +- ArtifactCollector collector = (ArtifactCollector) helper.getComponent( ArtifactCollector.class ); +- ArtifactFilter filter = null; // we need to evaluate all scopes +- DependencyNode node = +- dependencyTreeBuilder.buildDependencyTree( project, repository, factory, metadataSource, filter, +- collector ); ++ ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) ); ++ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) ); ++ DependencyGraphBuilder dependencyGraphBuilder = ++ (DependencyGraphBuilder) helper.getComponent( DependencyGraphBuilder.class ); ++ DependencyNode node = dependencyGraphBuilder.buildDependencyGraph( projectBuildingRequest, null ); + return node; + } + catch ( ExpressionEvaluationException e ) +@@ -114,7 +106,7 @@ public class RequireUpperBoundDeps + { + throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e ); + } +- catch ( DependencyTreeBuilderException e ) ++ catch ( DependencyGraphBuilderException e ) + { + throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e ); + } +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 +index 2ec4ac2..ece772b 100644 +--- 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 +@@ -26,8 +26,8 @@ import java.util.Map; + + import org.apache.maven.artifact.Artifact; + import org.apache.maven.plugin.logging.Log; +-import org.apache.maven.shared.dependency.tree.DependencyNode; +-import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor; ++import org.apache.maven.shared.dependency.graph.DependencyNode; ++import org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor; + + /** + * @author Brian Fox +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 386b629..cb83e92 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 +@@ -28,9 +28,6 @@ import java.util.List; + import org.apache.maven.artifact.Artifact; + import org.apache.maven.artifact.factory.ArtifactFactory; + import org.apache.maven.artifact.repository.ArtifactRepository; +-import org.apache.maven.artifact.resolver.ArtifactNotFoundException; +-import org.apache.maven.artifact.resolver.ArtifactResolutionException; +-import org.apache.maven.artifact.resolver.ArtifactResolver; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + import org.apache.maven.model.Model; + import org.apache.maven.model.Parent; +@@ -38,7 +35,11 @@ import org.apache.maven.model.Plugin; + import org.apache.maven.model.ReportPlugin; + import org.apache.maven.model.io.xpp3.MavenXpp3Reader; + 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.artifact.resolve.ArtifactResolver; ++import org.apache.maven.shared.artifact.resolve.ArtifactResolverException; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + import org.codehaus.plexus.util.ReaderFactory; +@@ -60,45 +61,16 @@ public class EnforcerRuleUtils + /** The resolver. */ + ArtifactResolver resolver; + +- /** The local. */ +- ArtifactRepository local; +- +- /** The remote repositories. */ +- List remoteRepositories; +- + /** The log. */ + Log log; + +- /** The project. */ +- MavenProject project; ++ ProjectBuildingRequest projectBuildingRequest; + + private EnforcerRuleHelper helper; + + /** + * Instantiates a new enforcer rule utils. + * +- * @param theFactory the the factory +- * @param theResolver the the resolver +- * @param theLocal the the local +- * @param theRemoteRepositories the the remote repositories +- * @param project the project +- * @param theLog the the log +- */ +- public EnforcerRuleUtils( ArtifactFactory theFactory, ArtifactResolver theResolver, ArtifactRepository theLocal, +- List theRemoteRepositories, MavenProject project, Log theLog ) +- { +- super(); +- this.factory = theFactory; +- this.resolver = theResolver; +- this.local = theLocal; +- this.remoteRepositories = theRemoteRepositories; +- this.log = theLog; +- this.project = project; +- } +- +- /** +- * Instantiates a new enforcer rule utils. +- * + * @param helper the helper + */ + @SuppressWarnings( "unchecked" ) +@@ -112,9 +84,8 @@ public class EnforcerRuleUtils + { + factory = (ArtifactFactory) helper.getComponent( ArtifactFactory.class ); + resolver = (ArtifactResolver) helper.getComponent( ArtifactResolver.class ); +- local = (ArtifactRepository) helper.evaluate( "${localRepository}" ); +- project = (MavenProject) helper.evaluate( "${project}" ); +- remoteRepositories = project.getRemoteArtifactRepositories(); ++ projectBuildingRequest = new DefaultProjectBuildingRequest( (ProjectBuildingRequest) helper.evaluate( "${session.projectBuildingRequest}" ) ); ++ projectBuildingRequest.setProject( (MavenProject) helper.evaluate( "${project}" ) ); + } + catch ( ComponentLookupException e ) + { +@@ -163,13 +134,12 @@ public class EnforcerRuleUtils + * @param version the version + * @param pom the pom + * @return the pom model +- * @throws ArtifactResolutionException the artifact resolution exception +- * @throws ArtifactNotFoundException the artifact not found exception ++ * @throws ArtifactResolverException the artifact resolution exception + * @throws XmlPullParserException the xml pull parser exception + * @throws IOException Signals that an I/O exception has occurred. + */ + private Model getPomModel( String groupId, String artifactId, String version, File pom ) +- throws ArtifactResolutionException, ArtifactNotFoundException, IOException, XmlPullParserException ++ throws ArtifactResolverException, IOException, XmlPullParserException + { + Model model = null; + +@@ -206,7 +176,7 @@ public class EnforcerRuleUtils + if ( !found ) + { + Artifact pomArtifact = factory.createArtifact( groupId, artifactId, version, null, "pom" ); +- resolver.resolve( pomArtifact, remoteRepositories, local ); ++ resolver.resolveArtifact( projectBuildingRequest, pomArtifact ); + model = readModel( pomArtifact.getFile() ); + } + +@@ -221,13 +191,12 @@ public class EnforcerRuleUtils + * @param version the version + * @param pom the pom + * @return the models recursively +- * @throws ArtifactResolutionException the artifact resolution exception +- * @throws ArtifactNotFoundException the artifact not found exception ++ * @throws ArtifactResolverException the artifact resolution exception + * @throws IOException Signals that an I/O exception has occurred. + * @throws XmlPullParserException the xml pull parser exception + */ + public List getModelsRecursively( String groupId, String artifactId, String version, File pom ) +- throws ArtifactResolutionException, ArtifactNotFoundException, IOException, XmlPullParserException ++ throws ArtifactResolverException, IOException, XmlPullParserException + { + List models = null; + Model model = getPomModel( groupId, artifactId, version, pom ); +diff --git a/maven-enforcer-plugin/pom.xml b/maven-enforcer-plugin/pom.xml +index 7dbab66..1448df3 100644 +--- a/maven-enforcer-plugin/pom.xml ++++ b/maven-enforcer-plugin/pom.xml +@@ -49,10 +49,6 @@ + + + org.apache.maven +- maven-project +- +- +- org.apache.maven + maven-core + + +diff --git a/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/DisplayInfoMojo.java b/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/DisplayInfoMojo.java +index 8133809..f7b7fc2 100644 +--- a/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/DisplayInfoMojo.java ++++ b/maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/DisplayInfoMojo.java +@@ -21,7 +21,6 @@ package org.apache.maven.plugins.enforcer; + + import org.apache.commons.lang.SystemUtils; + import org.apache.maven.execution.MavenSession; +-import org.apache.maven.execution.RuntimeInformation; + import org.apache.maven.plugin.AbstractMojo; + import org.apache.maven.plugin.MojoExecution; + import org.apache.maven.plugin.MojoExecutionException; +@@ -30,6 +29,7 @@ import org.apache.maven.plugins.annotations.Mojo; + import org.apache.maven.plugins.annotations.Parameter; + import org.apache.maven.project.MavenProject; + import org.apache.maven.project.path.PathTranslator; ++import org.apache.maven.rtinfo.RuntimeInformation; + import org.codehaus.plexus.PlexusConstants; + import org.codehaus.plexus.PlexusContainer; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; +@@ -96,7 +96,7 @@ public class DisplayInfoMojo + DefaultEnforcementRuleHelper helper = new DefaultEnforcementRuleHelper( session, evaluator, getLog(), + container ); + RuntimeInformation rti = (RuntimeInformation) helper.getComponent( RuntimeInformation.class ); +- getLog().info( "Maven Version: " + rti.getApplicationVersion() ); ++ getLog().info( "Maven Version: " + rti.getMavenVersion() ); + getLog().info( "JDK Version: " + SystemUtils.JAVA_VERSION + " normalized as: " + + RequireJavaVersion.normalizeJDKVersion( SystemUtils.JAVA_VERSION_TRIMMED ) ); + RequireOS os = new RequireOS(); +diff --git a/pom.xml b/pom.xml +index 423b7f7..a33d992 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -37,7 +37,7 @@ + 2007 + + +- 2.2.1 ++ 3.3.3 + + + +@@ -66,7 +66,7 @@ + + + +- 2.2.1 ++ 3.3.3 + 3.3 + enforcer-archives/enforcer-LATEST + +@@ -102,18 +102,23 @@ + + + org.apache.maven +- maven-project ++ maven-core + ${maven.version} + + + org.apache.maven +- maven-core ++ maven-compat + ${maven.version} + + + org.apache.maven.shared + maven-common-artifact-filters +- 1.4 ++ 3.0-SNAPSHOT ++ ++ ++ org.apache.maven.shared ++ maven-artifact-transfer ++ 3.0-SNAPSHOT + + + org.codehaus.plexus +@@ -144,12 +149,12 @@ + + org.apache.maven.plugin-testing + maven-plugin-testing-harness +- 1.3 ++ 3.3.0 + + + org.apache.maven.shared + maven-dependency-tree +- 2.2 ++ 3.0 + + + +-- +2.4.3 + diff --git a/SPECS/maven-enforcer.spec b/SPECS/maven-enforcer.spec new file mode 100644 index 0000000..e911290 --- /dev/null +++ b/SPECS/maven-enforcer.spec @@ -0,0 +1,197 @@ +%{?scl:%scl_package maven-enforcer} +%{!?scl:%global pkg_name %{name}} + +Name: %{?scl_prefix}maven-enforcer +Version: 1.4.1 +Release: 5.2%{?dist} +Summary: Maven Enforcer +License: ASL 2.0 +URL: http://maven.apache.org/enforcer +BuildArch: noarch + +Source0: http://repo1.maven.org/maven2/org/apache/maven/enforcer/enforcer/%{version}/enforcer-%{version}-source-release.zip + +Patch0: 0001-Port-to-Maven-3-API.patch + +BuildRequires: %{?scl_prefix}maven-local +BuildRequires: %{?scl_prefix}mvn(com.google.code.findbugs:jsr305) +BuildRequires: %{?scl_prefix}mvn(commons-lang:commons-lang) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven:maven-artifact) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven:maven-compat) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven:maven-core) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven:maven-parent:pom:) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven:maven-plugin-api) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.plugins:maven-assembly-plugin) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.plugins:maven-plugin-plugin) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.plugin-testing:maven-plugin-testing-harness) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.plugin-tools:maven-plugin-annotations) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.shared:maven-artifact-transfer) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.shared:maven-common-artifact-filters) +BuildRequires: %{?scl_prefix}mvn(org.apache.maven.shared:maven-dependency-tree) +BuildRequires: %{?scl_prefix}mvn(org.beanshell:bsh) +BuildRequires: %{?scl_prefix}mvn(org.codehaus.plexus:plexus-container-default) +BuildRequires: %{?scl_prefix}mvn(org.codehaus.plexus:plexus-i18n) +BuildRequires: %{?scl_prefix}mvn(org.codehaus.plexus:plexus-utils) + +%description +Enforcer is a build rule execution framework. + +%package javadoc +Summary: Javadoc for %{pkg_name} + +%description javadoc +API documentation for %{pkg_name}. + +%package api +Summary: Enforcer API + +%description api +This component provides the generic interfaces needed to +implement custom rules for the maven-enforcer-plugin. + +%package rules +Summary: Enforcer Rules + +%description rules +This component contains the standard Enforcer Rules. + +%package plugin +Summary: Enforcer Rules + +%description plugin +This component contains the standard Enforcer Rules. + +%prep +%setup -q -n enforcer-%{version} +%patch0 -p1 + +# Replace plexus-maven-plugin with plexus-component-metadata +sed -e "s|plexus-maven-plugin|plexus-component-metadata|" \ + -e "s|descriptor|generate-metadata|" \ + -i enforcer-{api,rules}/pom.xml + +%build +%mvn_build -s -f + +%install +%mvn_install + +%files -f .mfiles-enforcer +%doc LICENSE NOTICE + +%files api -f .mfiles-enforcer-api +%doc LICENSE NOTICE + +%files rules -f .mfiles-enforcer-rules + +%files plugin -f .mfiles-maven-enforcer-plugin + +%files javadoc -f .mfiles-javadoc +%doc LICENSE NOTICE + +%changelog +* Thu Jun 22 2017 Michael Simacek - 1.4.1-5.2 +- Mass rebuild 2017-06-22 + +* Wed Jun 21 2017 Java Maintainers - 1.4.1-5.1 +- Automated package import and SCL-ization + +* Fri Feb 10 2017 Fedora Release Engineering - 1.4.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 1.4.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Oct 12 2015 Mikolaj Izdebski - 1.4.1-3 +- Fix Maven 3 patch + +* Mon Oct 12 2015 Mikolaj Izdebski - 1.4.1-2 +- Port to Maven 3 API + +* Mon Aug 31 2015 Mikolaj Izdebski - 1.4.1-1 +- Update to upstream version 1.4.1 + +* Wed Jun 17 2015 Fedora Release Engineering - 1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Feb 2 2015 Mikolaj Izdebski - 1.4-1 +- Update to upstream version 1.4 + +* Tue Oct 14 2014 Mikolaj Izdebski - 1.3.1-4 +- Remove legacy Obsoletes/Provides for maven2 plugin + +* Mon Aug 4 2014 Mikolaj Izdebski - 1.3.1-3 +- Fix build-requires on parent POM + +* Sat Jun 07 2014 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Aug 9 2013 Mikolaj Izdebski - 1.3.1-1 +- Update to upstream version 1.3.1 + +* Sat Aug 03 2013 Fedora Release Engineering - 1.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Apr 19 2013 Mikolaj Izdebski - 1.2-6 +- Build with xmvn +- Update to current packaging guidelines + +* Fri Apr 19 2013 Mikolaj Izdebski - 1.2-5 +- Remove BR on maven-doxia +- Resolves: rhbz#915611 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Feb 06 2013 Java SIG - 1.2-3 +- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild +- Replace maven BuildRequires with maven-local + +* Thu Dec 6 2012 Mikolaj Izdebski - 1.2-2 +- Add mising R: forge-parent + +* Mon Dec 3 2012 Mikolaj Izdebski - 1.2-1 +- Update to upstream version 1.2 + +* Fri Nov 22 2012 Jaromir Capik - 1.1.1-3 +- Including LICENSE and NOTICE + +* Mon Oct 15 2012 Mikolaj Izdebski - 1.1.1-2 +- Remove RPM bug workaround + +* Fri Oct 12 2012 Mikolaj Izdebski - 1.1.1-1 +- Update to upstream version 1.1.1 +- Convert patches to POM macro +- Remove patch for bug 748074, upstreamed + +* Thu Jul 19 2012 Fedora Release Engineering - 1.0.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Feb 02 2012 Jaromir Capik - 1.0.1-4 +- Migration to plexus-containers-component-metadata +- Maven3 compatibility patches +- Minor spec file changes according to the latest guidelines + +* Fri Jan 13 2012 Fedora Release Engineering - 1.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Jul 15 2011 Jaromir Capik - 1.0.1-2 +- Removal of plexus-maven-plugin dependency (not needed) + +* Tue Jun 28 2011 Alexander Kurtakov 1.0.1-1 +- Update to latest upstream 1.0.1. +- Adapt to current guidelines. + +* Thu Mar 10 2011 Stanislav Ochotnicky - 1.0-1 +- Update to latest upstream (1.0) + +* Tue Feb 08 2011 Fedora Release Engineering - 1.0-0.3.b2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 13 2010 Stanislav Ochotnicky - 1.0-0.2.b2 +- Fix FTBFS (#631388) +- Use new maven plugin names +- Versionless jars & javadocs + +* Wed May 19 2010 Alexander Kurtakov 1.0-0.1.b2 +- Initial package