diff --git a/.gitignore b/.gitignore index e69de29..8315d67 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,12 @@ +/results_* +/*.src.rpm + +/enforcer-1.0-beta-2.tar.xz +/enforcer-1.0.tar.xz +/enforcer-1.0.1-source-release.zip +/enforcer-1.2-source-release.zip +/enforcer-1.3.1-source-release.zip +/enforcer-1.4-source-release.zip +/enforcer-1.4.1-source-release.zip +/enforcer-3.0.0-M2-source-release.zip +/enforcer-3.0.0-M3-source-release.zip diff --git a/0001-Port-to-Maven-3-API.patch b/0001-Port-to-Maven-3-API.patch new file mode 100644 index 0000000..45538f5 --- /dev/null +++ b/0001-Port-to-Maven-3-API.patch @@ -0,0 +1,550 @@ +diff --git a/enforcer-rules/pom.xml b/enforcer-rules/pom.xml +index 187d38b..076c84a 100644 +--- a/enforcer-rules/pom.xml ++++ b/enforcer-rules/pom.xml +@@ -43,12 +43,16 @@ + + + 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 2888a61..cfd5338 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,8 +23,10 @@ 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.plugins.enforcer.utils.ArtifactUtils; + 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; +@@ -53,10 +55,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 ) + { +@@ -83,7 +86,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() ); +@@ -114,12 +117,12 @@ public abstract class AbstractBanDependencies + return "Found Banned Dependency: " + artifact.getId() + System.lineSeparator(); + } + +- 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 = ArtifactUtils.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 6e1dcd4..b84f421 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; +@@ -157,8 +159,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/BannedPlugins.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java +index 03201fd..35bcd57 100644 +--- 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 +@@ -23,6 +23,7 @@ import java.util.Set; + + import org.apache.maven.artifact.Artifact; + import org.apache.maven.project.MavenProject; ++import org.apache.maven.project.ProjectBuildingRequest; + + /** + * This rule checks that lists of plugins are not included. +@@ -33,9 +34,9 @@ public class BannedPlugins + extends BannedDependencies + { + @Override +- protected Set getDependenciesToCheck( MavenProject project ) ++ protected Set getDependenciesToCheck( ProjectBuildingRequest projectBuildingRequest ) + { +- return project.getPluginArtifacts(); ++ return projectBuildingRequest.getProject().getPluginArtifacts(); + } + + @Override +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 684f984..4795634 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; + +@@ -74,17 +73,13 @@ 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 ) +@@ -95,9 +90,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/RequirePluginVersions.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java +index 34f0f20..1323b11 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 +@@ -36,7 +36,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; +@@ -62,8 +61,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; +@@ -166,12 +169,6 @@ public class RequirePluginVersions + /** The resolver. */ + private ArtifactResolver resolver; + +- /** The local. */ +- private ArtifactRepository local; +- +- /** The remote repositories. */ +- private List remoteRepositories; +- + /** The log. */ + private Log log; + +@@ -205,8 +202,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 ); + +@@ -254,7 +251,7 @@ public class RequirePluginVersions + // if anything was found, log it then append the optional message. + if ( !failures.isEmpty() ) + { +- handleMessagesToTheUser( project, failures ); ++ handleMessagesToTheUser( projectBuildingRequest, failures ); + } + } + catch ( ExpressionEvaluationException e ) +@@ -277,13 +274,9 @@ 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() ); ++ // What does this mean? + } + catch ( IOException e ) + { +@@ -299,7 +292,7 @@ public class RequirePluginVersions + } + } + +- private void handleMessagesToTheUser( MavenProject project, List failures ) ++ private void handleMessagesToTheUser( ProjectBuildingRequest projectBuildingRequest, List failures ) + throws EnforcerRuleException + { + StringBuilder newMsg = new StringBuilder(); +@@ -316,7 +309,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 ) + { +@@ -518,12 +511,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(); + Map plugins = model.getBuild().getPluginsAsMap(); + found = plugins.get( plugin.getKey() ); + } +@@ -534,7 +527,7 @@ public class RequirePluginVersions + + if ( found == null ) + { +- found = resolvePlugin( plugin, project ); ++ found = resolvePlugin( plugin, projectBuildingRequest ); + } + + return found; +@@ -547,23 +540,18 @@ public class RequirePluginVersions + * @param project the project + * @return the plugin + */ +- protected Plugin resolvePlugin( Plugin plugin, MavenProject project ) ++ protected Plugin resolvePlugin( Plugin plugin, ProjectBuildingRequest projectBuildingRequest ) + { + +- 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? + } +@@ -1046,13 +1034,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 models = new ArrayList(); + +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 458554a..c48205f 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; + +@@ -105,18 +104,10 @@ 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 ) +@@ -127,7 +118,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 b6213fa..2c2a645 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 +@@ -132,4 +132,4 @@ public class DependencyVersionMap + } + return output; + } +-} +\ No newline at end of file ++} +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 c122e10..a9208f7 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 +@@ -23,12 +23,15 @@ import java.util.List; + + import org.apache.maven.artifact.factory.ArtifactFactory; + import org.apache.maven.artifact.repository.ArtifactRepository; +-import org.apache.maven.artifact.resolver.ArtifactResolver; + import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper; + import org.apache.maven.model.Plugin; + import org.apache.maven.model.ReportPlugin; + 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; + +@@ -46,42 +49,14 @@ 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. + * +@@ -97,9 +72,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 ) + { +diff --git a/pom.xml b/pom.xml +index 83306f1..79dd17f 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -63,7 +63,7 @@ + + + +- 3.0 ++ 3.3.1 + enforcer-archives/enforcer-LATEST + 7 + +@@ -139,16 +139,21 @@ + commons-codec + 1.12 + ++ ++ org.apache.maven.shared ++ maven-artifact-transfer ++ 3.0-SNAPSHOT ++ + + org.apache.maven.plugin-testing + maven-plugin-testing-harness +- 2.1 ++ 3.3.0 + test + + + org.apache.maven.shared + maven-dependency-tree +- 2.2 ++ 3.0 + + + org.apache.maven.resolver diff --git a/0002-Port-to-artifact-transfer-0.11.0.patch b/0002-Port-to-artifact-transfer-0.11.0.patch new file mode 100644 index 0000000..67b4bcc --- /dev/null +++ b/0002-Port-to-artifact-transfer-0.11.0.patch @@ -0,0 +1,30 @@ +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 f2e2cc7..c81de9d 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 +@@ -66,8 +66,8 @@ 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.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; ++import org.apache.maven.shared.transfer.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; +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 3974a9e..d319e74 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 +@@ -30,8 +30,8 @@ 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.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver; ++import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException; + import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + diff --git a/maven-enforcer.spec b/maven-enforcer.spec new file mode 100644 index 0000000..ba136cf --- /dev/null +++ b/maven-enforcer.spec @@ -0,0 +1,247 @@ +Name: maven-enforcer +Version: 3.0.0~M3 +Release: 3%{?dist} +Summary: Maven Enforcer +License: ASL 2.0 + +%global upstream_version %(echo '%{version}' | tr '~' '-') + +URL: https://maven.apache.org/enforcer +Source0: https://repo1.maven.org/maven2/org/apache/maven/enforcer/enforcer/%{upstream_version}/enforcer-%{upstream_version}-source-release.zip + +# TODO forward upstream +# https://issues.apache.org/jira/browse/MENFORCER-267 +Patch0: 0001-Port-to-Maven-3-API.patch + +# port to maven-artifact-transfer 0.11.0 +Patch1: 0002-Port-to-artifact-transfer-0.11.0.patch + +BuildArch: noarch + +BuildRequires: maven-local +BuildRequires: mvn(com.google.code.findbugs:jsr305) +BuildRequires: mvn(commons-codec:commons-codec) +BuildRequires: mvn(org.apache.commons:commons-lang3) +BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations) +BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) +BuildRequires: mvn(org.apache.maven.resolver:maven-resolver-util) +BuildRequires: mvn(org.apache.maven.shared:maven-artifact-transfer) +BuildRequires: mvn(org.apache.maven.shared:maven-common-artifact-filters) +BuildRequires: mvn(org.apache.maven.shared:maven-dependency-tree) +BuildRequires: mvn(org.apache.maven:maven-artifact) +BuildRequires: mvn(org.apache.maven:maven-compat) +BuildRequires: mvn(org.apache.maven:maven-core) +BuildRequires: mvn(org.apache.maven:maven-parent:pom:) +BuildRequires: mvn(org.apache.maven:maven-plugin-api) +BuildRequires: mvn(org.beanshell:bsh) +BuildRequires: mvn(org.codehaus.plexus:plexus-container-default) +BuildRequires: mvn(org.codehaus.plexus:plexus-utils) + +%description +Enforcer is a build rule execution framework. + +%package javadoc +Summary: Javadoc for %{name} + +%description javadoc +API documentation for %{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-%{upstream_version} + +# Use Unix line endings +find -name '*.java' -exec sed -i 's/\r//' {} \; +find -name 'pom.xml' -exec sed -i 's/\r//' {} \; + +%patch0 -p1 +%patch1 -p1 + +%pom_remove_plugin :maven-enforcer-plugin + +# Avoid dependency cycle +%pom_xpath_inject pom:build/pom:pluginManagement/pom:plugins " + + maven-enforcer-plugin + SYSTEM + " + +# 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 +* Tue Jul 28 2020 Fedora Release Engineering - 3.0.0~M3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Jiri Vanek - 3.0.0~M3-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Thu May 07 2020 Fabio Valentini - 3.0.0~M3-1 +- Update to version 3.0.0-M3. + +* Wed Jan 29 2020 Fedora Release Engineering - 3.0.0~M2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sun Nov 03 2019 Fabio Valentini - 3.0.0~M2-2 +- Port to maven-artifact-transfer 0.11.0. + +* Thu Aug 08 2019 Marian Koncek - 3.0.0~M2-1 +- Update to upstream verssion 3.0.0~M2 + +* Thu Jul 25 2019 Fedora Release Engineering - 1.4.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 1.4.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 1.4.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Feb 08 2018 Fedora Release Engineering - 1.4.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 25 2018 Mikolaj Izdebski - 1.4.1-7 +- Avoid dependency cycle during Maven build + +* Wed Jul 26 2017 Fedora Release Engineering - 1.4.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* 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 + +* Thu 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 diff --git a/sources b/sources new file mode 100644 index 0000000..950df4a --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (enforcer-3.0.0-M3-source-release.zip) = ab3fe7f71bce102e2a5f4539c61f4a3476748829a77ec52495adf833b424ab81830b59058df37ad4175cf9e368d38d1932bc6bff26ece3c64163a2fdbea83134