Author: jvanzyl Date: Wed May 6 03:09:22 2009 New Revision: 772039 URL: http://svn.apache.org/viewvc?rev=772039&view=rev Log: o get rid of the reactor manager to make way for a real reactor that can be a local repository implementation which will prevent the pollution in the metadata source for dealing with projects that are in the current build o clean up the project sorter o push the information that was in the reactor manager into the session
Added: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java (contents, props changed) - copied, changed from r771989, maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java (contents, props changed) - copied, changed from r771989, maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java (contents, props changed) - copied, changed from r771989, maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java Removed: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/listeners/ Modified: maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/ProjectCycleException.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.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/DefaultPluginManager.java maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/MavenProject.java maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.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/main/java/org/apache/maven/embedder/MavenEmbedder.java maven/components/branches/MNG-2766/maven-toolchain/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java Modified: maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java (original) +++ maven/components/branches/MNG-2766/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java Wed May 6 03:09:22 2009 @@ -92,8 +92,7 @@ String classifier, String baseVersion ) { - return groupId + ":" + artifactId + ":" + type + ( classifier != null ? ":" + classifier : "" ) + ":" + - baseVersion; + return groupId + ":" + artifactId + ":" + type + ( classifier != null ? ":" + classifier : "" ) + ":" + baseVersion; } public static Map<String,Artifact> artifactMapByVersionlessId( Collection<Artifact> artifacts ) Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Wed May 6 03:09:22 2009 @@ -32,13 +32,12 @@ import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResult; import org.apache.maven.execution.MavenSession; +import org.apache.maven.execution.ProjectSorter; import org.apache.maven.execution.RuntimeInformation; import org.apache.maven.lifecycle.LifecycleExecutor; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.reactor.MavenExecutionException; -import org.apache.maven.reactor.MissingModuleException; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @@ -64,7 +63,7 @@ @Requirement protected RuntimeInformation runtimeInformation; - + public List<String> getLifecyclePhases() { return lifecycleExecutor.getLifecyclePhases(); @@ -92,16 +91,6 @@ MavenSession session = createMavenSession( request, result ); - if ( session.getReactorManager().hasMultipleProjects() ) - { - //logger.info( "Reactor build order: " ); - - for ( MavenProject project : session.getReactorManager().getSortedProjects() ) - { - //logger.info( " " + project.getName() ); - } - } - try { lifecycleExecutor.execute( session ); @@ -121,9 +110,9 @@ return result; } - result.setTopologicallySortedProjects( session.getReactorManager().getSortedProjects() ); + result.setTopologicallySortedProjects( session.getSortedProjects() ); - result.setProject( session.getReactorManager().getTopLevelProject() ); + result.setProject( session.getTopLevelProject() ); return result; } @@ -158,9 +147,9 @@ try { - session = new MavenSession( container, request, projects ); + ProjectSorter projectSorter = new ProjectSorter( projects ); - result.setReactorManager( session.getReactorManager() ); + session = new MavenSession( container, request, projectSorter.getSortedProjects() ); } catch ( CycleDetectedException e ) { Copied: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java (from r771989, maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java) URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java?p2=maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java&p1=maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java&r1=771989&r2=772039&rev=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java Wed May 6 03:09:22 2009 @@ -1,4 +1,4 @@ -package org.apache.maven.reactor; +package org.apache.maven; /* * Licensed to the Apache Software Foundation (ASF) under one Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java ------------------------------------------------------------------------------ cvs2svn:cvs-rev = 1.2 Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Wed May 6 03:09:22 2009 @@ -0,0 +1,7 @@ +/maven/components/branches/MNG-3932-1/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:746145-746157 +/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:680477 +/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:679206,708871,720042,726541,727548,727998,728264,728940,729060,729738,729785,730631 +/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:739385,741841,747468,747683,748815,749612,766523,768817 +/maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:738973-739966 +/maven/components/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:738757-738972 +/maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java:751453-767358,767708-768832 Copied: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java (from r771989, maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java) URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java?p2=maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java&p1=maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java&r1=771989&r2=772039&rev=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java Wed May 6 03:09:22 2009 @@ -1,4 +1,4 @@ -package org.apache.maven.reactor; +package org.apache.maven; import java.io.File; Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/MissingModuleException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Wed May 6 03:09:22 2009 @@ -0,0 +1,7 @@ +/maven/components/branches/MNG-3932-1/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:746145-746157 +/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:680477 +/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:679206,708871,720042,726541,727548,727998,728264,728940,729060,729738,729785,730631 +/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:739385,741841,747468,747683,748815,749612,766523,768817 +/maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:738973-739966 +/maven/components/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:738757-738972 +/maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MissingModuleException.java:751453-767358,767708-768832 Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/ProjectCycleException.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/ProjectCycleException.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/ProjectCycleException.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/ProjectCycleException.java Wed May 6 03:09:22 2009 @@ -2,18 +2,10 @@ import java.util.List; -import org.apache.maven.execution.ReactorManager; import org.codehaus.plexus.util.dag.CycleDetectedException; /** - * Exception which occurs when creating a new {...@link ReactorManager} instance, - * due to failure to sort the current projects. The embedded {...@link CycleDetectedException} - * is thrown by the ProjectSorter and context of this wrapped exception - * includes the list of projects that contain the cycle, along with a friendly - * rendering of the cycle message indicating that it comes from the current projects list. - * * @author jdcasey - * */ public class ProjectCycleException extends BuildFailureException Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Wed May 6 03:09:22 2009 @@ -144,7 +144,6 @@ copy.setGoals( original.getGoals() ); copy.setRecursive( original.isRecursive() ); copy.setPom( original.getPom() ); - copy.setReactorFailureBehavior( original.getReactorFailureBehavior() ); copy.setProperties( original.getProperties() ); copy.setShowErrors( original.isShowErrors() ); copy.setActiveProfiles( original.getActiveProfiles()); Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java Wed May 6 03:09:22 2009 @@ -37,9 +37,7 @@ private ArtifactResolutionResult artifactResolutionResult; - private List exceptions; - - private ReactorManager reactorManager; + private List<Throwable> exceptions; private ExceptionSummary exceptionSummary; @@ -55,7 +53,7 @@ return project; } - public MavenExecutionResult setTopologicallySortedProjects( List topologicallySortedProjects ) + public MavenExecutionResult setTopologicallySortedProjects( List<MavenProject> topologicallySortedProjects ) { this.topologicallySortedProjects = topologicallySortedProjects; @@ -101,18 +99,6 @@ return !getExceptions().isEmpty(); } - public ReactorManager getReactorManager() - { - return reactorManager; - } - - public MavenExecutionResult setReactorManager( ReactorManager reactorManager ) - { - this.reactorManager = reactorManager; - - return this; - } - public MavenExecutionResult setExceptionSummary( ExceptionSummary exceptionSummary ) { this.exceptionSummary = exceptionSummary; Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Wed May 6 03:09:22 2009 @@ -61,11 +61,11 @@ // Reactor Failure Mode // ---------------------------------------------------------------------- - static final String REACTOR_FAIL_FAST = ReactorManager.FAIL_FAST; + static final String REACTOR_FAIL_FAST = "FAIL_FAST"; - static final String REACTOR_FAIL_AT_END = ReactorManager.FAIL_AT_END; + static final String REACTOR_FAIL_AT_END = "FAIL_AT_END"; - static final String REACTOR_FAIL_NEVER = ReactorManager.FAIL_NEVER; + static final String REACTOR_FAIL_NEVER = "FAIL_NEVER"; // ---------------------------------------------------------------------- // Artifactr repository policies Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java Wed May 6 03:09:22 2009 @@ -33,15 +33,12 @@ MavenExecutionResult setProject( MavenProject project ); MavenProject getProject(); - MavenExecutionResult setTopologicallySortedProjects( List projects ); + MavenExecutionResult setTopologicallySortedProjects( List<MavenProject> projects ); List<MavenProject> getTopologicallySortedProjects(); MavenExecutionResult setArtifactResolutionResult( ArtifactResolutionResult result ); ArtifactResolutionResult getArtifactResolutionResult(); - MavenExecutionResult setReactorManager( ReactorManager reactorManager ); - ReactorManager getReactorManager(); - // for each exception // - knowing what artifacts are missing // - project building exception Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Wed May 6 03:09:22 2009 @@ -21,11 +21,9 @@ import java.util.Arrays; import java.util.List; -import java.util.Map; import java.util.Properties; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuilderConfiguration; import org.apache.maven.settings.Settings; @@ -40,12 +38,14 @@ { private PlexusContainer container; - private ReactorManager reactorManager; - private MavenExecutionRequest request; private MavenProject currentProject; + private List<MavenProject> projects; + + private MavenProject topLevelProject; + // Used by the embedder to verifyPlugin public MavenSession( MavenExecutionRequest request ) { @@ -63,20 +63,10 @@ { this.container = container; this.request = request; - this.reactorManager = new ReactorManager( projects, request.getReactorFailureBehavior() ); this.currentProject = projects.get( 0 ); + this.projects = projects; } - - public Map<String,Object> getPluginContext( PluginDescriptor pluginDescriptor, MavenProject project ) - { - if ( reactorManager == null ) - { - return null; - } - return reactorManager.getPluginContext( pluginDescriptor, project ); - } - public PlexusContainer getContainer() { return container; @@ -104,7 +94,7 @@ public List<MavenProject> getSortedProjects() { - return reactorManager.getSortedProjects(); + return projects; } public String getExecutionRootDirectory() @@ -145,10 +135,10 @@ public boolean isOffline() { return request.isOffline(); - } - - public ReactorManager getReactorManager() + } + + public MavenProject getTopLevelProject() { - return reactorManager; + return topLevelProject; } } \ No newline at end of file Copied: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java (from r771989, 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?p2=maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java&p1=maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java&r1=771989&r2=772039&rev=772039&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 6 03:09:22 2009 @@ -12,9 +12,7 @@ import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.model.Dependency; -import org.apache.maven.model.Extension; import org.apache.maven.model.Plugin; -import org.apache.maven.model.ReportPlugin; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.dag.CycleDetectedException; import org.codehaus.plexus.util.dag.DAG; @@ -56,24 +54,17 @@ { dag = new DAG(); - Map projectMap = new HashMap(); + Map<String,MavenProject> projectMap = new HashMap<String,MavenProject>(); - for ( Iterator i = projects.iterator(); i.hasNext(); ) + for ( MavenProject project : projects ) { - MavenProject project = (MavenProject) i.next(); - String id = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ); if ( dag.getVertex( id ) != null ) { MavenProject conflictingProject = (MavenProject) projectMap.get( id ); - throw new DuplicateProjectException( id, - conflictingProject.getFile(), - project.getFile(), - "Project '" - + id - + "' is duplicated in the reactor" ); + throw new DuplicateProjectException( id, conflictingProject.getFile(), project.getFile(), "Project '" + id + "' is duplicated in the reactor" ); } dag.addVertex( id ); @@ -81,18 +72,13 @@ projectMap.put( id, project ); } - for ( Iterator i = projects.iterator(); i.hasNext(); ) + for ( MavenProject project : projects ) { - MavenProject project = (MavenProject) i.next(); - String id = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() ); - for ( Iterator j = project.getDependencies().iterator(); j.hasNext(); ) + for( Dependency dependency : project.getDependencies() ) { - Dependency dependency = (Dependency) j.next(); - - String dependencyId = ArtifactUtils - .versionlessKey( dependency.getGroupId(), dependency.getArtifactId() ); + String dependencyId = ArtifactUtils.versionlessKey( dependency.getGroupId(), dependency.getArtifactId() ); if ( dag.getVertex( dependencyId ) != null ) { @@ -103,6 +89,7 @@ } MavenProject parent = project.getParent(); + if ( parent != null ) { String parentId = ArtifactUtils.versionlessKey( parent.getGroupId(), parent.getArtifactId() ); @@ -113,62 +100,38 @@ { dag.removeEdge( parentId, id ); } + dag.addEdge( id, parentId ); } } - - List buildPlugins = project.getBuildPlugins(); - if ( buildPlugins != null ) - { - for ( Iterator j = buildPlugins.iterator(); j.hasNext(); ) - { - Plugin plugin = (Plugin) j.next(); - String pluginId = ArtifactUtils.versionlessKey( plugin.getGroupId(), plugin.getArtifactId() ); - if ( ( dag.getVertex( pluginId ) != null ) && !pluginId.equals( id ) ) - { - addEdgeWithParentCheck( projectMap, pluginId, project, id ); - } - } - } - - List reportPlugins = project.getReportPlugins(); - if ( reportPlugins != null ) + + if ( project.getBuildPlugins() != null ) { - for ( Iterator j = reportPlugins.iterator(); j.hasNext(); ) + for( Plugin plugin : project.getBuildPlugins() ) { - ReportPlugin plugin = (ReportPlugin) j.next(); String pluginId = ArtifactUtils.versionlessKey( plugin.getGroupId(), plugin.getArtifactId() ); + if ( ( dag.getVertex( pluginId ) != null ) && !pluginId.equals( id ) ) { addEdgeWithParentCheck( projectMap, pluginId, project, id ); } } } - - for ( Iterator j = project.getBuildExtensions().iterator(); j.hasNext(); ) - { - Extension extension = (Extension) j.next(); - String extensionId = ArtifactUtils.versionlessKey( extension.getGroupId(), extension.getArtifactId() ); - if ( dag.getVertex( extensionId ) != null ) - { - addEdgeWithParentCheck( projectMap, extensionId, project, id ); - } - } } - List sortedProjects = new ArrayList(); + List<MavenProject> sortedProjects = new ArrayList<MavenProject>(); - for ( Iterator i = TopologicalSorter.sort( dag ).iterator(); i.hasNext(); ) + List<String> sortedProjectLabels = TopologicalSorter.sort( dag ); + + for( String id : sortedProjectLabels ) { - String id = (String) i.next(); - sortedProjects.add( projectMap.get( id ) ); } this.sortedProjects = Collections.unmodifiableList( sortedProjects ); } - private void addEdgeWithParentCheck( Map projectMap, String projectRefId, MavenProject project, String id ) + private void addEdgeWithParentCheck( Map<String,MavenProject> projectMap, String projectRefId, MavenProject project, String id ) throws CycleDetectedException { MavenProject extProject = (MavenProject) projectMap.get( projectRefId ); @@ -220,7 +183,7 @@ return sortedProjects.size() > 1; } - List getDependents( String id ) + List<String> getDependents( String id ) { return dag.getParentLabels( id ); } Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Propchange: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Wed May 6 03:09:22 2009 @@ -0,0 +1,7 @@ +/maven/components/branches/MNG-3932-1/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:746145-746157 +/maven/components/branches/maven-2.0.10-RC/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:680477 +/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:679206,708871,720042,726541,727548,727998,728264,728940,729060,729738,729785,730631 +/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:739385,741841,747468,747683,748815,749612,766523,768817 +/maven/components/branches/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:738973-739966 +/maven/components/sisbell-plugin-manager/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:738757-738972 +/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/ProjectSorter.java:751453-767358,767708-768832 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=772039&r1=772038&r2=772039&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 6 03:09:22 2009 @@ -29,7 +29,6 @@ import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenSession; -import org.apache.maven.execution.ReactorManager; import org.apache.maven.lifecycle.mapping.LifecycleMapping; import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginExecution; @@ -89,9 +88,7 @@ public void execute( MavenSession session ) throws LifecycleExecutionException, MojoFailureException { - // TODO: This is dangerous, particularly when it's just a collection of loose-leaf projects being built - // within the same reactor (using an inclusion pattern to gather them up)... - MavenProject rootProject = session.getReactorManager().getTopLevelProject(); + MavenProject rootProject = session.getTopLevelProject(); List<String> goals = session.getGoals(); @@ -112,28 +109,23 @@ for ( MavenProject currentProject : session.getSortedProjects() ) { - if ( !session.getReactorManager().isBlackListed( currentProject ) ) - { - logger.info( "Building " + currentProject.getName() ); + logger.info( "Building " + currentProject.getName() ); - long buildStartTime = System.currentTimeMillis(); + long buildStartTime = System.currentTimeMillis(); - try - { - session.setCurrentProject( currentProject ); + try + { + session.setCurrentProject( currentProject ); - for ( String goal : goals ) - { - String target = currentProject.getId() + " ( " + goal + " )"; - executeGoalAndHandleFailures( goal, session, currentProject, buildStartTime, target ); - } - } - finally + for ( String goal : goals ) { - session.setCurrentProject( null ); + String target = currentProject.getId() + " ( " + goal + " )"; + executeGoalAndHandleFailures( goal, session, currentProject, buildStartTime, target ); } - - session.getReactorManager().registerBuildSuccess( currentProject, System.currentTimeMillis() - buildStartTime ); + } + finally + { + session.setCurrentProject( null ); } } } @@ -147,30 +139,9 @@ } catch ( LifecycleExecutionException e ) { - if ( handleExecutionFailure( session, project, e, task, buildStartTime ) ) - { - throw e; - } - } - } - - private boolean handleExecutionFailure( MavenSession session, MavenProject project, Exception e, String task, long buildStartTime ) - { - //TODO: we shouldn't be registering build failures with the reactor manager, it should be in the session. - ReactorManager rm = session.getReactorManager(); - - rm.registerBuildFailure( project, e, task, System.currentTimeMillis() - buildStartTime ); - - if ( ReactorManager.FAIL_FAST.equals( rm.getFailureBehavior() ) ) - { - return true; - } - else if ( ReactorManager.FAIL_AT_END.equals( rm.getFailureBehavior() ) ) - { - rm.blackList( project ); + //TODO: Look at the reactor manager failure behavior + throw e; } - // if NEVER, don't blacklist - return false; } private void executeGoal( String task, MavenSession session, MavenProject project ) Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original) +++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Wed May 6 03:09:22 2009 @@ -446,7 +446,8 @@ if ( mojo instanceof ContextEnabled ) { - Map<String, Object> pluginContext = session.getPluginContext( pluginDescriptor, project ); + //TODO: find somewhere better to put the plugin context. + Map<String, Object> pluginContext = null; if ( pluginContext != null ) { 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=772039&r1=772038&r2=772039&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 Wed May 6 03:09:22 2009 @@ -2058,18 +2058,6 @@ { setManagedVersionMap( new ManagedVersionMap( project.getManagedVersionMap() ) ); } - - /* - if ( project.getReleaseArtifactRepository() != null ) - { - setReleaseArtifactRepository( project.getReleaseArtifactRepository() ); - } - - if ( project.getSnapshotArtifactRepository() != null ) - { - setSnapshotArtifactRepository( project.getSnapshotArtifactRepository() ); - } - */ } private void addArtifactPath( Artifact a, List<String> list ) Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java (original) +++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java Wed May 6 03:09:22 2009 @@ -1,27 +1,14 @@ package org.apache.maven.cli; -import java.io.PrintWriter; -import java.io.StringWriter; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.Iterator; import java.util.Locale; import java.util.TimeZone; -import org.apache.maven.ProjectBuildFailureException; -import org.apache.maven.embedder.MavenEmbedderConsoleLogger; import org.apache.maven.embedder.MavenEmbedderLogger; import org.apache.maven.execution.ApplicationInformation; import org.apache.maven.execution.DefaultRuntimeInformation; -import org.apache.maven.execution.MavenExecutionRequest; -import org.apache.maven.execution.MavenExecutionResult; -import org.apache.maven.execution.ReactorManager; -import org.apache.maven.lifecycle.LifecycleExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.project.MavenProject; -import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.reactor.MavenExecutionException; import org.codehaus.plexus.util.Os; /** @@ -41,10 +28,6 @@ private static final String NEWLINE = System.getProperty( "line.separator" ); - private CLIReportingUtils() - { - } - static void showVersion() { ApplicationInformation ai = @@ -63,270 +46,6 @@ + "\" family: \"" + Os.OS_FAMILY + "\"" ); } - /** - * Logs result of the executed build. - * - * @param request - build parameters - * @param result - result of build - * @param logger - the logger to use - */ - public static void logResult( MavenExecutionRequest request, MavenExecutionResult result, MavenEmbedderLogger logger ) - { - ReactorManager reactorManager = result.getReactorManager(); - - logReactorSummary( reactorManager, logger ); - - boolean printSuccess = true; - if ( result.hasExceptions() ) - { - for ( Iterator i = result.getExceptions().iterator(); i.hasNext(); ) - { - Exception e = (Exception) i.next(); - - showError( e, request.isShowErrors(), logger ); - } - - line( logger ); - if ( !request.isShowErrors() ) - { - logger.info( "For more information, run with the -e flag" ); - line( logger ); - } - - if ( !ReactorManager.FAIL_NEVER.equals( request.getReactorFailureBehavior() ) ) - { - logger.info( "BUILD FAILED" ); - - line( logger ); - - stats( request.getStartTime(), logger ); - - line( logger ); - - printSuccess = false; - } - else - { - logger.info( " + Ignoring build failures" ); - } - } - - if ( printSuccess ) - { - line( logger ); - - logger.info( "BUILD SUCCESSFUL" ); - - line( logger ); - - stats( request.getStartTime(), logger ); - - line( logger ); - } - - logger.close(); - } - - static void showError( String message, Exception e, boolean showErrors ) - { - MavenEmbedderLogger logger = new MavenEmbedderConsoleLogger(); - - showError( message, e, showErrors, logger ); - - if ( !showErrors ) - { - logger.info( "For more information, run with the -e flag" ); - } - } - - private static void showError( Exception e, boolean show, MavenEmbedderLogger logger ) - { - showError( null, e, show, logger ); - } - - /** - * Format the exception and output it through the logger. - * - * @param message - error message - * @param e - exception that was thrown - * @param showStackTraces - * @param logger - */ - //mkleint: public because used in netbeans integration - public static void showError( String message, Exception e, boolean showStackTraces, MavenEmbedderLogger logger ) - { - StringWriter writer = new StringWriter(); - - writer.write( NEWLINE ); - - if ( message != null ) - { - writer.write( message ); - writer.write( NEWLINE ); - } - - buildErrorMessage( e, showStackTraces, writer ); - - writer.write( NEWLINE ); - - if ( showStackTraces ) - { - writer.write( "Error stacktrace:" ); - writer.write( NEWLINE ); - e.printStackTrace( new PrintWriter( writer ) ); - - } - - logger.error( writer.toString() ); - } - - public static void buildErrorMessage( Exception e, boolean showStackTraces, StringWriter writer ) - { - boolean handled = false; - - if ( e instanceof ProjectBuildingException ) - { - handled = handleProjectBuildingException( (ProjectBuildingException) e, showStackTraces, writer ); - } - if ( e instanceof ProjectBuildFailureException ) - { - handled = handleBuildFailureException( (ProjectBuildFailureException) e, showStackTraces, writer ); - } - else if ( e instanceof LifecycleExecutionException ) - { - handled = handleLifecycleExecutionException( (LifecycleExecutionException) e, showStackTraces, writer ); - } - else if ( e instanceof MavenExecutionException ) - { - - handled = handleMavenExecutionException( (MavenExecutionException) e, showStackTraces, writer ); - } - - if ( !handled ) - { - handleGenericException( e, showStackTraces, writer ); - } - } - - private static boolean handleMavenExecutionException( MavenExecutionException e, boolean showStackTraces, StringWriter writer ) - { - handleGenericException( e, showStackTraces, writer ); - - if ( e.getPomFile() != null ) - { - writer.write( NEWLINE ); - writer.write( NEWLINE ); - writer.write( "POM File: " ); - writer.write( e.getPomFile().getAbsolutePath() ); - writer.write( NEWLINE ); - writer.write( NEWLINE ); - } - - return true; - } - - private static void handleGenericException( Throwable exception, boolean showStackTraces, StringWriter writer ) - { - writer.write( exception.getMessage() ); - writer.write( NEWLINE ); - } - - private static boolean handleBuildFailureException( ProjectBuildFailureException e, boolean showStackTraces, StringWriter writer ) - { - MojoFailureException mojoFailureException = e.getMojoFailureException(); - writer.write( mojoFailureException.getMessage() ); - writer.write( mojoFailureException.getLongMessage() ); - return true; - } - - private static boolean handleLifecycleExecutionException( LifecycleExecutionException e, boolean showStackTraces, StringWriter writer ) - { - handleGenericException( e, showStackTraces, writer ); - - MavenProject project = e.getProject(); - - if(project != null) - { - writer.write( NEWLINE ); - writer.write( "While building project with id: " ); - writer.write( project.getId() ); - writer.write( NEWLINE ); - if ( project.getFile() != null ) - { - writer.write( "Project File: " ); - writer.write( project.getFile().getAbsolutePath() ); - } - writer.write( NEWLINE ); - } - - return true; - } - - private static boolean handleProjectBuildingException( ProjectBuildingException e, boolean showStackTraces, StringWriter writer ) - { - handleGenericException( e, showStackTraces, writer ); - - writer.write( NEWLINE ); - writer.write( "Failing project's id: " ); - writer.write( e.getProjectId() ); - writer.write( NEWLINE ); - if ( e.getPomFile() == null ) - { - writer.write( "Source: Super POM (implied root ancestor of all Maven POMs)" ); - } - else - { - writer.write( "Project File: " ); - writer.write( e.getPomFile().getAbsolutePath() ); - } - writer.write( NEWLINE ); - - return true; - } - - private static void logReactorSummary( ReactorManager rm, MavenEmbedderLogger logger ) - { - if ( ( rm != null ) && rm.hasMultipleProjects() && rm.executedMultipleProjects() ) - { - logger.info( "" ); - logger.info( "" ); - - // ------------------------- - // Reactor Summary: - // ------------------------- - // o project-name...........FAILED - // o project2-name..........SKIPPED (dependency build failed or was skipped) - // o project-3-name.........SUCCESS - - line( logger ); - logger.info( "Reactor Summary:" ); - line( logger ); - - for ( Iterator it = rm.getSortedProjects().iterator(); it.hasNext(); ) - { - MavenProject project = (MavenProject) it.next(); - - if ( rm.hasBuildFailure( project ) ) - { - logReactorSummaryLine( project.getName(), "FAILED", rm.getBuildFailure( project ).getTime(), logger ); - } - else if ( rm.isBlackListed( project ) ) - { - logReactorSummaryLine( project.getName(), "SKIPPED (dependency build failed or was skipped)", logger ); - } - else if ( rm.hasBuildSuccess( project ) ) - { - logReactorSummaryLine( project.getName(), "SUCCESS", rm.getBuildSuccess( project ).getTime(), logger ); - } - else - { - logReactorSummaryLine( project.getName(), "NOT BUILT", logger ); - } - } - line( logger ); - } - } - private static void stats( Date start, MavenEmbedderLogger logger ) { Date finish = new Date(); @@ -345,11 +64,6 @@ logger.info( "Final Memory: " + ( r.totalMemory() - r.freeMemory() ) / MB + "M/" + r.totalMemory() / MB + "M" ); } - private static void line( MavenEmbedderLogger logger ) - { - logger.info( "------------------------------------------------------------------------" ); - } - private static String formatTime( long ms ) { long secs = ms / MS_PER_SEC; @@ -384,44 +98,6 @@ return msg; } - private static void logReactorSummaryLine( String name, String status, MavenEmbedderLogger logger ) - { - logReactorSummaryLine( name, status, -1, logger ); - } - - private static void logReactorSummaryLine( String name, String status, long time, MavenEmbedderLogger logger ) - { - StringBuffer messageBuffer = new StringBuffer(); - - messageBuffer.append( name ); - - int dotCount = 54; - - dotCount -= name.length(); - - messageBuffer.append( " " ); - - for ( int i = 0; i < dotCount; i++ ) - { - messageBuffer.append( '.' ); - } - - messageBuffer.append( " " ); - - messageBuffer.append( status ); - - if ( time >= 0 ) - { - messageBuffer.append( " [" ); - - messageBuffer.append( getFormattedTime( time ) ); - - messageBuffer.append( "]" ); - } - - logger.info( messageBuffer.toString() ); - } - private static String getFormattedTime( long time ) { String pattern = "s.SSS's'"; 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=772039&r1=772038&r2=772039&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 Wed May 6 03:09:22 2009 @@ -132,14 +132,14 @@ if ( cvr.isUserSettingsFilePresent() && !cvr.isUserSettingsFileParses() ) { - CLIReportingUtils.showError( "Error reading user settings: ", cvr.getUserSettingsException(), showErrors ); + //TODO: CLIReportingUtils.showError( "Error reading user settings: ", cvr.getUserSettingsException(), showErrors ); return 1; } if ( cvr.isGlobalSettingsFilePresent() && !cvr.isGlobalSettingsFileParses() ) { - CLIReportingUtils.showError( "Error reading global settings: ", cvr.getGlobalSettingsException(), showErrors ); + //TODO: CLIReportingUtils.showError( "Error reading global settings: ", cvr.getGlobalSettingsException(), showErrors ); return 1; } @@ -160,7 +160,7 @@ } catch ( MavenEmbedderException e ) { - CLIReportingUtils.showError( "Unable to start the embedder: ", e, showErrors ); + //TODO: CLIReportingUtils.showError( "Unable to start the embedder: ", e, showErrors ); return 1; } Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original) +++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed May 6 03:09:22 2009 @@ -26,6 +26,8 @@ import java.util.List; import org.apache.maven.Maven; +import org.apache.maven.MavenExecutionException; +import org.apache.maven.MissingModuleException; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.embedder.execution.MavenExecutionRequestPopulator; import org.apache.maven.execution.DefaultMavenExecutionRequest; @@ -42,8 +44,6 @@ import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.MavenProjectBuildingResult; import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.reactor.MavenExecutionException; -import org.apache.maven.reactor.MissingModuleException; import org.apache.maven.repository.RepositorySystem; import org.apache.maven.settings.Settings; import org.apache.maven.settings.SettingsConfigurationException; Modified: maven/components/branches/MNG-2766/maven-toolchain/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-toolchain/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java?rev=772039&r1=772038&r2=772039&view=diff ============================================================================== --- maven/components/branches/MNG-2766/maven-toolchain/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java (original) +++ maven/components/branches/MNG-2766/maven-toolchain/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java Wed May 6 03:09:22 2009 @@ -36,9 +36,7 @@ @Component( role = ToolchainManager.class ) public class DefaultToolchainManager implements ToolchainManager - { - @Requirement Logger logger; @@ -86,9 +84,11 @@ desc.setArtifactId( PluginDescriptor.getDefaultPluginArtifactId( "toolchains" ) ); MavenProject current = session.getCurrentProject(); + if ( current != null ) { - context = session.getPluginContext( desc, current ); + //TODO: why is this using the context + //context = session.getPluginContext( desc, current ); } }