You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/05/15 16:08:44 UTC

svn commit: r775141 - in /maven/components/branches/MNG-2766: ./ maven-core/src/main/java/org/apache/maven/lifecycle/ maven-core/src/main/java/org/apache/maven/project/ maven-core/src/test/java/org/apache/maven/project/ maven-embedder/src/main/java/org...

Author: jvanzyl
Date: Fri May 15 14:08:43 2009
New Revision: 775141

URL: http://svn.apache.org/viewvc?rev=775141&view=rev
Log:
o getting rid of some dead code in the project builder in preparation for trying to group more of the profile handling code as a test is failing in the embedder related to profiles while everything in the pom construction test is working correctly.

Removed:
    maven/components/branches/MNG-2766/README.bootstrap.mercury.txt
    maven/components/branches/MNG-2766/maven-project-spec.pdf
    maven/components/branches/MNG-2766/maven-project-spec.tex
    maven/components/branches/MNG-2766/rules.txt
Modified:
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
    maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
    maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
    maven/components/branches/MNG-2766/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=775141&r1=775140&r2=775141&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Fri May 15 14:08:43 2009
@@ -17,7 +17,6 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -986,6 +985,6 @@
 
         ArtifactResolutionResult result = repositorySystem.resolve( request );                
         resolutionErrorHandler.throwErrors( request, result );
-        project.setArtifacts( result.getArtifacts() );        
+        project.setArtifacts( result.getArtifacts() );      
     }    
 }

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=775141&r1=775140&r2=775141&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Fri May 15 14:08:43 2009
@@ -279,12 +279,12 @@
     {
         MavenProject project = build( pomFile, configuration );
 
-        Artifact artifact =
-            repositorySystem.createProjectArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion() );
+        Artifact artifact = repositorySystem.createProjectArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion() );
         artifact.setFile( pomFile );
 
         ArtifactResolutionRequest request = new ArtifactResolutionRequest()
             .setArtifact( artifact )
+            .setResolveRoot( false )
             .setResolveTransitively( true )
             .setLocalRepository( configuration.getLocalRepository() )
             .setRemoteRepostories( project.getRemoteArtifactRepositories() )
@@ -302,8 +302,6 @@
 
         project.setArtifacts( result.getArtifacts() );
         
-        project.getArtifacts().remove( artifact );
-
         return new MavenProjectBuildingResult( project, result );
     }
 
@@ -377,12 +375,8 @@
         if ( domainModel.getParentId() != null )
         {
             List<DomainModel> mavenParents;
-            MavenProject topProject = projectBuilderConfiguration.getTopLevelProjectFromReactor();
-            if ( useTopLevelProjectForParent( domainModel, topProject ) )
-            {
-                mavenParents = getDomainModelParentsFromLocalPath( domainModel, localRepository, remoteRepositories, topProject.getFile(), projectBuilderConfiguration );
-            }
-            else if ( isParentLocal( domainModel.getRelativePathOfParent(), pomFile.getParentFile() ) )
+            
+            if ( isParentLocal( domainModel.getRelativePathOfParent(), pomFile.getParentFile() ) )
             {
                 mavenParents = getDomainModelParentsFromLocalPath( domainModel, localRepository, remoteRepositories, pomFile.getParentFile(), projectBuilderConfiguration );
             }
@@ -445,19 +439,6 @@
         return transformedDomainModel;
     }
 
