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>