You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/07/09 23:45:04 UTC

svn commit: r675353 - /maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Author: jdcasey
Date: Wed Jul  9 14:45:04 2008
New Revision: 675353

URL: http://svn.apache.org/viewvc?rev=675353&view=rev
Log:
[MNG-3380] Return both project and resolved POM artifact instances in a private datatype, to preserve resolved artifact info.

Modified:
    maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=675353&r1=675352&r2=675353&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Wed Jul  9 14:45:04 2008
@@ -88,8 +88,14 @@
             return artifact;
         }
 
-        MavenProject project = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
-
+        ProjectRelocation rel = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
+        
+        if ( rel == null )
+        {
+            return null;
+        }
+        
+        MavenProject project = rel.project;
         if ( project == null || getRelocationKey( artifact ).equals( getRelocationKey( project.getArtifact() ) ) )
         {
             return artifact;
@@ -123,7 +129,7 @@
         return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getVersion();
     }
 
-    private MavenProject retrieveRelocatedProject( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
+    private ProjectRelocation retrieveRelocatedProject( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
         throws ArtifactMetadataRetrievalException
     {
         MavenProject project = null;
@@ -257,7 +263,11 @@
         }
         while ( !done );
 
-        return project;
+        ProjectRelocation rel = new ProjectRelocation();
+        rel.project = project;
+        rel.pomArtifact = pomArtifact;
+        
+        return rel;
     }
 
     /**
@@ -268,20 +278,15 @@
     public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories )
         throws ArtifactMetadataRetrievalException
     {
-        MavenProject project = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
-        Artifact pomArtifact;
-        if ( project != null )
-        {
-            pomArtifact = project.getArtifact();
-        }
-        else
-        {
-            pomArtifact = artifactFactory.createProjectArtifact( artifact.getGroupId(),
-                                                   artifact.getArtifactId(),
-                                                   artifact.getVersion(),
-                                                   artifact.getScope() );
-        }
-
+        ProjectRelocation rel = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
+        
+        if ( rel == null )
+        {
+            return null;
+        }
+        
+        MavenProject project = rel.project;
+        Artifact pomArtifact = rel.pomArtifact;
 
         // last ditch effort to try to get this set...
         if ( artifact.getDownloadUrl() == null && pomArtifact != null )
@@ -497,4 +502,11 @@
 
         return versions;
     }
+    
+    private static final class ProjectRelocation
+    {
+        private MavenProject project;
+        private Artifact pomArtifact;
+    }
+
 }