-    private static boolean useTopLevelProjectForParent( DomainModel currentModel, MavenProject topProject )
-        throws IOException
-    {
-        if ( topProject == null || currentModel.getModel().getParent() == null )
-        {
-            return false;
-        }
-
-        return topProject.getGroupId().equals( currentModel.getParentGroupId() ) && topProject.getArtifactId().equals( currentModel.getParentArtifactId() )
-            && topProject.getVersion().equals( currentModel.getParentVersion() );
-
-    }
-
     private void validateModel( Model model, File pomFile )
         throws InvalidProjectModelException
     {
@@ -604,22 +585,16 @@
         {
             parentFile = new File( parentFile.getAbsolutePath(), "pom.xml" );
         }
+        
         MavenProject topProject = projectBuilderConfiguration.getTopLevelProjectFromReactor();
-        boolean isTop = useTopLevelProjectForParent( domainModel, topProject );
+        
         DomainModel parentDomainModel = null;
-        if ( !isTop )
+        if ( !parentFile.isFile() )
         {
-            if ( !parentFile.isFile() )
-            {
-                throw new IOException( "File does not exist: File = " + parentFile.getAbsolutePath() );
-            }
-            parentDomainModel = new DomainModel( parentFile );
-            parentDomainModel.setProjectDirectory( parentFile.getParentFile() );
-        }
-        else
-        {
-            parentDomainModel = new DomainModel( projectBuilderConfiguration.getTopLevelProjectFromReactor().getFile() );
+            throw new IOException( "File does not exist: File = " + parentFile.getAbsolutePath() );
         }
+        parentDomainModel = new DomainModel( parentFile );
+        parentDomainModel.setProjectDirectory( parentFile.getParentFile() );
 
         if ( !parentDomainModel.matchesParentOf( domainModel ) )
         {
@@ -639,20 +614,8 @@
 
         domainModels.add( parentDomainModel );
         if ( domainModel.getParentId() != null )
-        {
-            if ( isTop )
-            {
-                if ( isParentLocal( parentDomainModel.getRelativePathOfParent(), parentFile.getParentFile() ) )
-                {
-                    domainModels
-                        .addAll( getDomainModelParentsFromLocalPath( parentDomainModel, localRepository, remoteRepositories, topProject.getFile().getParentFile(), projectBuilderConfiguration ) );
-                }
-                else
-                {
-                    domainModels.addAll( getDomainModelParentsFromRepository( parentDomainModel, localRepository, remoteRepositories ) );
-                }
-            }
-            else if ( isParentLocal( parentDomainModel.getRelativePathOfParent(), parentFile.getParentFile() ) )
+        {            
+            if ( isParentLocal( parentDomainModel.getRelativePathOfParent(), parentFile.getParentFile() ) )
             {
                 domainModels.addAll( getDomainModelParentsFromLocalPath( parentDomainModel, localRepository, remoteRepositories, parentFile.getParentFile(), projectBuilderConfiguration ) );
             }

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=775141&r1=775140&r2=775141&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Fri May 15 14:08:43 2009
@@ -577,12 +577,16 @@
 
         list.add( getBuild().getOutputDirectory() );
 
+        System.out.println( ">>>>> " + getArtifacts() );
+        
         for ( Artifact a : getArtifacts() )
         {            
             if ( a.getArtifactHandler().isAddedToClasspath() )
             {                
                 File file = a.getFile();
                                 
+                System.out.println( ">> " + a.getArtifactId() );
+                
                 if ( file == null )
                 {
                     throw new DependencyResolutionRequiredException( a );

Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=775141&r1=775140&r2=775141&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java Fri May 15 14:08:43 2009
@@ -20,8 +20,6 @@
  */
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -29,13 +27,10 @@
 
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.profiles.DefaultProfileManager;
 import org.apache.maven.profiles.ProfileActivationContext;
 import org.apache.maven.project.harness.PomTestWrapper;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 public class PomConstructionTest
     extends PlexusTestCase
@@ -50,13 +45,11 @@
 
     private File testDirectory;
 
-    private File testMixinDirectory;
-
     protected void setUp()
         throws Exception
     {
         testDirectory = new File( getBasedir(), BASE_POM_DIR );
-        testMixinDirectory = new File( getBasedir(), BASE_MIXIN_DIR );
+        new File( getBasedir(), BASE_MIXIN_DIR );
         mavenProjectBuilder = (DefaultMavenProjectBuilder) lookup( MavenProjectBuilder.class );
     }
     
@@ -1470,10 +1463,11 @@
         localRepoUrl = "file://" + localRepoUrl;
         config.setLocalRepository( new DefaultArtifactRepository( "local", localRepoUrl, new DefaultRepositoryLayout() ) );
 
-        ProfileActivationContext pCtx = new ProfileActivationContext( null, true );
+        ProfileActivationContext profileActivationContext = new ProfileActivationContext( null, true );
+        
         if ( profileIds != null )
         {
-            pCtx.setExplicitlyActiveProfileIds( Arrays.asList( profileIds ) );
+            profileActivationContext.setExplicitlyActiveProfileIds( Arrays.asList( profileIds ) );
         }
 
         if ( executionProperties != null )
@@ -1481,7 +1475,7 @@
             config.setExecutionProperties( executionProperties );
         }
 
-        config.setGlobalProfileManager( new DefaultProfileManager( pCtx ) );
+        config.setGlobalProfileManager( new DefaultProfileManager( profileActivationContext ) );
 
         return new PomTestWrapper( pomFile, mavenProjectBuilder.build( pomFile, config ) );
     }

Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=775141&r1=775140&r2=775141&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java Fri May 15 14:08:43 2009
@@ -54,8 +54,7 @@
     }
 
     /** @noinspection ConfusingMainMethod */
-    public static int main( String[] args,
-                            ClassWorld classWorld )
+    public static int main( String[] args, ClassWorld classWorld )
     {
         MavenCli cli = new MavenCli();
 

Modified: maven/components/branches/MNG-2766/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=775141&r1=775140&r2=775141&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original)
+++ maven/components/branches/MNG-2766/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Fri May 15 14:08:43 2009
@@ -137,6 +137,30 @@
         assertTrue( jar.exists() );
     }
 
+    public void testWithOptionalDependencies()
+        throws Exception
+    {
+        File testDirectory = new File( basedir, "src/test/projects/optional-dep" );
+
+        File targetDirectory = new File( basedir, "target/projects/option-dep" );
+
+        FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest()
+            .setBaseDirectory( targetDirectory )
+            .setShowErrors( true )
+            .setGoals( Arrays.asList( new String[] { "install" } ) );
+
+        MavenExecutionResult result = mavenEmbedder.execute( request );
+        
+        if (result.hasExceptions() )
+        {
+            result.getExceptions().get( 0 ).printStackTrace();
+            fail( "Project didn't execute correctly.");
+        }
+    }
+    
+    
     /*MNG-3919*/
     public void testWithInvalidGoal()
         throws Exception
@@ -147,8 +171,10 @@
 
         FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
 
-        MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory( targetDirectory )
-            .setShowErrors( true ).setGoals( Arrays.asList( new String[]{"validate"} ) );
+        MavenExecutionRequest request = new DefaultMavenExecutionRequest()
+            .setBaseDirectory( targetDirectory )
+            .setShowErrors( true )
+            .setGoals( Arrays.asList( new String[]{"validate"} ) );
 
         MavenExecutionResult result = mavenEmbedder.execute( request );
         List exceptions = result.getExceptions();
@@ -199,7 +225,8 @@
         // Check with profile not active
 
         MavenExecutionRequest requestWithoutProfile = new DefaultMavenExecutionRequest()
-            .setPom( new File( targetDirectory, "pom.xml" ) ).setShowErrors( true )
+            .setPom( new File( targetDirectory, "pom.xml" ) )
+            .setShowErrors( true )
             .setGoals( Arrays.asList( new String[] { "validate" } ) );
 
         MavenExecutionResult r0 = mavenEmbedder.execute( requestWithoutProfile );
@@ -226,6 +253,9 @@
 
         MavenProject p1 = r1.getProject();
 
+        System.out.println( p1 );
+        System.out.println( p1.getProperties() );
+        
         assertEquals( "true", p1.getProperties().getProperty( "embedderProfile" ) );
 
         assertEquals( "jason", p1.getProperties().getProperty( "name" ) );