[ 
https://issues.apache.org/jira/browse/MDEP-924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17840470#comment-17840470
 ] 

ASF GitHub Bot commented on MDEP-924:
-------------------------------------

cstamas commented on code in PR #382:
URL: 
https://github.com/apache/maven-dependency-plugin/pull/382#discussion_r1578024626


##########
src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java:
##########
@@ -68,4 +85,152 @@ public Collection<Dependency> 
collectDependencies(Dependency root) throws Depend
         result.getRoot().accept(nodeListGenerator);
         return nodeListGenerator.getDependencies(true);
     }
+
+    /**
+     * Resolve given artifact
+     *
+     * @param artifact     an artifact to resolve
+     * @param repositories remote repositories list
+     * @return resolved artifact
+     * @throws ArtifactResolutionException If the artifact could not be 
resolved.
+     */
+    public Artifact resolveArtifact(Artifact artifact, List<RemoteRepository> 
repositories)
+            throws ArtifactResolutionException {
+        MavenSession session = mavenSessionProvider.get();
+        ArtifactRequest request = new ArtifactRequest(artifact, repositories, 
null);
+        ArtifactResult result = 
repositorySystem.resolveArtifact(session.getRepositorySession(), request);
+        return result.getArtifact();
+    }
+
+    /**
+     * Resolve transitive dependencies for artifact.
+     *
+     * @param artifact     an artifact to resolve
+     * @param repositories remote repositories list
+     * @return list of transitive dependencies for artifact
+     * @throws DependencyResolutionException If the dependency tree could not 
be built or any dependency artifact could
+     *                                       not be resolved.
+     */
+    public List<Artifact> resolveDependencies(Artifact artifact, 
List<RemoteRepository> repositories)
+            throws DependencyResolutionException {
+        MavenSession session = mavenSessionProvider.get();
+
+        CollectRequest collectRequest = new CollectRequest(new 
Dependency(artifact, null), repositories);
+        DependencyRequest request = new DependencyRequest(collectRequest, 
null);
+        DependencyResult result = 
repositorySystem.resolveDependencies(session.getRepositorySession(), request);
+        return result.getArtifactResults().stream()
+                .map(ArtifactResult::getArtifact)
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * Prepare a remote repositories list for given descriptions.
+     *
+     * @param repositories remote repositories descriptions
+     * @return a list of remote repositories
+     */
+    public List<RemoteRepository> remoteRepositories(List<String> 
repositories) {
+        MavenSession mavenSession = mavenSessionProvider.get();
+        List<RemoteRepository> projectRepositories =
+                
mavenSession.getCurrentProject().getRemoteProjectRepositories();
+        if (repositories == null || repositories.isEmpty()) {
+            return projectRepositories;
+        }
+
+        List<RemoteRepository> repositoriesList =
+                
repositories.stream().map(this::prepareRemoteRepository).collect(Collectors.toList());
+        repositoriesList =
+                
repositorySystem.newResolutionRepositories(mavenSession.getRepositorySession(), 
repositoriesList);
+
+        List<RemoteRepository> result = new ArrayList<>(projectRepositories);
+        result.addAll(repositoriesList);
+        return result;
+    }
+
+    // protected for testing purpose
+    protected RemoteRepository prepareRemoteRepository(String repository) {

Review Comment:
   if you resolve/deploy with this repo, you must pass it thru RepoSyste 
newDeploymentRepository or alike method (to have it mirrors/proxies/auth set).





> Get rid of maven-artifact-transfer from list-classes goal
> ---------------------------------------------------------
>
>                 Key: MDEP-924
>                 URL: https://issues.apache.org/jira/browse/MDEP-924
>             Project: Maven Dependency Plugin
>          Issue Type: Improvement
>          Components: list-classes
>            Reporter: Slawomir Jaranowski
>            Assignee: Slawomir Jaranowski
>            Priority: Major
>             Fix For: 3.7.0
>
>
> We can use Resolver API
> Done in simple Mojo as preparing for other.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to