Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original) +++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Tue Mar 20 14:40:59 2007 @@ -53,6 +53,9 @@ <implementation>org.apache.maven.plugin.DefaultPluginManager</implementation> <requirements> <requirement> + <role>org.apache.maven.context.BuildContextManager</role> + </requirement> + <requirement> <role>org.apache.maven.ArtifactFilterManager</role> </requirement> <requirement> @@ -261,101 +264,27 @@ <implementation>org.apache.maven.lifecycle.DefaultLifecycleExecutor</implementation> <requirements> <requirement> + <role>org.apache.maven.context.BuildContextManager</role> + </requirement> + <requirement> + <role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role> + </requirement> + <requirement> + <role>org.apache.maven.plugin.loader.PluginLoader</role> + </requirement> + <requirement> <role>org.apache.maven.plugin.PluginManager</role> </requirement> <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> + <requirement> + <role>org.apache.maven.lifecycle.plan.BuildPlanner</role> + </requirement> + <requirement> + <role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role> + </requirement> </requirements> - <configuration> - <lifecycles> - <lifecycle> - <id>default</id> - <!-- START SNIPPET: lifecycle --> - <phases> - <phase>validate</phase> - <phase>initialize</phase> - <phase>generate-sources</phase> - <phase>process-sources</phase> - <phase>generate-resources</phase> - <phase>process-resources</phase> - <phase>compile</phase> - <phase>process-classes</phase> - <phase>generate-test-sources</phase> - <phase>process-test-sources</phase> - <phase>generate-test-resources</phase> - <phase>process-test-resources</phase> - <phase>test-compile</phase> - <phase>process-test-classes</phase> - <phase>test</phase> - <phase>prepare-package</phase> - <phase>package</phase> - <phase>pre-integration-test</phase> - <phase>integration-test</phase> - <phase>post-integration-test</phase> - <phase>verify</phase> - <phase>install</phase> - <phase>deploy</phase> - </phases> - <!-- END SNIPPET: lifecycle --> - </lifecycle> - <lifecycle> - <id>clean</id> - <phases> - <phase>pre-clean</phase> - <phase>clean</phase> - <phase>post-clean</phase> - </phases> - <default-phases> - <clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean> - </default-phases> - </lifecycle> - <lifecycle> - <id>site</id> - <phases> - <phase>pre-site</phase> - <phase>site</phase> - <phase>post-site</phase> - <phase>site-deploy</phase> - </phases> - <default-phases> - <site>org.apache.maven.plugins:maven-site-plugin:site</site> - <site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy> - </default-phases> - </lifecycle> - </lifecycles> - <!-- START SNIPPET: default-reports --> - <defaultReports> - <report>org.apache.maven.plugins:maven-project-info-reports-plugin</report> - <!-- TODO: currently in mojo - should they be defaults any more? - <report>org.apache.maven.plugins:maven-checkstyle-plugin</report> - <report>org.apache.maven.plugins:maven-javadoc-plugin</report> - <report>org.apache.maven.plugins:maven-changelog-plugin</report> - <report>org.apache.maven.plugins:maven-surefire-report-plugin</report> - <report>org.apache.maven.plugins:maven-jdepend-plugin</report> - <report>org.apache.maven.plugins:maven-jxr-plugin</report> - <report>org.apache.maven.plugins:maven-taglist-plugin</report> - --> - </defaultReports> - <!-- END SNIPPET: default-reports --> - <!-- START SNIPPET: default-lifecycle --> - <!-- NOT USED, ACCORDING TO CODE. - <defaultPhases> - <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources> - <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile> - <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources> - <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile> - <test>org.apache.maven.plugins:maven-surefire-plugin:test</test> - <package> - org.apache.maven.plugins:maven-jar-plugin:jar, - org.apache.maven.plugins:maven-source-plugin:jar - </package> - <install>org.apache.maven.plugins:maven-install-plugin:install</install> - <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy> - </defaultPhases> - --> - <!-- END SNIPPET: default-lifecycle --> - </configuration> </component> <!-- TODO: issues with the lifecycle: @@ -621,5 +550,182 @@ </requirement> </requirements> </component> + + <component> + <role>org.codehaus.plexus.collections.ActiveMap</role> + <role-hint>lifecycle-loaders-by-packaging</role-hint> + <implementation>org.codehaus.plexus.collections.DefaultActiveMap</implementation> + <configuration> + <role>org.apache.maven.lifecycle.LifecycleBindingLoader</role> + </configuration> + </component> + + <component> + <role>org.codehaus.plexus.collections.ActiveMap</role> + <role-hint>legacy-lifecycle-mappings-by-packaging</role-hint> + <implementation>org.codehaus.plexus.collections.DefaultActiveMap</implementation> + <configuration> + <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role> + </configuration> + </component> + + <component> + <role>org.apache.maven.plugin.loader.PluginLoader</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.plugin.loader.DefaultPluginLoader</implementation> + <requirements> + <requirement> + <role>org.apache.maven.plugin.MavenPluginCollector</role> + </requirement> + <requirement> + <role>org.apache.maven.plugin.PluginManager</role> + </requirement> + <requirement> + <role>org.apache.maven.plugin.PluginMappingManager</role> + </requirement> + <requirement> + <role>org.apache.maven.context.BuildContextManager</role> + </requirement> + </requirements> + </component> + + <component> + <role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.lifecycle.binding.DefaultLifecycleBindingManager</implementation> + <requirements> + <requirement> + <role>org.apache.maven.plugin.loader.PluginLoader</role> + </requirement> + <requirement> + <role>org.codehaus.plexus.collections.ActiveMap</role> + <role-hint>lifecycle-loaders-by-packaging</role-hint> + <field-name>bindingsByPackaging</field-name> + </requirement> + <requirement> + <role>org.codehaus.plexus.collections.ActiveMap</role> + <role-hint>legacy-lifecycle-mappings-by-packaging</role-hint> + <field-name>legacyMappingsByPackaging</field-name> + </requirement> + <requirement> + <role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role> + </requirement> + <requirement> + <role>org.apache.maven.lifecycle.binding.LegacyLifecycleMappingParser</role> + </requirement> + </requirements> + <configuration> + <legacyLifecycles> + <legacyLifecycle> + <id>default</id> + <!-- START SNIPPET: lifecycle --> + <phases> + <phase>validate</phase> + <phase>initialize</phase> + <phase>generate-sources</phase> + <phase>process-sources</phase> + <phase>generate-resources</phase> + <phase>process-resources</phase> + <phase>compile</phase> + <phase>process-classes</phase> + <phase>generate-test-sources</phase> + <phase>process-test-sources</phase> + <phase>generate-test-resources</phase> + <phase>process-test-resources</phase> + <phase>test-compile</phase> + <phase>process-test-classes</phase> + <phase>test</phase> + <phase>prepare-package</phase> + <phase>package</phase> + <phase>pre-integration-test</phase> + <phase>integration-test</phase> + <phase>post-integration-test</phase> + <phase>verify</phase> + <phase>install</phase> + <phase>deploy</phase> + </phases> + <!-- END SNIPPET: lifecycle --> + </legacyLifecycle> + <legacyLifecycle> + <id>clean</id> + <phases> + <phase>pre-clean</phase> + <phase>clean</phase> + <phase>post-clean</phase> + </phases> + <default-phases> + <clean>org.apache.maven.plugins:maven-clean-plugin:clean</clean> + </default-phases> + </legacyLifecycle> + <legacyLifecycle> + <id>site</id> + <phases> + <phase>pre-site</phase> + <phase>site</phase> + <phase>post-site</phase> + <phase>site-deploy</phase> + </phases> + <default-phases> + <site>org.apache.maven.plugins:maven-site-plugin:site</site> + <site-deploy>org.apache.maven.plugins:maven-site-plugin:deploy</site-deploy> + </default-phases> + </legacyLifecycle> + </legacyLifecycles> + <!-- START SNIPPET: default-reports --> + <defaultReports> + <report>org.apache.maven.plugins:maven-project-info-reports-plugin</report> + <!-- TODO: currently in mojo - should they be defaults any more? + <report>org.apache.maven.plugins:maven-checkstyle-plugin</report> + <report>org.apache.maven.plugins:maven-javadoc-plugin</report> + <report>org.apache.maven.plugins:maven-changelog-plugin</report> + <report>org.apache.maven.plugins:maven-surefire-report-plugin</report> + <report>org.apache.maven.plugins:maven-jdepend-plugin</report> + <report>org.apache.maven.plugins:maven-jxr-plugin</report> + <report>org.apache.maven.plugins:maven-taglist-plugin</report> + --> + </defaultReports> + <!-- END SNIPPET: default-reports --> + </configuration> + </component> + + <component> + <role>org.apache.maven.lifecycle.plan.BuildPlanner</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.lifecycle.plan.DefaultBuildPlanner</implementation> + <requirements> + <requirement> + <role>org.apache.maven.plugin.loader.PluginLoader</role> + </requirement> + <requirement> + <role>org.apache.maven.lifecycle.binding.LifecycleBindingManager</role> + </requirement> + <requirement> + <role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role> + </requirement> + </requirements> + </component> + + <component> + <role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.lifecycle.binding.DefaultMojoBindingFactory</implementation> + <requirements> + <requirement> + <role>org.apache.maven.plugin.loader.PluginLoader</role> + </requirement> + </requirements> + </component> + + <component> + <role>org.apache.maven.lifecycle.binding.LegacyLifecycleMappingParser</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.lifecycle.binding.LegacyLifecycleMappingParser</implementation> + <requirements> + <requirement> + <role>org.apache.maven.lifecycle.binding.MojoBindingFactory</role> + </requirement> + </requirements> + </component> + </components> </component-set>
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Tue Mar 20 14:40:59 2007 @@ -41,7 +41,7 @@ import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResult; import org.apache.maven.execution.MavenSession; -import org.apache.maven.lifecycle.LifecycleExecutor; +import org.apache.maven.lifecycle.LifecycleUtils; import org.apache.maven.model.Model; import org.apache.maven.model.Plugin; import org.apache.maven.model.io.jdom.MavenJDOMWriter; @@ -67,17 +67,15 @@ import org.apache.maven.settings.validation.SettingsValidator; import org.codehaus.plexus.DefaultPlexusContainer; import org.codehaus.plexus.MutablePlexusContainer; -import org.codehaus.plexus.PlexusContainerException; import org.codehaus.plexus.PlexusContainer; +import org.codehaus.plexus.PlexusContainerException; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.classworlds.realm.DuplicateRealmException; import org.codehaus.plexus.classworlds.realm.NoSuchRealmException; -import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.component.repository.exception.ComponentRepositoryException; -import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.logging.LoggerManager; import org.codehaus.plexus.util.StringUtils; @@ -94,13 +92,11 @@ import java.io.Reader; import java.io.Writer; import java.net.URL; -import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Arrays; /** * Class intended to be used by clients who wish to embed Maven into their applications @@ -489,34 +485,37 @@ // Execution of phases/goals // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- - // Lifecycle information + // LegacyLifecycle information // ---------------------------------------------------------------------- public List getLifecyclePhases() - throws MavenEmbedderException { - List phases = new ArrayList(); - - ComponentDescriptor descriptor = container.getComponentDescriptor( LifecycleExecutor.ROLE ); - - PlexusConfiguration configuration = descriptor.getConfiguration(); - - PlexusConfiguration[] phasesConfigurations = - configuration.getChild( "lifecycles" ).getChild( 0 ).getChild( "phases" ).getChildren( "phase" ); + return getBuildLifecyclePhases(); + } + + public List getAllLifecyclePhases() + { + return LifecycleUtils.getValidPhaseNames(); + } + + public List getDefaultLifecyclePhases() + { + return getBuildLifecyclePhases(); + } + + public List getBuildLifecyclePhases() + { + return LifecycleUtils.getValidBuildPhaseNames(); + } - try - { - for ( int i = 0; i < phasesConfigurations.length; i++ ) - { - phases.add( phasesConfigurations[i].getValue() ); - } - } - catch ( PlexusConfigurationException e ) - { - throw new MavenEmbedderException( "Cannot retrieve default lifecycle phasesConfigurations.", e ); - } + public List getCleanLifecyclePhases() + { + return LifecycleUtils.getValidCleanPhaseNames(); + } - return phases; + public List getSiteLifecyclePhases() + { + return LifecycleUtils.getValidSitePhaseNames(); } // ---------------------------------------------------------------------- @@ -524,7 +523,7 @@ // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- - // Lifecycle + // LegacyLifecycle // ---------------------------------------------------------------------- private void start( Configuration configuration ) @@ -645,7 +644,7 @@ } // ---------------------------------------------------------------------- - // Lifecycle + // LegacyLifecycle // ---------------------------------------------------------------------- private void handleExtensions( List extensions ) Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestDefaultsPopulator.java Tue Mar 20 14:40:59 2007 @@ -202,7 +202,7 @@ } // ---------------------------------------------------------------------------- - // Lifecycle + // LegacyLifecycle // ---------------------------------------------------------------------------- public void contextualize( Context context ) Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderExecutionTestCase.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderExecutionTestCase.java?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderExecutionTestCase.java (original) +++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderExecutionTestCase.java Tue Mar 20 14:40:59 2007 @@ -26,6 +26,7 @@ import java.io.File; import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Properties; @@ -36,20 +37,20 @@ protected File runWithProject( String goal ) throws Exception { - return runWithProject( goal, null ); + return runWithProject( Collections.singletonList( goal ), null ); } protected File runWithProject( String goal, Properties properties ) throws Exception { - return runWithProject( new String[]{goal}, properties ); + return runWithProject( Collections.singletonList( goal ), properties ); } protected File runWithProject( String[] goals ) throws Exception { - return runWithProject( goals, null ); + return runWithProject( Arrays.asList( goals ), null ); } protected File runWithProject( String[] goals, @@ -83,6 +84,8 @@ FileUtils.copyDirectoryStructure( testDirectory, targetDirectory ); MavenExecutionRequest request = new DefaultMavenExecutionRequest() + .setShowErrors( true ) + .setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_DEBUG ) .setBaseDirectory( targetDirectory ) .setGoals( goals ); Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original) +++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Tue Mar 20 14:40:59 2007 @@ -63,6 +63,11 @@ super.setUp(); basedir = System.getProperty( "basedir" ); + + if ( basedir == null ) + { + basedir = new File( "." ).getCanonicalPath(); + } ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); @@ -202,7 +207,7 @@ } // ---------------------------------------------------------------------- - // Lifecycle phases + // LegacyLifecycle phases // ---------------------------------------------------------------------- public void testRetrievingLifecyclePhases() 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?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- 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 Tue Mar 20 14:40:59 2007 @@ -64,6 +64,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import java.util.Stack; /** * The concern of the project is provide runtime values based on the model. <p/> @@ -147,6 +148,8 @@ private Map moduleAdjustments; + private Stack previousExecutionProjects = new Stack(); + public MavenProject() { Model model = new Model(); @@ -1425,11 +1428,16 @@ public MavenProject getExecutionProject() { - return executionProject; + return ( executionProject == null ? this : executionProject ); } public void setExecutionProject( MavenProject executionProject ) { + if ( this.executionProject != null ) + { + previousExecutionProjects.push( this.executionProject ); + } + this.executionProject = executionProject; } @@ -1648,6 +1656,18 @@ throw new DependencyResolutionRequiredException( a ); } list.add( file.getPath() ); + } + } + + public void clearExecutionProject() + { + if ( !previousExecutionProjects.isEmpty() ) + { + executionProject = (MavenProject) previousExecutionProjects.pop(); + } + else + { + executionProject = null; } } } Modified: maven/components/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?view=diff&rev=520609&r1=520608&r2=520609 ============================================================================== --- maven/components/trunk/pom.xml (original) +++ maven/components/trunk/pom.xml Tue Mar 20 14:40:59 2007 @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> + <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -121,6 +122,7 @@ <module>maven-build-context</module> <module>maven-core</module> <module>maven-error-diagnostics</module> + <module>maven-lifecycle</module> <module>maven-model</module> <module>maven-monitor</module> <module>maven-plugin-api</module>