X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=maven%2Forg.argeo.slc.maven.plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fmaven%2Fplugin%2FDefaultMavenDependencyManager.java;h=641b8f2a8f8b054d6ec40dea11147323f2019db7;hb=99333a1d7cad2883616c63059bd360fb91916742;hp=0c432acdee49405a2fe521b85c84d495c16e3185;hpb=18286b44ee18356985d0b435bd1aa3f34bc6425c;p=gpl%2Fargeo-slc.git diff --git a/maven/org.argeo.slc.maven.plugin/src/main/java/org/argeo/slc/maven/plugin/DefaultMavenDependencyManager.java b/maven/org.argeo.slc.maven.plugin/src/main/java/org/argeo/slc/maven/plugin/DefaultMavenDependencyManager.java index 0c432acde..641b8f2a8 100644 --- a/maven/org.argeo.slc.maven.plugin/src/main/java/org/argeo/slc/maven/plugin/DefaultMavenDependencyManager.java +++ b/maven/org.argeo.slc.maven.plugin/src/main/java/org/argeo/slc/maven/plugin/DefaultMavenDependencyManager.java @@ -1,15 +1,22 @@ package org.argeo.slc.maven.plugin; import java.io.File; +import java.util.Comparator; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.metadata.ArtifactMetadataSource; 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.ArtifactResolutionResult; import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.codehaus.plexus.archiver.ArchiverException; import org.codehaus.plexus.archiver.UnArchiver; import org.codehaus.plexus.archiver.manager.ArchiverManager; @@ -49,6 +56,9 @@ public class DefaultMavenDependencyManager implements MavenDependencyManager { */ protected ArchiverManager archiverManager; + /** @component */ + protected ArtifactMetadataSource artifactMetadataSource; + public DefaultMavenDependencyManager() { } @@ -94,4 +104,33 @@ public class DefaultMavenDependencyManager implements MavenDependencyManager { + " to: " + location + "\r\n" + e.toString(), e); } } + + public Set getTransitiveProjectDependencies(MavenProject project, + List remoteRepos, ArtifactRepository local) + throws InvalidDependencyVersionException, + ArtifactNotFoundException, ArtifactResolutionException { + Set artifacts = project.createArtifacts(this.factory, null, null); + + ArtifactResolutionResult arr = resolver.resolveTransitively(artifacts, + project.getArtifact(), local, remoteRepos, + this.artifactMetadataSource, null); + + // Order, just for display + Set dependencies = new TreeSet(new ArtifactComparator()); + dependencies.addAll(arr.getArtifacts()); + return dependencies; + } + + protected static class ArtifactComparator implements Comparator { + public int compare(Object o1, Object o2) { + Artifact a1 = (Artifact) o1; + Artifact a2 = (Artifact) o2; + + if (!a1.getGroupId().equals(a2.getGroupId())) + return a1.getGroupId().compareTo(a2.getGroupId()); + else + return a1.getArtifactId().compareTo(a2.getArtifactId()); + } + } + }