diff --git a/animal-sniffer-maven-plugin/pom.xml b/animal-sniffer-maven-plugin/pom.xml
index 2047abe6..16ee093d 100644
--- a/animal-sniffer-maven-plugin/pom.xml
+++ b/animal-sniffer-maven-plugin/pom.xml
@@ -66,12 +66,6 @@
${maven.version}
provided
-
- org.apache.maven
- maven-compat
- ${maven.version}
- provided
-
org.apache.maven
maven-artifact
diff --git a/animal-sniffer-maven-plugin/src/it/issue-24/verify.groovy b/animal-sniffer-maven-plugin/src/it/issue-24/verify.groovy
index e1119c7b..1561d949 100644
--- a/animal-sniffer-maven-plugin/src/it/issue-24/verify.groovy
+++ b/animal-sniffer-maven-plugin/src/it/issue-24/verify.groovy
@@ -1,3 +1,3 @@
File log = new File(basedir, 'build.log')
assert log.exists()
-assert log.text.contains( 'For artifact {org.codehaus.mojo.signature:java14:null:signature}: The version cannot be empty.' )
+assert log.text.contains( 'For artifact {org.codehaus.mojo.signature:java14:signature:}: The version cannot be empty' )
diff --git a/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/CheckSignatureMojo.java b/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/CheckSignatureMojo.java
index 7777d896..aad6ee55 100644
--- a/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/CheckSignatureMojo.java
+++ b/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/CheckSignatureMojo.java
@@ -26,10 +26,6 @@
*/
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.AbstractArtifactResolutionException;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
@@ -47,11 +43,15 @@
import org.codehaus.mojo.animal_sniffer.Clazz;
import org.codehaus.mojo.animal_sniffer.SignatureChecker;
import org.codehaus.plexus.util.StringUtils;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.ArtifactResult;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@@ -187,25 +187,16 @@ public void setSignature( String signatureId ) {
@Parameter( defaultValue = "true", property = "animal.sniffer.failOnError" )
protected boolean failOnError;
- /**
- */
- @Component
- protected ArtifactResolver resolver;
-
/**
*/
@Parameter( defaultValue = "${project}", readonly = true )
protected MavenProject project;
- /**
- */
- @Parameter( defaultValue = "${localRepository}", readonly=true )
- protected ArtifactRepository localRepository;
+ @Parameter( defaultValue = "${repositorySystemSession}", readonly = true )
+ private RepositorySystemSession repositorySystemSession;
- /**
- */
@Component
- protected ArtifactFactory artifactFactory;
+ private RepositorySystem repositorySystem;
static Map> classes = new ConcurrentHashMap<>();
@@ -249,9 +240,8 @@ public void execute()
getLog().info( "Checking unresolved references to " + signature );
- Artifact a = signature.createArtifact( artifactFactory );
+ File signatureFile = resolveFileForArtifact( signature.createArtifact() );
- resolver.resolve( a, project.getRemoteArtifactRepositories(), localRepository );
// just check code from this module
final Set ignoredPackages = buildPackageList();
@@ -268,7 +258,7 @@ public void execute()
}
final SignatureChecker signatureChecker =
- new SignatureChecker( loadClasses( a.getFile() ), ignoredPackages,
+ new SignatureChecker( loadClasses( signatureFile ), ignoredPackages,
new MavenLogger( getLog() ) );
signatureChecker.setCheckJars( false ); // don't want to decend into jar files that have been copied to
// the output directory as resources.
@@ -309,12 +299,24 @@ public void execute()
{
throw new MojoExecutionException( "Failed to check signatures", e );
}
- catch ( AbstractArtifactResolutionException e )
+ catch ( ArtifactResolutionException e )
{
throw new MojoExecutionException( "Failed to obtain signature: " + signature, e );
}
}
+ private File resolveFileForArtifact(org.eclipse.aether.artifact.Artifact artifact )
+ throws ArtifactResolutionException, MojoExecutionException {
+
+ if ( StringUtils.isBlank( artifact.getVersion() ) ) {
+ throw new MojoExecutionException( "For artifact {" + artifact + "}: The version cannot be empty." );
+ }
+
+ ArtifactRequest request = new ArtifactRequest( artifact, project.getRemotePluginRepositories(), null );
+ ArtifactResult result = repositorySystem.resolveArtifact( repositorySystemSession, request );
+ return result.getArtifact().getFile();
+ }
+
private static Map loadClasses( File f ) throws IOException
{
Map classes = CheckSignatureMojo.classes.get( f );
diff --git a/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/Signature.java b/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/Signature.java
index a11f9af8..7398956b 100644
--- a/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/Signature.java
+++ b/animal-sniffer-maven-plugin/src/main/java/org/codehaus/mojo/animal_sniffer/maven/Signature.java
@@ -25,8 +25,8 @@
*
*/
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.DefaultArtifact;
/**
* Represents artifact in Maven POM.
@@ -72,9 +72,9 @@ public void setVersion( String version )
this.version = version;
}
- public Artifact createArtifact( ArtifactFactory factory )
+ public Artifact createArtifact()
{
- return factory.createArtifact( groupId, artifactId, version, null, "signature" );
+ return new DefaultArtifact( groupId, artifactId, "signature", version);
}
public String toString()