001 package org.apache.maven; 002 003 import java.io.File; 004 import java.util.Collections; 005 import java.util.List; 006 import java.util.Properties; 007 import java.util.Set; 008 009 import org.apache.maven.artifact.Artifact; 010 import org.apache.maven.execution.MavenSession; 011 import org.apache.maven.model.Exclusion; 012 import org.apache.maven.project.MavenProject; 013 import org.codehaus.plexus.component.annotations.Requirement; 014 015 public class ProjectDependenciesResolverTest 016 extends AbstractCoreMavenComponentTestCase 017 { 018 @Requirement 019 private ProjectDependenciesResolver resolver; 020 021 protected void setUp() 022 throws Exception 023 { 024 super.setUp(); 025 resolver = lookup( ProjectDependenciesResolver.class ); 026 } 027 028 @Override 029 protected void tearDown() 030 throws Exception 031 { 032 resolver = null; 033 super.tearDown(); 034 } 035 036 protected String getProjectsDirectory() 037 { 038 return "src/test/projects/project-dependencies-resolver"; 039 } 040 041 /* 042 public void testExclusionsInDependencies() 043 throws Exception 044 { 045 MavenSession session = createMavenSession( null ); 046 MavenProject project = session.getCurrentProject(); 047 048 Exclusion exclusion = new Exclusion(); 049 exclusion.setGroupId( "org.apache.maven.its" ); 050 exclusion.setArtifactId( "a" ); 051 052 new ProjectBuilder( project ).addDependency( "org.apache.maven.its", "b", "0.1", Artifact.SCOPE_RUNTIME, 053 exclusion ); 054 055 Set<Artifact> artifactDependencies = 056 resolver.resolve( project, Collections.singleton( Artifact.SCOPE_COMPILE ), session ); 057 assertEquals( 0, artifactDependencies.size() ); 058 059 artifactDependencies = resolver.resolve( project, Collections.singleton( Artifact.SCOPE_RUNTIME ), session ); 060 assertEquals( 1, artifactDependencies.size() ); 061 assertEquals( "b", artifactDependencies.iterator().next().getArtifactId() ); 062 } 063 */ 064 065 public void testSystemScopeDependencies() 066 throws Exception 067 { 068 MavenSession session = createMavenSession( null ); 069 MavenProject project = session.getCurrentProject(); 070 071 new ProjectBuilder( project ) 072 .addDependency( "com.mycompany", "system-dependency", "1.0", Artifact.SCOPE_SYSTEM, new File( getBasedir(), "pom.xml" ).getAbsolutePath() ); 073 074 Set<Artifact> artifactDependencies = 075 resolver.resolve( project, Collections.singleton( Artifact.SCOPE_COMPILE ), session ); 076 assertEquals( 1, artifactDependencies.size() ); 077 } 078 079 public void testSystemScopeDependencyIsPresentInTheCompileClasspathElements() 080 throws Exception 081 { 082 File pom = getProject( "it0063" ); 083 084 Properties eps = new Properties(); 085 eps.setProperty( "jre.home", new File( pom.getParentFile(), "jdk/jre" ).getPath() ); 086 087 MavenSession session = createMavenSession( pom, eps ); 088 MavenProject project = session.getCurrentProject(); 089 090 project.setArtifacts( resolver.resolve( project, Collections.singleton( Artifact.SCOPE_COMPILE ), session ) ); 091 092 List<String> elements = project.getCompileClasspathElements(); 093 assertEquals( 2, elements.size() ); 094 095 List<Artifact> artifacts = project.getCompileArtifacts(); 096 assertEquals( 1, artifacts.size() ); 097 assertTrue( artifacts.get( 0 ).getFile().getName().endsWith( "tools.jar" ) ); 098 } 099 }