git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1557022 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2014-01-10 03:54:32 +00:00
parent af42752e14
commit 7b2440ca48
3 changed files with 38 additions and 14 deletions

View File

@ -146,13 +146,14 @@ public void buildDependencyTree( List<String> repositoryIds, String groupId, Str
return;
}
List<RemoteRepository> remoteRepositories = new ArrayList<RemoteRepository>();
Map<String, NetworkProxy> networkProxies = new HashMap<String, NetworkProxy>();
try
{
// MRM-1411
// TODO: this is a workaround for a lack of proxy capability in the resolvers - replace when it can all be
// handled there. It doesn't cache anything locally!
List<RemoteRepository> remoteRepositories = new ArrayList<RemoteRepository>();
Map<String, NetworkProxy> networkProxies = new HashMap<String, NetworkProxy>();
Map<String, List<ProxyConnector>> proxyConnectorsMap = proxyConnectorAdmin.getProxyConnectorAsMap();
List<ProxyConnector> proxyConnectors = proxyConnectorsMap.get( repository.getId() );
@ -179,7 +180,15 @@ public void buildDependencyTree( List<String> repositoryIds, String groupId, Str
}
// FIXME take care of relative path
resolve( repository.getLocation(), groupId, artifactId, version, dependencyVisitor );
ResolveRequest resolveRequest = new ResolveRequest();
resolveRequest.dependencyVisitor = dependencyVisitor;
resolveRequest.localRepoDir = repository.getLocation();
resolveRequest.groupId = groupId;
resolveRequest.artifactId = artifactId;
resolveRequest.version = version;
resolveRequest.remoteRepositories = remoteRepositories;
resolveRequest.networkProxies = networkProxies;
resolve( resolveRequest );
}
@ -197,24 +206,39 @@ public List<TreeEntry> buildDependencyTree( List<String> repositoryIds, String g
return treeEntries;
}
private static class ResolveRequest
{
String localRepoDir, groupId, artifactId, version;
private void resolve( String localRepoDir, String groupId, String artifactId, String version,
DependencyVisitor dependencyVisitor )
DependencyVisitor dependencyVisitor;
List<RemoteRepository> remoteRepositories;
Map<String, NetworkProxy> networkProxies;
}
private void resolve( ResolveRequest resolveRequest )
{
RepositorySystem system = newRepositorySystem();
RepositorySystemSession session = newRepositorySystemSession( system, localRepoDir );
RepositorySystemSession session = newRepositorySystemSession( system, resolveRequest.localRepoDir );
org.sonatype.aether.artifact.Artifact artifact =
new DefaultArtifact( groupId + ":" + artifactId + ":" + version );
org.sonatype.aether.artifact.Artifact artifact = new DefaultArtifact(
resolveRequest.groupId + ":" + resolveRequest.artifactId + ":" + resolveRequest.version );
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRoot( new Dependency( artifact, "" ) );
// add remote repositories ?
collectRequest.addRepository( new org.sonatype.aether.repository.RemoteRepository( "fake", "default", "http://maven.apache.org" ) );
// add remote repositories
for ( RemoteRepository remoteRepository : resolveRequest.remoteRepositories )
{
collectRequest.addRepository(
new org.sonatype.aether.repository.RemoteRepository( remoteRepository.getId(), "default",
remoteRepository.getUrl() ) );
}
collectRequest.setRequestContext( "project" );
//collectRequest.addRepository( repo );
@ -222,7 +246,7 @@ private void resolve( String localRepoDir, String groupId, String artifactId, St
try
{
CollectResult collectResult = system.collectDependencies( session, collectRequest );
collectResult.getRoot().accept( dependencyVisitor );
collectResult.getRoot().accept( resolveRequest.dependencyVisitor );
log.debug( "test" );
}
catch ( DependencyCollectionException e )

View File

@ -223,7 +223,7 @@ public ProjectVersionMetadata readProjectVersionMetadata( ReadMetadataRequest re
String id = readMetadataRequest.getProjectId() + "-" + artifactVersion + ".pom";
File file =
pathTranslator.toFile( basedir, readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(),
artifactVersion, id );
readMetadataRequest.getProjectVersion(), id );
if ( !file.exists() )
{

View File

@ -342,7 +342,7 @@ public void testGetProjectVersionMetadataForTimestampedSnapshot()
{
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
new ReadMetadataRequest( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" ) );
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
MavenProjectFacet facet = MavenProjectFacet.class.cast( metadata.getFacet( MavenProjectFacet.FACET_ID ) );
assertEquals( "pom", facet.getPackaging() );
assertEquals( "http://www.apache.org/", metadata.getUrl() );
assertNull( facet.getParent() );