o missed the tests, thanks subclipse

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@797695 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2009-07-25 00:16:45 +00:00
parent 5ad174e3d6
commit d8ee29d10c
3 changed files with 139 additions and 1 deletions

View File

@ -390,7 +390,7 @@ public class DefaultArtifactResolver
// file reference. But this may be a Maven Plugin that we need to resolve from a remote repository
// as well as its dependencies.
if ( request.isResolveRoot() && rootArtifact.getFile() == null )
if ( request.isResolveRoot() /* && rootArtifact.getFile() == null */ )
{
try
{

View File

@ -0,0 +1,138 @@
package org.apache.maven.repository;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
import java.io.File;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collections;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.Authentication;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
import org.apache.maven.model.Dependency;
import org.apache.maven.repository.LegacyRepositorySystem;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.plexus.PlexusTestCase;
/**
* Tests {@link LegacyRepositorySystem}.
*
* @author Benjamin Bentmann
*/
public class LegacyRepositorySystemTest
extends PlexusTestCase
{
private RepositorySystem repositorySystem;
private ResolutionErrorHandler resolutionErrorHandler;
@Override
protected void setUp()
throws Exception
{
super.setUp();
repositorySystem = lookup( RepositorySystem.class, "default" );
resolutionErrorHandler = lookup( ResolutionErrorHandler.class );
}
@Override
protected void tearDown()
throws Exception
{
repositorySystem = null;
resolutionErrorHandler = null;
super.tearDown();
}
public void testThatASystemScopedDependencyIsNotResolvedFromRepositories()
throws Exception
{
//
// We should get a whole slew of dependencies resolving this artifact transitively
//
Dependency d = new Dependency();
d.setGroupId( "org.apache.maven" );
d.setArtifactId( "maven-core" );
d.setVersion( "2.1.0" );
d.setScope( Artifact.SCOPE_COMPILE );
Artifact artifact = repositorySystem.createDependencyArtifact( d );
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
.setArtifact( artifact )
.setResolveRoot( true )
.setResolveTransitively( true )
.setRemoteRepostories( Arrays.asList( new ArtifactRepository[]{ repositorySystem.createDefaultRemoteRepository() } ) )
.setLocalRepository( repositorySystem.createDefaultLocalRepository() );
ArtifactResolutionResult result = repositorySystem.resolve( request );
resolutionErrorHandler.throwErrors( request, result );
assertEquals( 45, result.getArtifacts().size() );
//
// System scoped version which should
//
d.setScope( Artifact.SCOPE_SYSTEM );
File file = new File( getBasedir(), "src/test/repository-system/maven-core-2.1.0.jar" );
assertTrue( file.exists() );
d.setSystemPath( file.getCanonicalPath() );
artifact = repositorySystem.createDependencyArtifact( d );
//
// The request has not set any local or remote repositories as the system scoped dependency being resolved should only
// give us the dependency off the disk and nothing more.
//
request = new ArtifactResolutionRequest()
.setArtifact( artifact )
.setResolveRoot( true )
.setResolveTransitively( true );
result = repositorySystem.resolve( request );
resolutionErrorHandler.throwErrors( request, result );
assertEquals( 1, result.getArtifacts().size() );
//
// Put in a bogus file to make sure missing files cause the resolution to fail.
//
file = new File( getBasedir(), "src/test/repository-system/maven-monkey-2.1.0.jar" );
assertFalse( file.exists() );
d.setSystemPath( file.getCanonicalPath() );
artifact = repositorySystem.createDependencyArtifact( d );
//
// The request has not set any local or remote repositories as the system scoped dependency being resolved should only
// give us the dependency off the disk and nothing more.
//
request = new ArtifactResolutionRequest()
.setArtifact( artifact )
.setResolveRoot( true )
.setResolveTransitively( true );
try
{
result = repositorySystem.resolve( request );
resolutionErrorHandler.throwErrors( request, result );
}
catch( Exception e )
{
assertTrue( result.hasMissingArtifacts() );
}
}
}