You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/28 08:52:08 UTC

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

Author: brett
Date: Wed Jul 27 23:52:04 2005
New Revision: 225717

URL: http://svn.apache.org/viewcvs?rev=225717&view=rev
Log:
PR: MNG-326
take plugins, reports and extensions into account when sorting modules for reactor build

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/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectSorter.java?rev=225717&r1=225716&r2=225717&view=diff
==============================================================================
--- 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 Jul 27 23:52:04 2005
@@ -17,6 +17,8 @@
  */
 
 import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Extension;
+import org.apache.maven.model.Plugin;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
 import org.codehaus.plexus.util.dag.DAG;
 import org.codehaus.plexus.util.dag.TopologicalSorter;
@@ -96,6 +98,44 @@
                     dag.addEdge( id, parentId );
                 }
             }
+
+            List buildPlugins = project.getBuildPlugins();
+            if ( buildPlugins != null )
+            {
+                for ( Iterator j = buildPlugins.iterator(); j.hasNext(); )
+                {
+                    Plugin plugin = (Plugin) j.next();
+                    String pluginId = getPluginId( plugin );
+                    if ( dag.getVertex( pluginId ) != null )
+                    {
+                        dag.addEdge( id, pluginId );
+                    }
+                }
+            }
+
+            List reportPlugins = project.getReportPlugins();
+            if ( reportPlugins != null )
+            {
+                for ( Iterator j = reportPlugins.iterator(); j.hasNext(); )
+                {
+                    Plugin plugin = (Plugin) j.next();
+                    String pluginId = getPluginId( plugin );
+                    if ( dag.getVertex( pluginId ) != null )
+                    {
+                        dag.addEdge( id, pluginId );
+                    }
+                }
+            }
+
+            for ( Iterator j = project.getBuildExtensions().iterator(); j.hasNext(); )
+            {
+                Extension extension = (Extension) j.next();
+                String extensionId = getExtensionId( extension );
+                if ( dag.getVertex( extensionId ) != null )
+                {
+                    dag.addEdge( id, extensionId );
+                }
+            }
         }
 
         List sortedProjects = new ArrayList();
@@ -108,6 +148,16 @@
         }
 
         return sortedProjects;
+    }
+
+    private static String getExtensionId( Extension extension )
+    {
+        return extension.getGroupId() + ":" + extension.getArtifactId();
+    }
+
+    private static String getPluginId( Plugin plugin )
+    {
+        return plugin.getGroupId() + ":" + plugin.getArtifactId();
     }
 
     private static String getDependencyId( Dependency dependency )



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org