Author: jvanzyl Date: Wed Feb 25 00:04:51 2009 New Revision: 747618 URL: http://svn.apache.org/viewvc?rev=747618&view=rev Log: o create a test repository system that has the "special" retrieve method. i'll turn this into a proper test but this exposed a bug in the plexus test metadata generation -- the production component along with the test component are put in the generated metadata and the last definition wins which knocks out my test component
Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java (with props) Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestProjectBuilder.java Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=747618&r1=747617&r2=747618&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Wed Feb 25 00:04:51 2009 @@ -257,7 +257,7 @@ .setMetadataSource( repositorySystem ); ArtifactResolutionResult result = repositorySystem.resolve( request ); - + project.setArtifacts( result.getArtifacts() ); return new MavenProjectBuildingResult( project, result ); Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=747618&r1=747617&r2=747618&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Wed Feb 25 00:04:51 2009 @@ -1705,8 +1705,7 @@ ArtifactFilter dependencyFilter ) throws InvalidDependencyVersionException { - return MavenMetadataSource.createArtifacts( artifactFactory, getDependencies(), inheritedScope, - dependencyFilter, this ); + return MavenMetadataSource.createArtifacts( artifactFactory, getDependencies(), inheritedScope, dependencyFilter, this ); } public void addProjectReference( MavenProject project ) Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java?rev=747618&r1=747617&r2=747618&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java (original) +++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java Wed Feb 25 00:04:51 2009 @@ -29,6 +29,12 @@ { private String dir = "projects/scope/"; + public void setUp() throws Exception + { + super.setUp(); + projectBuilder = lookup(MavenProjectBuilder.class, "test"); + } + public void testProjectClasspath() throws Exception { @@ -52,7 +58,6 @@ artifact = getArtifact( project, "maven-test-test", "scope-test" ); assertNull( "Check no test dependencies are transitive", artifact ); - artifact = getArtifact( project, "maven-test-test", "scope-compile" ); System.out.println( "a = " + artifact ); System.out.println( "b = " + artifact.getScope() ); @@ -104,7 +109,8 @@ } private Artifact getArtifact( MavenProject project, String groupId, String artifactId ) - { System.out.println(groupId + ":" + artifactId); + { + System.out.println( "[ Looking for " + groupId + ":" + artifactId + " ]"); for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); ) { Artifact a = (Artifact) i.next(); Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java?rev=747618&r1=747617&r2=747618&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java (original) +++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestArtifactResolver.java Wed Feb 25 00:04:51 2009 @@ -62,7 +62,7 @@ @Requirement private MavenRepositorySystem repositorySystem; - + static class Source implements ArtifactMetadataSource { Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java?rev=747618&view=auto ============================================================================== --- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java (added) +++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java Wed Feb 25 00:04:51 2009 @@ -0,0 +1,83 @@ +package org.apache.maven.project; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.List; +import java.util.Set; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.InvalidRepositoryException; +import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; +import org.apache.maven.artifact.metadata.ResolutionGroup; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.apache.maven.project.artifact.InvalidDependencyVersionException; +import org.apache.maven.repository.LegacyMavenRepositorySystem; +import org.apache.maven.repository.MavenRepositorySystem; +import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; + +...@component(role = MavenRepositorySystem.class, hint = "test") +public class TestMavenRepositorySystem + extends LegacyMavenRepositorySystem +{ + public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories ) + throws ArtifactMetadataRetrievalException + { + Model model = null; + InputStreamReader r = null; + try + { + String scope = artifact.getArtifactId().substring( "scope-".length() ); + if ( "maven-test".equals( artifact.getGroupId() ) ) + { + String name = "/projects/scope/transitive-" + scope + "-dep.xml"; + r = new InputStreamReader( getClass().getResourceAsStream( name ) ); + MavenXpp3Reader reader = new MavenXpp3Reader(); + model = reader.read( r ); + } + else + { + model = new Model(); + } + model.setGroupId( artifact.getGroupId() ); + model.setArtifactId( artifact.getArtifactId() ); + } + catch ( IOException e ) + { + throw new ArtifactMetadataRetrievalException( e ); + } + catch ( XmlPullParserException e ) + { + throw new ArtifactMetadataRetrievalException( e ); + } + finally + { + IOUtil.close( r ); + } + + Set artifacts; + try + { + artifacts = createArtifacts( model.getDependencies(), artifact.getScope(), null, null ); + } + catch ( InvalidDependencyVersionException e ) + { + throw new ArtifactMetadataRetrievalException( e ); + } + + List artifactRepositories; + try + { + artifactRepositories = buildArtifactRepositories( model.getRepositories() ); + } + catch ( InvalidRepositoryException e ) + { + throw new ArtifactMetadataRetrievalException( e ); + } + + return new ResolutionGroup( artifact, artifacts, artifactRepositories ); + } +} Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestProjectBuilder.java?rev=747618&r1=747617&r2=747618&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestProjectBuilder.java (original) +++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/TestProjectBuilder.java Wed Feb 25 00:04:51 2009 @@ -20,6 +20,7 @@ */ import org.apache.maven.artifact.resolver.ArtifactResolver; +import org.apache.maven.repository.MavenRepositorySystem; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @@ -28,5 +29,8 @@ extends DefaultMavenProjectBuilder { @Requirement(hint="test") - private ArtifactResolver artifactResolver; + private ArtifactResolver artifactResolver; + + @Requirement(hint="test") + private MavenRepositorySystem repositorySystem; }