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 }