Hervé already worked on the graph-stuff. It's part of the shared maven-dependency-tree.

Robert

Op Sat, 13 Jun 2015 22:02:44 +0200 schreef Kristian Rosenvold <kristian.rosenv...@gmail.com>:

+1 for changing the description. Maybe even the artifact id  :)

There is the small problem of the complex dependency graph stuff; there
does not appear to be a smart way to wrap the advanced functions.

The issue is ProjectBuildingResult#getDependencyResolutionResult. There
does not immediately appear to be a way to bridge this with reflection. I
considered making a wrapper that would allow all clients to use the
org.eclipse.aether api but simply bridge to the corresponding sonatype
implementations when needed.

In that case we'd probably be looking at a third ProjectBuilder (in
maven-artifact-transfer)
that uses its own api + the eclipse aether api. I assume it's safe to load
the eclipse aether api inside maven 3.0.x ?

Kristian


2015-06-13 21:01 GMT+02:00 Robert Scholte <rfscho...@apache.org>:

There's no release yet, so we're even free to change/rename
classes/methods/constructors etc.
First intention was indeed install/deploy, but then I discovered I had to
do more.

So let's change the description and let this become that main
aether-neutral project.

Robert

Op Sat, 13 Jun 2015 20:55:51 +0200 schreef Kristian Rosenvold <
kristian.rosenv...@gmail.com>:


 I looked at maven-artifact-transfer and the code seems to be focused on
install/deploy. The "description" tag in the project also says

"An API to either install or deploy artifacts with Maven3"

It would appear we should either change the description of the project (to
include "download") or create a separate project for aether-neutral
download/resolution of artifacts, containing stuff like my code from
http://svn.apache.org/viewvc?view=revision&revision=r1685177

I dont have any idea of how much of this is spread all over the place
already...


Kristian



2015-06-13 19:09 GMT+02:00 Robert Scholte <rfscho...@apache.org>:

 Hi Kristian,

org.apache.maven.artifact.resolver.ArtifactResolver is part of
maven-compat.
I've fixed maven-artifact-transfer, which should contain the preferred
ArtifactResolver.
Let me know it that'll work for you.

thanks,
Robert


Op Sat, 13 Jun 2015 11:28:03 +0200 schreef <krosenv...@apache.org>:

 Author: krosenvold

Date: Sat Jun 13 09:28:02 2015
New Revision: 1685226

URL: http://svn.apache.org/r1685226
Log:
Switched to non-deprecated

org.apache.maven.artifact.resolver.ArtifactResolver#resolve(org.apache.maven.artifact.resolver.ArtifactResolutionRequest)

Modified:


maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java


maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java


maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java

Modified:

maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
URL:

http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java?rev=1685226&r1=1685225&r2=1685226&view=diff


==============================================================================
---

maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
(original)
+++

maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolver.java
Sat Jun 13 09:28:02 2015
@@ -21,10 +21,8 @@ package org.apache.maven.plugin.assembly
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.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import
org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
@@ -69,8 +67,6 @@ public class DefaultDependencyResolver
     @Requirement
     private ArtifactResolver resolver;
-    @Requirement
-    private ArtifactMetadataSource metadataSource;
    @Requirement
     private ArtifactFactory factory;
@@ -81,11 +77,10 @@ public class DefaultDependencyResolver
         // for plexus init
     }
-    protected DefaultDependencyResolver( final ArtifactResolver
resolver, final ArtifactMetadataSource metadataSource,
- final ArtifactFactory factory,
final Logger logger )
+    protected DefaultDependencyResolver( final ArtifactResolver
resolver, final ArtifactFactory factory,
+                                         final Logger logger )
     {
         this.resolver = resolver;
-        this.metadataSource = metadataSource;
         this.factory = factory;
         enableLogging( logger );
     }
