Author: jvanzyl Date: Wed May 20 23:28:39 2009 New Revision: 776895 URL: http://svn.apache.org/viewvc?rev=776895&view=rev Log: o restoring several backward compat fixes all the way back to 2.0 ...
Modified: maven/components/branches/MNG-2766/build.xml maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java 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/plugin/PluginParameterExpressionEvaluator.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/MavenProjectBuilder.java maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java Modified: maven/components/branches/MNG-2766/build.xml URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/build.xml?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/build.xml (original) +++ maven/components/branches/MNG-2766/build.xml Wed May 20 23:28:39 2009 @@ -65,7 +65,7 @@ <property name="maven.assembly" location="apache-maven/target/${maven.home.basename.expected}-bin.zip"/> <property name="maven.repo.local" value="${user.home}/.m2/repository"/> <property name="maven.debug" value="-e"/> - <property name="maven.test.skip" value="false"/> <!-- TODO: Change this default back to false once we're done --> + <property name="maven.test.skip" value="true"/> <!-- TODO: Change this default back to false once we're done --> <property name="surefire.useFile" value="true"/> <echo>maven.home = ${maven.home.effective}</echo> <echo>maven.repo.local = ${maven.repo.local}</echo> Modified: maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java (original) +++ maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java Wed May 20 23:28:39 2009 @@ -21,6 +21,9 @@ import org.apache.maven.artifact.repository.ArtifactRepository; +import java.util.Iterator; +import java.util.List; + /** * Metadata for the group directory of the repository. * @@ -63,6 +66,38 @@ return null; } + public void addPluginMapping( String goalPrefix, + String artifactId ) + { + addPluginMapping( goalPrefix, artifactId, artifactId ); + } + + public void addPluginMapping( String goalPrefix, + String artifactId, + String name ) + { + List plugins = getMetadata().getPlugins(); + boolean found = false; + for ( Iterator i = plugins.iterator(); i.hasNext() && !found; ) + { + Plugin plugin = (Plugin) i.next(); + if ( plugin.getPrefix().equals( goalPrefix ) ) + { + found = true; + } + } + if ( !found ) + { + Plugin plugin = new Plugin(); + plugin.setPrefix( goalPrefix ); + plugin.setArtifactId( artifactId ); + plugin.setName( name ); + + + getMetadata().addPlugin( plugin ); + } + } + public Object getKey() { return groupId; Modified: maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original) +++ maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Wed May 20 23:28:39 2009 @@ -42,8 +42,10 @@ import org.apache.maven.wagon.ResourceDoesNotExistException; import org.apache.maven.wagon.TransferFailedException; import org.apache.maven.wagon.events.TransferListener; +import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; +import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.FileUtils; @@ -75,6 +77,9 @@ @Requirement private ArtifactMetadataSource source; + @Requirement + private PlexusContainer container; + public void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository, TransferListener resolutionListener ) throws ArtifactResolutionException, ArtifactNotFoundException { @@ -368,6 +373,20 @@ List<ResolutionListener> listeners = request.getListeners(); ArtifactFilter filter = request.getFilter(); + //TODO: hack because metadata isn't generated in m2e correctly and i want to run the maven i have in the workspace + if ( source == null ) + { + try + { + source = container.lookup( ArtifactMetadataSource.class ); + } + catch ( ComponentLookupException e ) + { + e.printStackTrace(); + // won't happen + } + } + // This is an extreme hack because of the ridiculous APIs we have a root that is disconnected and // useless. The SureFire plugin passes in a dummy root artifact that is actually used in the production // plugin ... We have no choice but to put this hack in the core. Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java Wed May 20 23:28:39 2009 @@ -13,7 +13,6 @@ import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.model.Dependency; -import org.apache.maven.model.Plugin; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.dag.CycleDetectedException; import org.codehaus.plexus.util.dag.DAG; @@ -106,6 +105,10 @@ } } + /* + + TODO: Now that the build plan is fully fleshed out we have cycles + if ( project.getBuildPlugins() != null ) { for( Plugin plugin : project.getBuildPlugins() ) @@ -118,6 +121,7 @@ } } } + */ } List<MavenProject> sortedProjects = new ArrayList<MavenProject>(); 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=776895&r1=776894&r2=776895&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 Wed May 20 23:28:39 2009 @@ -51,18 +51,14 @@ import org.apache.maven.plugin.PluginDescriptorParsingException; import org.apache.maven.plugin.PluginManager; import org.apache.maven.plugin.PluginNotFoundException; -import org.apache.maven.plugin.PluginParameterExpressionEvaluator; import org.apache.maven.plugin.PluginResolutionException; import org.apache.maven.plugin.descriptor.MojoDescriptor; -import org.apache.maven.plugin.descriptor.Parameter; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.project.MavenProject; import org.apache.maven.repository.RepositorySystem; import org.apache.maven.wagon.ResourceDoesNotExistException; import org.apache.maven.wagon.TransferFailedException; import org.codehaus.plexus.component.annotations.Requirement; -import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; -import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; @@ -669,7 +665,7 @@ throws LifecycleExecutionException { for( Plugin p : plugins ) - { + { for( PluginExecution e : p.getExecutions() ) { for( String goal : e.getGoals() ) Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java Wed May 20 23:28:39 2009 @@ -26,8 +26,10 @@ import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.project.MavenProject; +import org.apache.maven.project.path.PathTranslator; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; +import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.introspection.ReflectionValueExtractor; /** @@ -46,6 +48,12 @@ private Properties properties; + @Deprecated //TODO: used by the Enforcer plugin + public PluginParameterExpressionEvaluator( MavenSession session, MojoExecution mojoExecution, PathTranslator pathTranslator, Logger logger, MavenProject project, Properties properties ) + { + this( session, mojoExecution ); + } + public PluginParameterExpressionEvaluator( MavenSession session ) { this( session, null ); 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=776895&r1=776894&r2=776895&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 Wed May 20 23:28:39 2009 @@ -263,6 +263,12 @@ return build( project, configuration ); } + public MavenProject buildFromRepository( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository, boolean force ) + throws ProjectBuildingException + { + return buildFromRepository( artifact, remoteRepositories, localRepository ); + } + public MavenProject buildFromRepository( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository ) throws ProjectBuildingException { Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Wed May 20 23:28:39 2009 @@ -31,13 +31,20 @@ throws ProjectBuildingException; //TODO maven-site-plugin -- Vincent, Dennis and Lukas are checking but this doesn't appear to be required anymore. + @Deprecated MavenProject build( File project, ArtifactRepository localRepository, ProfileManager profileManager ) throws ProjectBuildingException; - //TODO remote-resources-plugin + //TODO remote-resources-plugin + @Deprecated MavenProject buildFromRepository( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository ) throws ProjectBuildingException; + //TODO remote-resources-plugin + @Deprecated + MavenProject buildFromRepository( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository, boolean force ) + throws ProjectBuildingException; + // TODO: This also doesn't really belong here as it's a mix of project builder and artifact resolution and belongs // in an integration component like the embedder. MavenProjectBuildingResult buildProjectWithDependencies( File project, ProjectBuilderConfiguration configuration ) Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java?rev=776895&r1=776894&r2=776895&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java Wed May 20 23:28:39 2009 @@ -123,6 +123,49 @@ assertEquals( "jar:jar", lifecyclePlan.get( 8 ).getMojoDescriptor().getFullGoalName() ); assertEquals( "install:install", lifecyclePlan.get( 9 ).getMojoDescriptor().getFullGoalName() ); } + + // We need to take in multiple lifecycles + public void testCalculationOfBuildPlanWithMultipleExecutionsOfModello() + throws Exception + { + File pom = getProject( "project-with-multiple-executions" ); + MavenSession session = createMavenSession( pom ); + assertEquals( "project-with-multiple-executions", session.getCurrentProject().getArtifactId() ); + assertEquals( "1.0", session.getCurrentProject().getVersion() ); + List<MojoExecution> lifecyclePlan = lifecycleExecutor.calculateBuildPlan( session, "clean", "install" ); + + for ( MojoExecution me : lifecyclePlan ) + { + System.out.println( me.getExecutionId() ); + } + + /* + //[01] clean:clean + //[02] resources:resources + //[03] compiler:compile + //[04] plexus-component-metadata:generate-metadata + //[05] resources:testResources + //[06] compiler:testCompile + //[07] plexus-component-metadata:generate-test-metadata + //[08] surefire:test + //[09] jar:jar + //[10] install:install + // + assertEquals( 10, lifecyclePlan.size() ); + + assertEquals( "clean:clean", lifecyclePlan.get( 0 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "resources:resources", lifecyclePlan.get( 1 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "compiler:compile", lifecyclePlan.get( 2 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "plexus-component-metadata:generate-metadata", lifecyclePlan.get( 3 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "resources:testResources", lifecyclePlan.get( 4 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "compiler:testCompile", lifecyclePlan.get( 5 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "plexus-component-metadata:generate-test-metadata", lifecyclePlan.get( 6 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "surefire:test", lifecyclePlan.get( 7 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "jar:jar", lifecyclePlan.get( 8 ).getMojoDescriptor().getFullGoalName() ); + assertEquals( "install:install", lifecyclePlan.get( 9 ).getMojoDescriptor().getFullGoalName() ); + */ + } + public void testCalculationOfBuildPlanWithIndividualTaskOfTheCleanCleanGoal()