001 /**
002 *
003 */
004 package org.apache.maven.project;
005
006 import java.io.File;
007 import java.io.FileNotFoundException;
008 import java.util.Collections;
009
010 import org.apache.maven.artifact.Artifact;
011 import org.apache.maven.artifact.repository.ArtifactRepository;
012 import org.codehaus.plexus.component.annotations.Component;
013
014 @Component(role=ProjectBuilder.class,hint="classpath")
015 public class TestProjectBuilder
016 extends DefaultProjectBuilder
017 {
018
019 @Override
020 public ProjectBuildingResult build( Artifact artifact, ProjectBuildingRequest request )
021 throws ProjectBuildingException
022 {
023 if ( "maven-test".equals( artifact.getGroupId() ) )
024 {
025 String scope = artifact.getArtifactId().substring( "scope-".length() );
026
027 try
028 {
029 artifact.setFile( ProjectClasspathTest.getFileForClasspathResource( ProjectClasspathTest.dir + "transitive-" + scope + "-dep.xml" ) );
030 }
031 catch ( FileNotFoundException e )
032 {
033 throw new IllegalStateException( "Missing test POM for " + artifact );
034 }
035 }
036 if ( artifact.getFile() == null )
037 {
038 MavenProject project = new MavenProject();
039 project.setArtifact( artifact );
040 return new DefaultProjectBuildingResult( project, null, null );
041 }
042 return build( artifact.getFile(), request );
043 }
044
045 @Override
046 public ProjectBuildingResult build( File pomFile, ProjectBuildingRequest configuration )
047 throws ProjectBuildingException
048 {
049 ProjectBuildingResult result = super.build( pomFile, configuration );
050
051 result.getProject().setRemoteArtifactRepositories( Collections.<ArtifactRepository> emptyList() );
052
053 return result;
054 }
055
056 }