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 2006/07/26 23:29:09 UTC
svn commit: r425848 - in
/maven/components/branches/maven-2.0.x/maven-project/src:
main/java/org/apache/maven/project/ProjectSorter.java
test/java/org/apache/maven/project/ProjectSorterTest.java
Author: jdcasey
Date: Wed Jul 26 14:29:08 2006
New Revision: 425848
URL: http://svn.apache.org/viewvc?rev=425848&view=rev
Log:
Merging from 425843 on trunk to fix MNG-1697.
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java?rev=425848&r1=425847&r2=425848&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java Wed Jul 26 14:29:08 2006
@@ -75,7 +75,7 @@
{
throw new DuplicateProjectException( "Project '" + id + "' is duplicated in the reactor" );
}
-
+
dag.addVertex( id );
projectMap.put( id, project );
@@ -91,8 +91,8 @@
{
Dependency dependency = (Dependency) j.next();
- String dependencyId = ArtifactUtils.versionlessKey( dependency.getGroupId(),
- dependency.getArtifactId() );
+ String dependencyId = ArtifactUtils
+ .versionlessKey( dependency.getGroupId(), dependency.getArtifactId() );
if ( dag.getVertex( dependencyId ) != null )
{
@@ -168,10 +168,16 @@
this.sortedProjects = Collections.unmodifiableList( sortedProjects );
}
- private void addEdgeWithParentCheck( Map projectMap, String extensionId, MavenProject project, String id )
+ private void addEdgeWithParentCheck( Map projectMap, String projectRefId, MavenProject project, String id )
throws CycleDetectedException
{
- MavenProject extProject = (MavenProject) projectMap.get( extensionId );
+ MavenProject extProject = (MavenProject) projectMap.get( projectRefId );
+
+ if ( extProject == null )
+ {
+ return;
+ }
+
project.addProjectReference( extProject );
MavenProject extParent = extProject.getParent();
@@ -179,9 +185,9 @@
{
String parentId = ArtifactUtils.versionlessKey( extParent.getGroupId(), extParent.getArtifactId() );
// Don't add edge from parent to extension if a reverse edge already exists
- if ( !dag.hasEdge( extensionId, id ) || !parentId.equals( id ) )
+ if ( !dag.hasEdge( projectRefId, id ) || !parentId.equals( id ) )
{
- dag.addEdge( id, extensionId );
+ dag.addEdge( id, projectRefId );
}
}
}
Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java?rev=425848&r1=425847&r2=425848&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/ProjectSorterTest.java Wed Jul 26 14:29:08 2006
@@ -18,11 +18,14 @@
import junit.framework.TestCase;
+import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Extension;
import org.apache.maven.model.Model;
import org.codehaus.plexus.util.dag.CycleDetectedException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
/**
@@ -34,6 +37,32 @@
public class ProjectSorterTest
extends TestCase
{
+
+ public void testShouldNotFailWhenProjectReferencesNonExistentProject()
+ throws CycleDetectedException, DuplicateProjectException
+ {
+ MavenProject project = createProject( "group", "artifact", "1.0" );
+ Model model = project.getModel();
+
+ Build build = model.getBuild();
+
+ if ( build == null )
+ {
+ build = new Build();
+ model.setBuild( build );
+ }
+
+ Extension extension = new Extension();
+
+ extension.setArtifactId( "other-artifact" );
+ extension.setGroupId( "other.group" );
+ extension.setVersion( "1.0" );
+
+ build.addExtension( extension );
+
+ new ProjectSorter( Collections.singletonList( project ) );
+ }
+
public void testMatchingArtifactIdsDifferentGroupIds()
throws CycleDetectedException, DuplicateProjectException
{