Skip to content

Commit

Permalink
Remove maven-compat from project dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
slawekjaranowski committed Jul 7, 2022
1 parent 2cfb2c7 commit 3195d55
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 33 deletions.
7 changes: 0 additions & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,6 @@
<version>${maven.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- used by AbstractResolveDependencies -->
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>${maven.version}</version>
<scope>provided</scope>
</dependency>

<!-- Maven shared -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
import java.util.regex.Pattern;

import org.apache.maven.artifact.Artifact;
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.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
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.execution.MavenSession;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
import org.apache.maven.shared.dependency.graph.DependencyNode;
Expand All @@ -34,15 +34,14 @@
public abstract class AbstractResolveDependencies extends AbstractMojoHausEnforcerRule
{

private transient DependencyGraphBuilder graphBuilder;

private transient ArtifactResolver resolver;
private DependencyGraphBuilder graphBuilder;

private transient ArtifactRepository localRepository;
private MavenSession session;
private RepositorySystem repositorySystem;
private ResolutionErrorHandler resolutionErrorHandler;

private EnforcerRuleHelper helper;

private transient List<ArtifactRepository> remoteRepositories;

private transient EnforcerRuleHelper helper;
public void execute( EnforcerRuleHelper helper )
throws EnforcerRuleException
{
Expand All @@ -51,7 +50,8 @@ public void execute( EnforcerRuleHelper helper )
// Get components
try
{
resolver = helper.getComponent( ArtifactResolver.class );
repositorySystem = helper.getComponent( RepositorySystem.class );
resolutionErrorHandler = helper.getComponent( ResolutionErrorHandler.class );
graphBuilder = helper.getComponent( DependencyGraphBuilder.class );
}
catch ( ComponentLookupException e )
Expand All @@ -60,23 +60,18 @@ public void execute( EnforcerRuleHelper helper )
}

// Resolve expressions
MavenProject project;
MavenSession session;
try
{
project = (MavenProject) helper.evaluate( "${project}" );
session = (MavenSession) helper.evaluate( "${session}" );
localRepository = (ArtifactRepository) helper.evaluate( "${localRepository}" );
//noinspection unchecked
remoteRepositories = (List<ArtifactRepository>) helper.evaluate( "${project.remoteArtifactRepositories}" );
}
catch ( ExpressionEvaluationException e )
{
throw new EnforcerRuleException( "Unable to lookup an expression " + e.getLocalizedMessage(), e );
}

ProjectBuildingRequest buildingRequest =
new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
buildingRequest.setProject( project );
buildingRequest.setProject( session.getCurrentProject() );

handleArtifacts( getDependenciesToCheck( buildingRequest ) );
}
Expand All @@ -88,7 +83,7 @@ protected boolean isSearchTransitive()
return true;
}

private Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest buildingRequest )
private Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest buildingRequest ) throws EnforcerRuleException
{
Set<Artifact> dependencies = null;
try
Expand All @@ -110,8 +105,7 @@ else if ( node.getChildren() != null )
}
catch ( DependencyGraphBuilderException e )
{
// otherwise we need to change the signature of this protected method
throw new RuntimeException( e );
throw new EnforcerRuleException( e.getMessage(), e );
}
return dependencies;
}
Expand All @@ -127,9 +121,7 @@ private Set<Artifact> getAllDescendants( DependencyNode node )
try
{
Artifact artifact = depNode.getArtifact();

resolver.resolve( artifact, remoteRepositories, localRepository );

resolveArtifact( artifact );
children.add( artifact );

Set<Artifact> subNodes = getAllDescendants( depNode );
Expand All @@ -139,7 +131,7 @@ private Set<Artifact> getAllDescendants( DependencyNode node )
children.addAll( subNodes );
}
}
catch ( ArtifactResolutionException | ArtifactNotFoundException e )
catch ( ArtifactResolutionException e )
{
getLog().warn( e.getMessage() );
}
Expand All @@ -148,6 +140,20 @@ private Set<Artifact> getAllDescendants( DependencyNode node )
return children;
}

private void resolveArtifact( Artifact artifact ) throws ArtifactResolutionException
{
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
.setArtifact( artifact )
.setLocalRepository( session.getLocalRepository() )
.setRemoteRepositories( session.getRequest().getRemoteRepositories() )
.setOffline( session.isOffline() )
.setForceUpdate( session.getRequest().isUpdateSnapshots() );

ArtifactResolutionResult result = repositorySystem.resolve( request );

resolutionErrorHandler.throwErrors( request, result );
}

protected Log getLog()
{
return helper.getLog();
Expand Down

0 comments on commit 3195d55

Please sign in to comment.