Author: brett
Date: Fri Sep 23 19:18:54 2005
New Revision: 291236

URL: http://svn.apache.org/viewcvs?rev=291236&view=rev
Log:
PR: MNG-208
flag project that was the root of execution

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    
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/main/java/org/apache/maven/project/ProjectSorter.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=291236&r1=291235&r2=291236&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 Fri Sep 23 19:18:54 2005
@@ -104,13 +104,13 @@
         if ( request.getSettings().isOffline() )
         {
             getLogger().info( "\n\nNOTE: Maven is running in offline 
mode.\n\n" );
-            
+
             WagonManager wagonManager = null;
 
             try
             {
                 wagonManager = (WagonManager) container.lookup( 
WagonManager.ROLE );
-                
+
                 wagonManager.setOnline( false );
             }
             catch ( ComponentLookupException e )
@@ -160,7 +160,7 @@
             List files = getProjectFiles( request );
 
             List projects = collectProjects( files, 
request.getLocalRepository(), request.isRecursive(),
-                                             request.getSettings(), 
globalProfileManager );
+                                             request.getSettings(), 
globalProfileManager, !request.isReactorActive() );
 
             // the reasoning here is that the list is still unsorted according 
to dependency, so the first project
             // SHOULD BE the top-level, or the one we want to start with if 
we're doing an aggregated build.
@@ -264,7 +264,7 @@
             catch ( LifecycleExecutionException e )
             {
                 logFatal( e );
-                
+
                 throw new ReactorException( "Error executing project within 
the reactor", e );
             }
 
@@ -351,7 +351,7 @@
     }
 
     private List collectProjects( List files, ArtifactRepository 
localRepository, boolean recursive, Settings settings,
-                                  ProfileManager globalProfileManager )
+                                  ProfileManager globalProfileManager, boolean 
isRoot )
         throws ProjectBuildingException, ReactorException, IOException, 
ArtifactResolutionException,
         ProfileActivationException
     {
@@ -371,6 +371,11 @@
 
             MavenProject project = getProject( file, localRepository, 
settings, globalProfileManager );
 
+            if ( isRoot )
+            {
+                project.setExecutionRoot( true );
+            }
+
             if ( project.getPrerequisites() != null && 
project.getPrerequisites().getMaven() != null )
             {
                 DefaultArtifactVersion version = new DefaultArtifactVersion( 
project.getPrerequisites().getMaven() );
@@ -409,7 +414,7 @@
                 }
 
                 List collectedProjects = collectProjects( moduleFiles, 
localRepository, recursive, settings,
-                                                          globalProfileManager 
);
+                                                          
globalProfileManager, false );
                 projects.addAll( collectedProjects );
                 project.setCollectedProjects( collectedProjects );
             }
@@ -530,7 +535,7 @@
     // ----------------------------------------------------------------------
     // Reporting / Logging
     // ----------------------------------------------------------------------
-    
+
     protected void logFatal( Throwable error )
     {
         line();
@@ -540,7 +545,7 @@
         line();
 
         diagnoseError( error );
-        
+
         line();
     }
 
@@ -553,7 +558,7 @@
         line();
 
         diagnoseError( r.getException() );
-        
+
         line();
 
         stats( r.getStart(), r.getFinish() );

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=291236&r1=291235&r2=291236&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
 Fri Sep 23 19:18:54 2005
@@ -346,7 +346,7 @@
             try
             {
                 artifactResolver.resolve( projectArtifact, 
remoteArtifactRepositories, localRepository );
-                
+
                 File file = projectArtifact.getFile();
                 model = readModel( file );
 
@@ -1166,6 +1166,8 @@
             List remoteRepositories = buildArtifactRepositories( superModel );
 
             project = processProjectLogic( "<Super-POM>", project, 
remoteRepositories, null, null );
+
+            project.setExecutionRoot( true );
 
             return project;
         }

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=291236&r1=291235&r2=291236&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
 Fri Sep 23 19:18:54 2005
@@ -134,6 +134,8 @@
 
     private Build buildOverlay;
 
+    private boolean executionRoot;
+
     public MavenProject( Model model )
     {
         this.model = model;
@@ -181,6 +183,8 @@
             this.originalModel = ModelUtils.cloneModel( project.originalModel 
);
         }
 
+        this.executionRoot = project.executionRoot;
+
         // TODO: need to clone this too?
         this.artifact = project.artifact;
     }
@@ -1448,5 +1452,15 @@
     public Map getProjectReferences()
     {
         return projectReferences;
+    }
+
+    public boolean isExecutionRoot()
+    {
+        return executionRoot;
+    }
+
+    public void setExecutionRoot( boolean executionRoot )
+    {
+        this.executionRoot = executionRoot;
     }
 }

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=291236&r1=291235&r2=291236&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
 Fri Sep 23 19:18:54 2005
@@ -169,11 +169,14 @@
     {
         if ( topLevelProject == null )
         {
-            List projectsByFile = new ArrayList( sortedProjects );
-
-            Collections.sort( projectsByFile, new ByProjectFileComparator() );
-
-            topLevelProject = (MavenProject) projectsByFile.get( 0 );
+            for ( Iterator i = sortedProjects.iterator(); i.hasNext() && 
topLevelProject == null; )
+            {
+                MavenProject project = (MavenProject) i.next();
+                if ( project.isExecutionRoot() )
+                {
+                    topLevelProject = project;
+                }
+            }
         }
 
         return topLevelProject;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to