You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/02/25 01:04:51 UTC

svn commit: r747618 - in /maven/components/trunk/maven-project/src: main/java/org/apache/maven/project/ test/java/org/apache/maven/project/

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;        
 }