Cool. I suppose not much other stuff uses that anyway :) K
2015-06-13 22:22 GMT+02:00 Robert Scholte <[email protected]>: > 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 < > [email protected]>: > > > +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] >>> >>> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