@@ -195,12 +190,13 @@ public class DefaultDependencyResolver
final Set<Artifact> resolved = new LinkedHashSet<Artifact>();
         for ( final Artifact depArtifact : dependencyArtifacts )
         {
-            try
-            {
-                resolver.resolve( depArtifact, repos,
configSource.getLocalRepository() );
-                resolved.add( depArtifact );
-            }
-            catch ( final ArtifactResolutionException e )
+            ArtifactResolutionRequest req = new
ArtifactResolutionRequest();
+ req.setLocalRepository( configSource.getLocalRepository()
);
+            req.setRemoteRepositories( repos );
+            req.setArtifact( depArtifact );
+
+ ArtifactResolutionResult resolve = resolver.resolve( req );
+            if ( resolve.hasExceptions() )
             {
                 if ( getLogger().isDebugEnabled() )
                 {
@@ -209,18 +205,14 @@ public class DefaultDependencyResolver
                 }
                 missing.add( depArtifact );
             }
-            catch ( final ArtifactNotFoundException e )
+            else
             {
-                if ( getLogger().isDebugEnabled() )
-                {
-                    getLogger().debug(
- "Failed to resolve: " + depArtifact.getId() + "
for assembly: " + assembly.getId() );
-                }
-                missing.add( depArtifact );
+                resolved.add( depArtifact );
             }
         }
        if ( !missing.isEmpty() )
+
         {
             final MavenProject project = configSource.getProject();
             final Artifact rootArtifact = project.getArtifact();
@@ -245,22 +237,31 @@ public class DefaultDependencyResolver
         final MavenProject project = configSource.getProject();
        final ArtifactFilter filter = info.getScopeFilter();
-        final ArtifactRepository localRepository =
configSource.getLocalRepository();
+
+        ArtifactResolutionRequest req = new
ArtifactResolutionRequest();
+        req.setLocalRepository( configSource.getLocalRepository() );
+        req.setResolveRoot( false );
+        req.setRemoteRepositories( repos );
+        req.setResolveTransitively( true );
+        req.setArtifact( project.getArtifact() );
+        req.setArtifactDependencies( dependencyArtifacts );
+        req.setManagedVersionMap( project.getManagedVersionMap() );
+        req.setCollectionFilter( filter );
+ req.setOffline( configSource.getMavenSession().isOffline() );
+        req.setForceUpdate(
configSource.getMavenSession().getRequest().isUpdateSnapshots() );
+        req.setServers(
configSource.getMavenSession().getRequest().getServers() );
+        req.setMirrors(
configSource.getMavenSession().getRequest().getMirrors() );
+        req.setProxies(
configSource.getMavenSession().getRequest().getProxies() );
+
+
        ArtifactResolutionResult result;
-        try
-        {
- result = resolver.resolveTransitively( dependencyArtifacts,
project.getArtifact(),
-
 project.getManagedVersionMap(), localRepository, repos,
-                                                   metadataSource,
filter );
-        }
-        catch ( final ArtifactResolutionException e )
-        {
- throw new DependencyResolutionException( "Failed to resolve
dependencies for assembly: ", e );
-        }
-        catch ( final ArtifactNotFoundException e )
+
+        result = resolver.resolve( req );
+        if ( result.hasExceptions() )
         {
- throw new DependencyResolutionException( "Failed to resolve
dependencies for assembly: ", e );
+ throw new DependencyResolutionException( "Failed to resolve
dependencies for assembly: ",
+
 result.getExceptions().get( 0 ) );
         }
        getLogger().debug( "While resolving dependencies of " +
project.getId() + ":" );

Modified:

maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
URL:

http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?rev=1685226&r1=1685225&r2=1685226&view=diff


==============================================================================
---

maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
(original)
+++

maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
Sat Jun 13 09:28:02 2015
@@ -149,8 +149,7 @@ public class DependencySetAssemblyPhaseT
             projectBuilder = macTask.projectBuilder;
         }
-        final DependencySetAssemblyPhase phase = new
DependencySetAssemblyPhase( projectBuilder, dr, logger );
-
+        final DependencySetAssemblyPhase phase = new
DependencySetAssemblyPhase( null, dr, null );
         phase.enableLogging( logger );
        return phase;

Modified:

maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java
URL:

http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java?rev=1685226&r1=1685225&r2=1685226&view=diff


==============================================================================
---

maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java
(original)
+++

maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/artifact/DefaultDependencyResolverTest.java
Sat Jun 13 09:28:02 2015
@@ -21,7 +21,6 @@ package org.apache.maven.plugin.assembly
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.repository.ArtifactRepositoryFactory;
 import
org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
@@ -60,8 +59,6 @@ public class DefaultDependencyResolverTe
    private ArtifactResolver resolver;
-    private ArtifactMetadataSource metadataSource;
-
     private ConsoleLogger logger;
    @Override
@@ -71,7 +68,6 @@ public class DefaultDependencyResolverTe
         super.setUp();
resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
-        metadataSource = (ArtifactMetadataSource) lookup(
ArtifactMetadataSource.class);
         factory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
         repoFactory = (ArtifactRepositoryFactory) lookup(
ArtifactRepositoryFactory.ROLE );
         layout = (ArtifactRepositoryLayout) lookup(
ArtifactRepositoryLayout.ROLE, "default" );
@@ -94,10 +90,10 @@ public class DefaultDependencyResolverTe
         final ResolutionManagementInfo info = new
ResolutionManagementInfo( project );
        final Assembly assembly = new Assembly();
-        new DefaultDependencyResolver( resolver, metadataSource,
factory, logger ).updateDependencySetResolutionRequirements(
-            ds1,
-                info, AssemblyId.createAssemblyId( assembly),
-                project);
+        new DefaultDependencyResolver( resolver, factory, logger
).updateDependencySetResolutionRequirements( ds1, info,
+
                                      AssemblyId.createAssemblyId(
+
                                          assembly ),
+
                                      project );
        assertTrue( info.isResolutionRequired() );
         assertFalse( info.isResolvedTransitively() );
@@ -149,9 +145,9 @@ public class DefaultDependencyResolverTe
         allProjects.add( module2 );
         allProjects.add( module2a );
-        expect( cs.getReactorProjects()).andReturn( allProjects
).anyTimes();
+        expect( cs.getReactorProjects() ).andReturn( allProjects
).anyTimes();
-        expect( cs.getProject()).andReturn( project ).anyTimes();
+        expect( cs.getProject() ).andReturn( project ).anyTimes();
        final ResolutionManagementInfo info = new
ResolutionManagementInfo( project );
@@ -189,15 +185,14 @@ public class DefaultDependencyResolverTe
        mm.replayAll();
-        final DefaultDependencyResolver resolver =
-            new DefaultDependencyResolver( this.resolver,
metadataSource, factory, logger );
+        final DefaultDependencyResolver resolver = new
DefaultDependencyResolver( this.resolver, factory, logger );
resolver.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG,
"test" ) );
        final Assembly assembly = new Assembly();
         assembly.setModuleSets( moduleSets );
-

resolver.updateModuleSetResolutionRequirements(AssemblyId.createAssemblyId(
assembly), ms1, ds1, info, cs);
-

resolver.updateModuleSetResolutionRequirements(AssemblyId.createAssemblyId(
assembly ), ms2, ds2, info, cs);
+        resolver.updateModuleSetResolutionRequirements(
AssemblyId.createAssemblyId( assembly ), ms1, ds1, info, cs );
+        resolver.updateModuleSetResolutionRequirements(
AssemblyId.createAssemblyId( assembly ), ms2, ds2, info, cs );
        assertTrue( info.isResolutionRequired() );
@@ -246,9 +241,8 @@ public class DefaultDependencyResolverTe
         assembly.setRepositories( repositories );
        final ResolutionManagementInfo info = new
ResolutionManagementInfo( project );
-        new DefaultDependencyResolver( resolver, metadataSource,
factory, logger ).updateRepositoryResolutionRequirements(assembly,
-                info
-        );
+        new DefaultDependencyResolver( resolver, factory, logger
).updateRepositoryResolutionRequirements( assembly,
+
                                   info );
        assertTrue( info.isResolutionRequired() );
@@ -287,8 +281,8 @@ public class DefaultDependencyResolverTe
         project.setRemoteArtifactRepositories( projectRepos );
        final List<ArtifactRepository> aggregated =
-            new DefaultDependencyResolver( resolver, metadataSource,
factory, logger ).aggregateRemoteArtifactRepositories( externalRepos,
-

 Collections.singleton( project ) );
+            new DefaultDependencyResolver( resolver, factory, logger
).aggregateRemoteArtifactRepositories(
+                externalRepos, Collections.singleton( project ) );
        assertRepositoryWithId( er1.getId(), aggregated, true );
         assertRepositoryWithId( er2.getId(), aggregated, true );
@@ -582,8 +576,10 @@ public class DefaultDependencyResolverTe
         else
         {
             boolean found = false;
-            for (final ArtifactRepository repo : repos) {
-                if (repoId.equals(repo.getId())) {
+            for ( final ArtifactRepository repo : repos )
+            {
+                if ( repoId.equals( repo.getId() ) )
+                {
                     found = true;
                     break;
                 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to