You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ke...@apache.org on 2006/12/20 16:30:11 UTC

svn commit: r489114 - /maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java

Author: kenney
Date: Wed Dec 20 07:30:10 2006
New Revision: 489114

URL: http://svn.apache.org/viewvc?view=rev&rev=489114
Log:
Added a note on project sorting and cycles.

Modified:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java?view=diff&rev=489114&r1=489113&r2=489114
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java Wed Dec 20 07:30:10 2006
@@ -58,6 +58,17 @@
      * </ul>
      * @throws DuplicateProjectException if any projects are duplicated by id
      */
+    // MAVENAPI FIXME: the DAG used is NOT only used to represent the dependency relation,
+    // but also for <parent>, <build><plugin>, <reports>. We need multiple DAG's
+    // since a DAG can only handle 1 type of relationship properly.
+    // Usecase:  This is detected as a cycle:
+    // org.apache.maven:maven-plugin-api                -(PARENT)->
+    // org.apache.maven:maven                           -(inherited REPORTING)->
+    // org.apache.maven.plugins:maven-checkstyle-plugin -(DEPENDENCY)->
+    // org.apache.maven:maven-plugin-api
+    // In this case, both the verify and the report goals are called
+    // in a different lifecycle. Though the compiler-plugin has a valid usecase, although
+    // that seems to work fine. We need to take versions and lifecycle into account.
     public ProjectSorter( List projects )
         throws CycleDetectedException, DuplicateProjectException
     {