+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 <[email protected]>: > 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 < > [email protected]>: > > > 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 <[email protected]>: >> >> 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 <[email protected]>: >>> >>> 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: [email protected] > For additional commands, e-mail: [email protected] > >
