1 package org.apache.maven.project; 2 3 18 19 import org.apache.maven.artifact.repository.ArtifactRepository; 20 import org.apache.maven.artifact.repository.DefaultArtifactRepository; 21 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; 22 import org.apache.maven.profiles.DefaultProfileManager; 23 import org.codehaus.plexus.PlexusTestCase; 24 25 import java.io.File ; 26 import java.io.FileNotFoundException ; 27 import java.net.URL ; 28 29 33 public abstract class AbstractMavenProjectTestCase 34 extends PlexusTestCase 35 { 36 protected MavenProjectBuilder projectBuilder; 37 38 protected void setUp() 39 throws Exception 40 { 41 super.setUp(); 42 43 if ( getContainer().hasComponent( MavenProjectBuilder.ROLE, "test" ) ) 44 { 45 projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE, "test" ); 46 } 47 else 48 { 49 projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE ); 51 } 52 } 53 54 58 protected File getLocalRepositoryPath() 59 throws FileNotFoundException 60 { 61 File markerFile = getFileForClasspathResource( "local-repo/marker.txt" ); 62 63 return markerFile.getAbsoluteFile().getParentFile(); 64 } 65 66 protected File getFileForClasspathResource( String resource ) 67 throws FileNotFoundException 68 { 69 ClassLoader cloader = Thread.currentThread().getContextClassLoader(); 70 71 URL resourceUrl = cloader.getResource( resource ); 72 73 File resourceFile = null; 74 if ( resourceUrl != null ) 75 { 76 resourceFile = new File ( resourceUrl.getPath() ); 77 } 78 else 79 { 80 throw new FileNotFoundException ( "Unable to find: " + resource ); 81 } 82 83 return resourceFile; 84 } 85 86 protected ArtifactRepository getLocalRepository() 87 throws Exception 88 { 89 ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, 90 "legacy" ); 91 92 ArtifactRepository r = new DefaultArtifactRepository( "local", 93 "file://" + getLocalRepositoryPath().getAbsolutePath(), 94 repoLayout ); 95 96 return r; 97 } 98 99 103 protected MavenProject getProjectWithDependencies( File pom ) 104 throws Exception 105 { 106 return projectBuilder.buildWithDependencies( pom, getLocalRepository(), null ); 107 } 108 109 protected MavenProject getProject( File pom ) 110 throws Exception 111 { 112 return projectBuilder.build( pom, getLocalRepository(), new DefaultProfileManager( getContainer() ) ); 113 } 114 115 } 116 | Popular Tags |