You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/09/11 19:11:40 UTC

svn commit: r694360 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/plugin/ maven-project/src/main/java/org/apache/maven/project/ maven-project/src/main/java/org/apache/maven/project/builder/impl/ maven-project/src/main/resource...

Author: sisbell
Date: Thu Sep 11 10:11:34 2008
New Revision: 694360

URL: http://svn.apache.org/viewvc?rev=694360&view=rev
Log:
Refactored out restorer class and related MavenProjectBuilder methods.

Removed:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectRestorer.java
Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.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/MavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
    maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
    maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
    maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Thu Sep 11 10:11:34 2008
@@ -41,6 +41,7 @@
 import org.apache.maven.lifecycle.statemgmt.StateManagementUtils;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.Model;
 import org.apache.maven.monitor.event.EventDispatcher;
 import org.apache.maven.monitor.event.MavenEvents;
 import org.apache.maven.monitor.logging.DefaultLog;
@@ -56,6 +57,7 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ModelUtils;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.artifact.MavenMetadataSource;
 import org.apache.maven.project.interpolation.ModelInterpolationException;
@@ -89,6 +91,7 @@
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -516,14 +519,16 @@
 
         if ( !project.isConcrete() )
         {
-            try
-            {
-                mavenProjectBuilder.calculateConcreteState( project, session.getProjectBuilderConfiguration() );
-            }
-            catch ( ModelInterpolationException e )
-            {
-                throw new PluginManagerException( mojoDescriptor, project, "Failed to calculate concrete state for project.", e );
-            }
+            Model model = ModelUtils.cloneModel( project.getModel() );
+
+            File basedir = project.getBasedir();
+
+            Model model2 = ModelUtils.cloneModel( model );
+            pathTranslator.alignToBaseDirectory( model, basedir );
+            project.preserveBuild( model2.getBuild() );
+
+            project.setBuild( model.getBuild() );
+            project.setConcrete( true );
         }
 
         if ( mojoDescriptor.isDependencyResolutionRequired() != null )
@@ -734,14 +739,7 @@
             Thread.currentThread().setContextClassLoader( oldClassLoader );
         }
 
-        try
-        {
-            mavenProjectBuilder.restoreDynamicState( project, session.getProjectBuilderConfiguration() );
-        }
-        catch ( ModelInterpolationException e )
-        {
-            throw new PluginManagerException( mojoDescriptor, project, "Failed to restore dynamic state for project.", e );
-        }
+        project.setConcrete( false );
     }
 
     private Plugin createDummyPlugin( PluginDescriptor pluginDescriptor )

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=694360&r1=694359&r2=694360&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 Thu Sep 11 10:11:34 2008
@@ -31,8 +31,6 @@
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.PluginManagement;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
@@ -47,7 +45,6 @@
 import org.apache.maven.project.builder.ProjectBuilder;
 import org.apache.maven.project.interpolation.ModelInterpolationException;
 import org.apache.maven.project.interpolation.ModelInterpolator;
-import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.apache.maven.project.validation.ModelValidator;
 import org.apache.maven.project.workspace.ProjectWorkspace;
@@ -126,8 +123,6 @@
     // TODO: make it a component
     private MavenXpp3Reader modelReader;
 
-    private PathTranslator pathTranslator;
-
     private ModelInterpolator modelInterpolator;
 
     private ProfileAdvisor profileAdvisor;
@@ -299,7 +294,7 @@
         MavenProject project;
         try
         {
-            project = new MavenProject( superModel, artifactFactory, mavenTools, repositoryHelper, this, config );
+            project = new MavenProject( superModel, artifactFactory, mavenTools, this, config );
         }
         catch ( InvalidRepositoryException e )
         {
@@ -391,20 +386,6 @@
         return new MavenProjectBuildingResult( project, result );
     }
 
