You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2010/04/13 22:09:15 UTC

svn commit: r933771 - in /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven: DefaultMaven.java ReactorArtifactRepository.java lifecycle/internal/PhaseRecorder.java project/MavenProject.java

Author: krosenvold
Date: Tue Apr 13 20:09:15 2010
New Revision: 933771

URL: http://svn.apache.org/viewvc?rev=933771&view=rev
Log:
[MNG-4633] Removed isWeaveMode from ReactorArtifactRepository

This feature was incorrect, and weave mode requires no special handling here.

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorArtifactRepository.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/PhaseRecorder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=933771&r1=933770&r2=933771&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Tue Apr 13 20:09:15 2010
@@ -39,7 +39,6 @@ import org.apache.maven.execution.MavenS
 import org.apache.maven.execution.ProjectDependencyGraph;
 import org.apache.maven.lifecycle.LifecycleExecutor;
 import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
-import org.apache.maven.lifecycle.internal.LifecycleWeaveBuilder;
 import org.apache.maven.model.building.ModelProblem;
 import org.apache.maven.model.building.ModelSource;
 import org.apache.maven.model.building.UrlModelSource;
@@ -112,6 +111,7 @@ public class DefaultMaven
         return result;
     }
 
+    @SuppressWarnings({"ThrowableInstanceNeverThrown", "ThrowableResultOfMethodCallIgnored"})
     private MavenExecutionResult doExecute( MavenExecutionRequest request )
     {
         //TODO: Need a general way to inject standard properties
@@ -182,8 +182,7 @@ public class DefaultMaven
             // Reactor
             // Workspace
             // User Local Repository
-            final boolean isWeaveMode = LifecycleWeaveBuilder.isWeaveMode( request);
-            delegatingLocalArtifactRepository.setBuildReactor( new ReactorArtifactRepository( projectMap, isWeaveMode ) );
+            delegatingLocalArtifactRepository.setBuildReactor( new ReactorArtifactRepository( projectMap ) );
         }
         catch ( org.apache.maven.DuplicateProjectException e )
         {
@@ -248,13 +247,14 @@ public class DefaultMaven
         validateActivatedProfiles( session.getProjects(), request.getActiveProfiles() );
 
         if ( session.getResult().hasExceptions() )
-        {        
+        {
             return processResult( result, session.getResult().getExceptions().get( 0 ) );
         }
 
         return result;
     }
 
+    @SuppressWarnings({"ResultOfMethodCallIgnored"})
     private void validateLocalRepository( MavenExecutionRequest request )
         throws LocalRepositoryNotAccessibleException
     {

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorArtifactRepository.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorArtifactRepository.java?rev=933771&r1=933770&r2=933771&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorArtifactRepository.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorArtifactRepository.java Tue Apr 13 20:09:15 2010
@@ -21,15 +21,12 @@ public class ReactorArtifactRepository
 
     private Map<String, List<String>> availableVersions;
 
-    private final boolean isWeaveMode;
-
     private final int hashCode;
 
-        @SuppressWarnings({"ConstantConditions"})
-    public ReactorArtifactRepository( Map<String, MavenProject> reactorProjects, boolean isWeaveMode )
+    @SuppressWarnings({"ConstantConditions"})
+    public ReactorArtifactRepository( Map<String, MavenProject> reactorProjects )
     {
         this.reactorProjects = reactorProjects;
-        this.isWeaveMode = isWeaveMode;
         hashCode = ( reactorProjects != null ) ? reactorProjects.keySet().hashCode() : 0;
 
         availableVersions = new HashMap<String, List<String>>( reactorProjects.size() * 2 );
@@ -53,7 +50,7 @@ public class ReactorArtifactRepository
     public Artifact find( Artifact artifact )
     {
         String projectKey = ArtifactUtils.key( artifact );
-        
+
         MavenProject project = reactorProjects.get( projectKey );
 
         if ( project != null )
@@ -68,35 +65,32 @@ public class ReactorArtifactRepository
 
                 Artifact projectArtifact = findMatchingArtifact( project, artifact );
 
-                if ( !isWeaveMode && (projectArtifact != null && projectArtifact.getFile() != null && projectArtifact.getFile().exists()) )
+                if ( hasArtifactFileFromPackagePhase( projectArtifact ) )
                 {
-                    //TODO: This is really completely wrong and should probably be based on the phase that is currently being executed.
-                    // If we are running before the packaging phase there is going to be no archive anyway, but if we are running prior to package
-                    // we shouldn't even take the archive anyway.
 
                     resolve( artifact, projectArtifact.getFile() );
                 }
                 else
                 {
-                    Collection<String> lifecyclePhases = project.getLifecyclePhases();
-
-                    if ( !lifecyclePhases.contains( "package" ) )
+                    if ( !project.hasCompletedPhase( "package" ) )
                     {
                         if ( isTestArtifact( artifact ) )
                         {
-                            if ( lifecyclePhases.contains( "test-compile" ) )
+                            if ( project.hasCompletedPhase( "test-compile" ) )
                             {
                                 resolve( artifact, new File( project.getBuild().getTestOutputDirectory() ) );
                             }
                         }
                         else
                         {
-                            if ( lifecyclePhases.contains( "compile" ) )
+                            if ( project.hasCompletedPhase( "compile" ) )
                             {
                                 resolve( artifact, new File( project.getBuild().getOutputDirectory() ) );
                             }
                         }
                     }
+                    // The fall-through indicates that the artifact cannot be found;
+                    // for instance if package produced nothing or classifier problems.
                 }
             }
         }
@@ -104,6 +98,11 @@ public class ReactorArtifactRepository
         return artifact;
     }
 
+    private boolean hasArtifactFileFromPackagePhase( Artifact projectArtifact )
+    {
+        return projectArtifact != null && projectArtifact.getFile() != null && projectArtifact.getFile().exists();
+    }
+
     private void resolve( Artifact artifact, File file )
     {
         artifact.setFile( file );

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/PhaseRecorder.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/PhaseRecorder.java?rev=933771&r1=933770&r2=933771&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/PhaseRecorder.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/PhaseRecorder.java Tue Apr 13 20:09:15 2010
@@ -19,7 +19,7 @@ import org.apache.maven.project.MavenPro
 
 /**
  * @author Benjamin Bentmann
- * @author Kristian Rosenvold (extrace class)
+ * @author Kristian Rosenvold (extract class)
  *         <p/>
  *         NOTE: This class is not part of any public api and can be changed or deleted without prior notice.
  */

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=933771&r1=933770&r2=933771&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Tue Apr 13 20:09:15 2010
@@ -222,7 +222,6 @@ public class MavenProject
     /**
      * Constructor
      * 
-     * @param artifactFactory - may not be null
      * @param repositorySystem - may not be null
      * @param mavenProjectBuilder
      * @param projectBuilderConfiguration
@@ -2084,15 +2083,14 @@ public class MavenProject
     }
 
     /**
-     * Gets the set of lifecycle phases this project has successfully completed.
-     * 
-     * @return The (unmodifiable) set of lifecycle phases this project has successfully completed, can be empty but
-     *         never {@code null}.
+     * Indicates if the project has completed the specified lifecycle phase.
+     *
+     * @param phase The phase to check for completion
+     * @return true if the phase has been completed
      */
-    public Set<String> getLifecyclePhases()
+    public boolean hasCompletedPhase( String phase )
     {
-        return ( lifecyclePhases != null ) ? Collections.unmodifiableSet( lifecyclePhases )
-                        : Collections.<String> emptySet();
+        return lifecyclePhases != null && lifecyclePhases.contains( phase );
     }
 
     /**
@@ -2107,7 +2105,7 @@ public class MavenProject
     {
         if ( lifecyclePhases == null )
         {
-            lifecyclePhases = new LinkedHashSet<String>();
+            lifecyclePhases = Collections.synchronizedSet( new LinkedHashSet<String>() );
         }
         lifecyclePhases.add( lifecyclePhase );
     }