-    public void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config )
-        throws ModelInterpolationException
-    {
-        new MavenProjectRestorer( pathTranslator, modelInterpolator, getLogger() ).calculateConcreteState( project,
-                                                                                                           config );
-    }
-
-    public void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config )
-        throws ModelInterpolationException
-    {
-        new MavenProjectRestorer( pathTranslator, modelInterpolator, getLogger() ).restoreDynamicState( project,
-                                                                                                        config );
-    }
-
     public void enableLogging( Logger logger )
     {
         this.logger = logger;
@@ -482,7 +463,7 @@
         model = modelInterpolator.interpolate( model, projectDir, config, getLogger().isDebugEnabled() );
 
         // We will return a different project object using the new model (hence the need to return a project, not just modify the parameter)
-        MavenProject project = new MavenProject( model, artifactFactory, mavenTools, repositoryHelper, this, config );
+        MavenProject project = new MavenProject( model, artifactFactory, mavenTools, this, config );
 
         Artifact projectArtifact = artifactFactory.createBuildArtifact( project.getGroupId(), project.getArtifactId(),
                                                                         project.getVersion(), project.getPackaging() );
@@ -502,7 +483,7 @@
         Model model = getSuperModel();
         try
         {
-            superProject = new MavenProject( model, artifactFactory, mavenTools, repositoryHelper, this, config );
+            superProject = new MavenProject( model, artifactFactory, mavenTools, this, config );
         }
         catch ( InvalidRepositoryException e )
         {

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=694360&r1=694359&r2=694360&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 Thu Sep 11 10:11:34 2008
@@ -156,8 +156,6 @@
 
     private Map projectReferences = new HashMap();
 
-    private Build buildOverlay;
-
     private boolean executionRoot;
 
     private Map moduleAdjustments;
@@ -166,10 +164,6 @@
 
     private ArtifactFactory artifactFactory;
 
-    private MavenTools mavenTools;
-
-    private RepositoryHelper repositoryHelper;
-
     private MavenProjectBuilder mavenProjectBuilder;
 
     private ProjectBuilderConfiguration projectBuilderConfiguration;
@@ -202,15 +196,12 @@
         setModel( model );
     }
 
-    public MavenProject( Model model, ArtifactFactory artifactFactory, MavenTools mavenTools,
-                         RepositoryHelper repositoryHelper, MavenProjectBuilder mavenProjectBuilder,
+    public MavenProject( Model model, ArtifactFactory artifactFactory, MavenTools mavenTools, MavenProjectBuilder mavenProjectBuilder,
                          ProjectBuilderConfiguration projectBuilderConfiguration )
         throws InvalidRepositoryException
     {
         setModel( model );
         this.artifactFactory = artifactFactory;
-        this.mavenTools = mavenTools;
-        this.repositoryHelper = repositoryHelper;
         this.mavenProjectBuilder = mavenProjectBuilder;
         this.projectBuilderConfiguration = projectBuilderConfiguration;
         originalModel = ModelUtils.cloneModel( model );
@@ -2048,27 +2039,6 @@
                     Artifact attached = (Artifact) itr.next();
                     if ( attached.getDependencyConflictId().equals( pluginArtifact.getDependencyConflictId() ) )
                     {
-                        /* TODO: if I use the original, I get an exception below:
-                            java.lang.UnsupportedOperationException: Cannot change the download information for an attached artifact. It is derived from the main artifact.
-                            at org.apache.maven.project.artifact.AttachedArtifact.setDownloadUrl(AttachedArtifact.java:89)
-                            at org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenMetadataSource.java:205)
-                            at org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:275)
-                            at org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:67)
-                            at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:223)
-                            at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:211)
-                            at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:182)
-                            at org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1117)
-                            at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:366)
-                            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
-                            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)
-                            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)
-                            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
-                            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
-                            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
-                            at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
-                            at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
-                            at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
-                        */
                         Artifact resultArtifact = ArtifactUtils.copyArtifact( attached );
                         resultArtifact.setScope( pluginArtifact.getScope() );
                         return resultArtifact;

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Thu Sep 11 10:11:34 2008
@@ -95,13 +95,4 @@
     MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config )
         throws ProjectBuildingException;
 
-    // ----------------------------------------------------------------------------
-    // API BELOW IS USED TO PRESERVE DYNAMISM IN THE BUILD SECTION OF THE POM.
-    // ----------------------------------------------------------------------------
-
-    void calculateConcreteState( MavenProject project, ProjectBuilderConfiguration config )
-        throws ModelInterpolationException;
-
-    void restoreDynamicState( MavenProject project, ProjectBuilderConfiguration config )
-        throws ModelInterpolationException;
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Thu Sep 11 10:11:34 2008
@@ -186,7 +186,7 @@
         try
         {
             MavenProject mavenProject = new MavenProject( transformedDomainModel.getModel(), artifactFactory,
-                                                          mavenTools, repositoryHelper, null,
+                                                          mavenTools, null,
                                                           projectBuilderConfiguration );
             mavenProject.setParentFile( parentFile );
             return mavenProject;

Modified: maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml Thu Sep 11 10:11:34 2008
@@ -125,9 +125,6 @@
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.path.PathTranslator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java Thu Sep 11 10:11:34 2008
@@ -44,8 +44,6 @@
 
     private File localRepoDir;
 
-    private DefaultMavenProjectBuilder projectBuilder;
-
     @Override
     public void setUp()
         throws Exception
@@ -116,32 +114,6 @@
         assertEquals( 2, ( (Plugin) project.getBuildPlugins().get( 0 ) ).getDependencies().size() );
     }
 
-    public void testBuildDirectoryExpressionInterpolatedWithTranslatedValue()
-        throws Exception
-    {
-        File pom = getTestFile( "src/test/resources/projects/build-path-expression-pom.xml" );
-
-        MavenProject project = getProject( pom );
-
-        projectBuilder.calculateConcreteState( project, new DefaultProjectBuilderConfiguration() );
-
-        Build build = project.getBuild();
-        assertNotNull( "Project should have a build section containing the test resource.", build );
-
-        String sourceDirectory = build.getSourceDirectory();
-        assertNotNull( "Project build should contain a valid source directory.", sourceDirectory );
-
-        List resources = build.getResources();
-        assertNotNull( "Project should contain a build resource.", resources );
-        assertEquals( "Project should contain exactly one build resource.", 1, resources.size() );
-
-        Resource res = (Resource) resources.get( 0 );
-        assertEquals( "Project resource should be the same directory as the source directory.",
-                      sourceDirectory,
-                      res.getDirectory() );
-
-        System.out.println( "Interpolated, translated resource directory is: " + res.getDirectory() );
-    }
 
     @Override
     protected ArtifactRepository getLocalRepository()

Modified: maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Thu Sep 11 10:11:34 2008
@@ -140,9 +140,6 @@
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.path.PathTranslator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=694360&r1=694359&r2=694360&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Thu Sep 11 10:11:34 2008
@@ -17,7 +17,7 @@
 under the License.
 -->
 
-<plexus>
+<plexus>                       svn ci-
   <components><!--Eliminate this component after Mercury Integration-->
     <component>
       <role>org.apache.maven.project.RepositoryHelper</role>
@@ -137,9 +137,6 @@
           <role>org.apache.maven.project.validation.ModelValidator</role>
         </requirement>
         <requirement>
-          <role>org.apache.maven.project.path.PathTranslator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
         </requirement>
         <requirement>