Author: krosenvold
Date: Sun Apr 18 11:36:37 2010
New Revision: 935334
URL: http://svn.apache.org/viewvc?rev=935334&view=rev
Log:
[MNG-4633] Reactor artifact resolution in weave mode
Resolves artifacts from within reactor build.
No longer requires artifacts to be present in local repository before building
weave mode ;)
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorImpl.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectSegment.java
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
Sun Apr 18 11:36:37 2010
@@ -42,7 +42,7 @@ import org.apache.maven.repository.Repos
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
-...@component(role=ProjectDependenciesResolver.class)
+...@component(role = ProjectDependenciesResolver.class)
public class DefaultProjectDependenciesResolver
implements ProjectDependenciesResolver
{
@@ -63,18 +63,31 @@ public class DefaultProjectDependenciesR
Collection<String> scopesToResolve,
MavenSession session )
throws ArtifactResolutionException, ArtifactNotFoundException
{
- return resolve( Collections.singleton( project ), scopesToCollect,
scopesToResolve, session );
+ Set<MavenProject> mavenProjects = Collections.singleton( project );
+ return resolveImpl( mavenProjects, scopesToCollect, scopesToResolve,
session,
+ getIgnorableArtifacts( mavenProjects ) );
}
public Set<Artifact> resolve( Collection<? extends MavenProject> projects,
Collection<String> scopesToResolve,
MavenSession session )
throws ArtifactResolutionException, ArtifactNotFoundException
{
- return resolve( projects, null, scopesToResolve, session );
+ return resolveImpl( projects, null, scopesToResolve, session,
getIgnorableArtifacts( projects ) );
}
- public Set<Artifact> resolve( Collection<? extends MavenProject> projects,
Collection<String> scopesToCollect,
- Collection<String> scopesToResolve,
MavenSession session )
+ public Set<Artifact> resolve( MavenProject project, Collection<String>
scopesToCollect,
+ Collection<String> scopesToResolve,
MavenSession session,
+ Set<Artifact> ignoreableArtifacts )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveImpl( Collections.singleton( project ), scopesToCollect,
scopesToResolve, session,
+ getIgnorableArtifacts( ignoreableArtifacts ) );
+ }
+
+
+ private Set<Artifact> resolveImpl( Collection<? extends MavenProject>
projects, Collection<String> scopesToCollect,
+ Collection<String> scopesToResolve,
MavenSession session,
+ Set<String> projectIds )
throws ArtifactResolutionException, ArtifactNotFoundException
{
Set<Artifact> resolved = new LinkedHashSet<Artifact>();
@@ -84,18 +97,18 @@ public class DefaultProjectDependenciesR
return resolved;
}
- if ( ( scopesToCollect == null || scopesToCollect.isEmpty() )
- && ( scopesToResolve == null || scopesToResolve.isEmpty() ) )
+ if ( ( scopesToCollect == null || scopesToCollect.isEmpty() ) &&
+ ( scopesToResolve == null || scopesToResolve.isEmpty() ) )
{
return resolved;
}
/*
-
+
Logic for transitve global exclusions
-
+
List<String> exclusions = new ArrayList<String>();
-
+
for ( Dependency d : project.getDependencies() )
{
if ( d.getExclusions() != null )
@@ -106,10 +119,10 @@ public class DefaultProjectDependenciesR
}
}
}
-
+
ArtifactFilter scopeFilter = new ScopeArtifactFilter( scope );
-
- ArtifactFilter filter;
+
+ ArtifactFilter filter;
if ( ! exclusions.isEmpty() )
{
@@ -118,7 +131,7 @@ public class DefaultProjectDependenciesR
else
{
filter = scopeFilter;
- }
+ }
*/
CumulativeScopeArtifactFilter resolutionScopeFilter = new
CumulativeScopeArtifactFilter( scopesToResolve );
@@ -126,22 +139,16 @@ public class DefaultProjectDependenciesR
CumulativeScopeArtifactFilter collectionScopeFilter = new
CumulativeScopeArtifactFilter( scopesToCollect );
collectionScopeFilter = new CumulativeScopeArtifactFilter(
collectionScopeFilter, resolutionScopeFilter );
- ArtifactResolutionRequest request = new ArtifactResolutionRequest()
- .setResolveRoot( false )
- .setResolveTransitively( true )
- .setCollectionFilter( collectionScopeFilter )
- .setResolutionFilter( resolutionScopeFilter )
- .setLocalRepository( session.getLocalRepository() )
- .setOffline( session.isOffline() )
- .setForceUpdate( session.getRequest().isUpdateSnapshots() )
- .setCache( session.getRepositoryCache() );
+ ArtifactResolutionRequest request =
+ new ArtifactResolutionRequest().setResolveRoot( false
).setResolveTransitively( true ).setCollectionFilter(
+ collectionScopeFilter ).setResolutionFilter(
resolutionScopeFilter ).setLocalRepository(
+ session.getLocalRepository() ).setOffline( session.isOffline()
).setForceUpdate(
+ session.getRequest().isUpdateSnapshots() ).setCache(
session.getRepositoryCache() );
request.setTransferListener(
session.getRequest().getTransferListener() );
request.setServers( session.getRequest().getServers() );
request.setMirrors( session.getRequest().getMirrors() );
request.setProxies( session.getRequest().getProxies() );
- Set<String> projectIds = null;
-
for ( MavenProject project : projects )
{
request.setArtifact( new ProjectArtifact( project ) );
@@ -157,16 +164,6 @@ public class DefaultProjectDependenciesR
}
catch ( MultipleArtifactsNotFoundException e )
{
- if ( projectIds == null )
- {
- projectIds = new HashSet<String>( projects.size() * 2 );
-
- for ( MavenProject p : projects )
- {
- String key = ArtifactUtils.key( p.getGroupId(),
p.getArtifactId(), p.getVersion() );
- projectIds.add( key );
- }
- }
Collection<Artifact> missing = new HashSet<Artifact>(
e.getMissingArtifacts() );
@@ -191,4 +188,29 @@ public class DefaultProjectDependenciesR
return resolved;
}
+
+ private Set<String> getIgnorableArtifacts( Collection<? extends
MavenProject> projects )
+ {
+ Set<String> projectIds = new HashSet<String>( projects.size() * 2 );
+
+ for ( MavenProject p : projects )
+ {
+ String key = ArtifactUtils.key( p.getGroupId(), p.getArtifactId(),
p.getVersion() );
+ projectIds.add( key );
+ }
+ return projectIds;
+ }
+
+ private Set<String> getIgnorableArtifacts( Iterable<Artifact>
artifactIterable )
+ {
+ Set<String> projectIds = new HashSet<String>();
+
+ for ( Artifact artifact : artifactIterable )
+ {
+ String key = ArtifactUtils.key( artifact );
+ projectIds.add( key );
+ }
+ return projectIds;
+ }
+
}
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
Sun Apr 18 11:36:37 2010
@@ -33,10 +33,10 @@ public interface ProjectDependenciesReso
/**
* Resolves the transitive dependencies of the specified project.
- *
- * @param project The project whose dependencies should be resolved, must
not be {...@code null}.
+ *
+ * @param project The project whose dependencies should be
resolved, must not be {...@code null}.
* @param scopesToResolve The dependency scopes that should be resolved,
may be {...@code null}.
- * @param session The current build session, must not be {...@code null}.
+ * @param session The current build session, must not be {...@code
null}.
* @return The transitive dependencies of the specified project that match
the requested scopes, never {...@code null}.
*/
public Set<Artifact> resolve( MavenProject project, Collection<String>
scopesToResolve, MavenSession session )
@@ -44,11 +44,11 @@ public interface ProjectDependenciesReso
/**
* Resolves the transitive dependencies of the specified project.
- *
- * @param project The project whose dependencies should be resolved, must
not be {...@code null}.
+ *
+ * @param project The project whose dependencies should be
resolved, must not be {...@code null}.
* @param scopesToCollect The dependency scopes that should be collected,
may be {...@code null}.
* @param scopesToResolve The dependency scopes that should be collected
and also resolved, may be {...@code null}.
- * @param session The current build session, must not be {...@code null}.
+ * @param session The current build session, must not be {...@code
null}.
* @return The transitive dependencies of the specified project that match
the requested scopes, never {...@code null}.
*/
public Set<Artifact> resolve( MavenProject project, Collection<String>
scopesToCollect,
@@ -56,14 +56,30 @@ public interface ProjectDependenciesReso
throws ArtifactResolutionException, ArtifactNotFoundException;
/**
+ * Resolves the transitive dependencies of the specified project.
+ *
+ * @param project The project whose dependencies should be
resolved, must not be {...@code null}.
+ * @param scopesToCollect The dependency scopes that should be
collected, may be {...@code null}.
+ * @param scopesToResolve The dependency scopes that should be
collected and also resolved, may be {...@code null}.
+ * @param session The current build session, must not be
{...@code null}.
+ * @param ignoreableArtifacts Artifacts that need not be resolved
+ * @return The transitive dependencies of the specified project that match
the requested scopes, never {...@code null}.
+ */
+ public Set<Artifact> resolve( MavenProject project, Collection<String>
scopesToCollect,
+ Collection<String> scopesToResolve,
MavenSession session,
+ Set<Artifact> ignoreableArtifacts )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+
+ /**
* Resolves the transitive dependencies of the specified projects. Note
that dependencies which can't be resolved
* from any repository but are present among the set of specified projects
will not cause an exception. Instead,
* those unresolved artifacts will be returned in the result set, allowing
the caller to take special care of
* artifacts that haven't been build yet.
- *
+ *
* @param projects The projects whose dependencies should be resolved, may
be {...@code null}.
- * @param scopes The dependency scopes that should be resolved, may be
{...@code null}.
- * @param session The current build session, must not be {...@code null}.
+ * @param scopes The dependency scopes that should be resolved, may be
{...@code null}.
+ * @param session The current build session, must not be {...@code null}.
* @return The transitive dependencies of the specified projects that
match the requested scopes, never {...@code null}
* .
*/
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuilderCommon.java
Sun Apr 18 11:36:37 2010
@@ -14,11 +14,15 @@
*/
package org.apache.maven.lifecycle.internal;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.BuildFailure;
import org.apache.maven.execution.ExecutionEvent;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
-import org.apache.maven.lifecycle.*;
+import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.lifecycle.LifecycleNotFoundException;
+import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException;
+import org.apache.maven.lifecycle.MavenExecutionPlan;
import org.apache.maven.plugin.*;
import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
@@ -27,6 +31,8 @@ import org.codehaus.plexus.classworlds.r
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
+import java.util.Set;
+
/**
* Common code that is shared by the LifecycleModuleBuilder and the
LifeCycleWeaveBuilder
*
@@ -63,7 +69,8 @@ public class BuilderCommon
this.lifecycleDependencyResolver = lifecycleDependencyResolver;
}
- public MavenExecutionPlan resolveBuildPlan( MavenSession session,
MavenProject project, TaskSegment taskSegment )
+ public MavenExecutionPlan resolveBuildPlan( MavenSession session,
MavenProject project, TaskSegment taskSegment,
+ Set<Artifact> projectArtifacts
)
throws PluginNotFoundException, PluginResolutionException,
LifecyclePhaseNotFoundException,
PluginDescriptorParsingException, MojoNotFoundException,
InvalidPluginDescriptorException,
NoPluginFoundForPrefixException, LifecycleNotFoundException,
PluginVersionResolutionException,
@@ -78,13 +85,14 @@ public class BuilderCommon
// this later by looking at the build plan. Would be better to just
batch download everything required
// by the reactor.
- lifecycleDependencyResolver.resolveDependencies(
taskSegment.isAggregating(), project, session, executionPlan );
+ lifecycleDependencyResolver.resolveDependencies(
taskSegment.isAggregating(), project, session, executionPlan,
+ projectArtifacts );
return executionPlan;
}
public void handleBuildError( final ReactorContext buildContext, final
MavenSession rootSession,
- final MavenProject mavenProject,
final Exception e, final long buildStartTime )
+ final MavenProject mavenProject, final
Exception e, final long buildStartTime )
{
buildContext.getResult().addException( e );
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
Sun Apr 18 11:36:37 2010
@@ -62,11 +62,12 @@ public class LifecycleDependencyResolver
}
public void resolveDependencies( boolean aggregating, MavenProject
currentProject,
- MavenSession sessionForThisModule,
MavenExecutionPlan executionPlan )
+ MavenSession sessionForThisModule,
MavenExecutionPlan executionPlan,
+ Set<Artifact> projectArtifacts )
throws LifecycleExecutionException
{
List<MavenProject> projectsToResolve = getProjects( currentProject,
sessionForThisModule, aggregating );
- resolveDependencies( aggregating, sessionForThisModule, executionPlan,
projectsToResolve );
+ resolveDependencies( aggregating, sessionForThisModule, executionPlan,
projectsToResolve, projectArtifacts );
}
public static List<MavenProject> getProjects( MavenProject project,
MavenSession session, boolean aggregator )
@@ -88,8 +89,8 @@ public class LifecycleDependencyResolver
if ( dependenctContext.isSameButUpdatedProject( session ) )
{
resolveProjectDependencies( dependenctContext.getLastProject(),
dependenctContext.getScopesToCollect(),
-
dependenctContext.getScopesToResolve(), session,
- dependenctContext.isAggregating() );
+
dependenctContext.getScopesToResolve(), session,
+ dependenctContext.isAggregating(),
new HashSet<Artifact>() );
}
dependenctContext.setLastProject( session.getCurrentProject() );
@@ -97,30 +98,25 @@ public class LifecycleDependencyResolver
}
private void resolveDependencies( boolean aggregating, MavenSession
session, MavenExecutionPlan executionPlan,
- List<MavenProject> projectsToResolve )
+ List<MavenProject> projectsToResolve,
Set<Artifact> projectArtifacts )
throws LifecycleExecutionException
{
for ( MavenProject project : projectsToResolve )
{
- resolveDependencies( project, aggregating, session, executionPlan
);
+ resolveProjectDependencies( project,
executionPlan.getRequiredCollectionScopes(),
+
executionPlan.getRequiredResolutionScopes(), session, aggregating,
+ projectArtifacts );
}
}
- private void resolveDependencies( MavenProject project, boolean
aggregating, MavenSession session,
- MavenExecutionPlan executionPlan )
- throws LifecycleExecutionException
- {
- resolveProjectDependencies( project,
executionPlan.getRequiredCollectionScopes(),
-
executionPlan.getRequiredResolutionScopes(), session, aggregating );
- }
-
private void resolveProjectDependencies( MavenProject project,
Collection<String> scopesToCollect,
- Collection<String>
scopesToResolve, MavenSession session,
- boolean aggregating )
+ Collection<String>
scopesToResolve, MavenSession session,
+ boolean aggregating,
Set<Artifact> projectArtifacts )
throws LifecycleExecutionException
{
Set<Artifact> artifacts =
- getProjectDependencies( project, scopesToCollect, scopesToResolve,
session, aggregating );
+ getProjectDependencies( project, scopesToCollect, scopesToResolve,
session, aggregating,
+ projectArtifacts );
updateProjectArtifacts( project, artifacts );
}
@@ -136,7 +132,7 @@ public class LifecycleDependencyResolver
private Set<Artifact> getProjectDependencies( MavenProject project,
Collection<String> scopesToCollect,
Collection<String>
scopesToResolve, MavenSession session,
- boolean aggregating )
+ boolean aggregating,
Set<Artifact> projectArtifacts )
throws LifecycleExecutionException
{
Set<Artifact> artifacts;
@@ -144,7 +140,8 @@ public class LifecycleDependencyResolver
{
try
{
- artifacts = projectDependenciesResolver.resolve( project,
scopesToCollect, scopesToResolve, session );
+ artifacts = projectDependenciesResolver.resolve( project ,
scopesToCollect,
+
scopesToResolve, session, projectArtifacts );
}
catch ( MultipleArtifactsNotFoundException e )
{
@@ -153,24 +150,7 @@ public class LifecycleDependencyResolver
* plugins that require dependency resolution although they
usually run in phases of the build where project
* artifacts haven't been assembled yet. The prime example of
this is "mvn release:prepare".
*/
- if ( aggregating && areAllArtifactsInReactor(
session.getProjects(), e.getMissingArtifacts() ) )
- {
- logger.warn( "The following artifacts could not be
resolved at this point of the build" +
- " but seem to be part of the reactor:" );
-
- for ( Artifact artifact : e.getMissingArtifacts() )
- {
- logger.warn( "o " + artifact.getId() );
- }
-
- logger.warn( "Try running the build up to the lifecycle
phase \"package\"" );
-
- artifacts = new LinkedHashSet<Artifact>(
e.getResolvedArtifacts() );
- }
- else
- {
- throw e;
- }
+ artifacts = handleException( session, aggregating, e );
}
return artifacts;
@@ -187,6 +167,36 @@ public class LifecycleDependencyResolver
}
+ private Set<Artifact> handleException( MavenSession session, boolean
aggregating,
+ MultipleArtifactsNotFoundException
e )
+ throws MultipleArtifactsNotFoundException
+ {
+ Set<Artifact> artifacts;/*
+ * MNG-2277, the check below compensates for our bad plugin support
where we ended up with aggregator
+ * plugins that require dependency resolution although they usually run
in phases of the build where project
+ * artifacts haven't been assembled yet. The prime example of this is
"mvn release:prepare".
+ */
+ if ( aggregating && areAllArtifactsInReactor( session.getProjects(),
e.getMissingArtifacts() ) )
+ {
+ logger.warn( "The following artifacts could not be resolved at
this point of the build" +
+ " but seem to be part of the reactor:" );
+
+ for ( Artifact artifact : e.getMissingArtifacts() )
+ {
+ logger.warn( "o " + artifact.getId() );
+ }
+
+ logger.warn( "Try running the build up to the lifecycle phase
\"package\"" );
+
+ artifacts = new LinkedHashSet<Artifact>( e.getResolvedArtifacts()
);
+ }
+ else
+ {
+ throw e;
+ }
+ return artifacts;
+ }
+
private Set<Artifact> getDependencyArtifacts( MavenProject project,
Set<Artifact> artifacts )
{
Set<String> directDependencies = new HashSet<String>(
project.getDependencies().size() * 2 );
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorImpl.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorImpl.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorImpl.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorImpl.java
Sun Apr 18 11:36:37 2010
@@ -86,27 +86,61 @@ public class LifecycleExecutionPlanCalcu
Set<String> requiredDependencyResolutionScopes = new TreeSet<String>();
Set<String> requiredDependencyCollectionScopes = new TreeSet<String>();
- final List<MojoExecution> executions =
- calculateExecutionPlan( session, project, tasks,
requiredDependencyResolutionScopes,
- requiredDependencyCollectionScopes );
+ lifecyclePluginResolver.resolveMissingPluginVersions( project, session
);
+
+ final List<MojoExecution> executions = calculateMojoExecutions(
session, project, tasks );
+
+ setupMojoExections( session, project,
requiredDependencyResolutionScopes, requiredDependencyCollectionScopes,
+ executions );
+
final List<ExecutionPlanItem> planItem =
defaultLifeCycles.createExecutionPlanItem( project, executions );
- return new MavenExecutionPlan( requiredDependencyResolutionScopes,
requiredDependencyCollectionScopes,
- planItem, defaultLifeCycles );
+ return new MavenExecutionPlan( requiredDependencyResolutionScopes,
requiredDependencyCollectionScopes, planItem,
+ defaultLifeCycles );
}
- public List<MojoExecution> calculateExecutionPlan( MavenSession session,
MavenProject project, List<Object> tasks,
- Set<String>
requiredDependencyResolutionScopes,
- Set<String>
requiredDependencyCollectionScopes )
- throws PluginNotFoundException, PluginResolutionException,
LifecyclePhaseNotFoundException,
- PluginDescriptorParsingException, MojoNotFoundException,
InvalidPluginDescriptorException,
- NoPluginFoundForPrefixException, LifecycleNotFoundException,
PluginVersionResolutionException
+ private void setupMojoExections( MavenSession session, MavenProject
project,
+ Set<String>
requiredDependencyResolutionScopes,
+ Set<String>
requiredDependencyCollectionScopes,
+ List<MojoExecution> mojoExecutions )
+ throws PluginNotFoundException, PluginResolutionException,
PluginDescriptorParsingException,
+ MojoNotFoundException, InvalidPluginDescriptorException,
NoPluginFoundForPrefixException,
+ LifecyclePhaseNotFoundException, LifecycleNotFoundException,
PluginVersionResolutionException
{
- lifecyclePluginResolver.resolveMissingPluginVersions( project, session
);
+ for ( MojoExecution mojoExecution : mojoExecutions )
+ {
+ MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
- List<MojoExecution> mojoExecutions = new ArrayList<MojoExecution>();
+ if ( mojoDescriptor == null )
+ {
+ mojoDescriptor = pluginManager.getMojoDescriptor(
mojoExecution.getPlugin(), mojoExecution.getGoal(),
+
DefaultRepositoryRequest.getRepositoryRequest(
+ session,
project ) );
+
+ mojoExecution.setMojoDescriptor( mojoDescriptor );
+ }
+
+ populateMojoExecutionConfiguration( project, mojoExecution,
+
MojoExecution.Source.CLI.equals( mojoExecution.getSource() ) );
+
+ finalizeMojoConfiguration( mojoExecution );
+
+ calculateForkedExecutions( mojoExecution, session, project, new
HashSet<MojoDescriptor>() );
+
+ collectDependencyRequirements( requiredDependencyResolutionScopes,
requiredDependencyCollectionScopes,
+ mojoExecution );
+ }
+ }
+
+ private List<MojoExecution> calculateMojoExecutions( MavenSession session,
MavenProject project,
+ List<Object> tasks )
+ throws PluginNotFoundException, PluginResolutionException,
PluginDescriptorParsingException,
+ MojoNotFoundException, NoPluginFoundForPrefixException,
InvalidPluginDescriptorException,
+ PluginVersionResolutionException, LifecyclePhaseNotFoundException
+ {
+ final List<MojoExecution> mojoExecutions = new
ArrayList<MojoExecution>();
for ( Object task : tasks )
{
@@ -138,31 +172,6 @@ public class LifecycleExecutionPlanCalcu
throw new IllegalStateException( "unexpected task " + task );
}
}
-
- for ( MojoExecution mojoExecution : mojoExecutions )
- {
- MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
-
- if ( mojoDescriptor == null )
- {
- mojoDescriptor = pluginManager.getMojoDescriptor(
mojoExecution.getPlugin(), mojoExecution.getGoal(),
-
DefaultRepositoryRequest.getRepositoryRequest(
- session,
project ) );
-
- mojoExecution.setMojoDescriptor( mojoDescriptor );
- }
-
- populateMojoExecutionConfiguration( project, mojoExecution,
-
MojoExecution.Source.CLI.equals( mojoExecution.getSource() ) );
-
- finalizeMojoConfiguration( mojoExecution );
-
- calculateForkedExecutions( mojoExecution, session, project, new
HashSet<MojoDescriptor>() );
-
- collectDependencyRequirements( requiredDependencyResolutionScopes,
requiredDependencyCollectionScopes,
- mojoExecution );
- }
-
return mojoExecutions;
}
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
Sun Apr 18 11:36:37 2010
@@ -15,6 +15,7 @@
package org.apache.maven.lifecycle.internal;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.BuildSuccess;
import org.apache.maven.execution.ExecutionEvent;
import org.apache.maven.execution.MavenSession;
@@ -23,6 +24,8 @@ import org.apache.maven.project.MavenPro
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
+import java.util.HashSet;
+
/**
* Builds one or more lifecycles for a full module
*
@@ -72,7 +75,8 @@ public class LifecycleModuleBuilder
eventCatapult.fire( ExecutionEvent.Type.ProjectStarted, session,
null );
BuilderCommon.attachToThread( currentProject );
- MavenExecutionPlan executionPlan = builderCommon.resolveBuildPlan(
session, currentProject, taskSegment );
+ MavenExecutionPlan executionPlan =
+ builderCommon.resolveBuildPlan( session, currentProject,
taskSegment, new HashSet<Artifact>() );
DependencyContext dependencyContext = new DependencyContext(
executionPlan, isAggregating );
mojoExecutor.execute( session, executionPlan.getMojoExecutions(),
reactorContext.getProjectIndex(),
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilder.java
Sun Apr 18 11:36:37 2010
@@ -29,8 +29,8 @@ import org.codehaus.plexus.component.ann
import org.codehaus.plexus.logging.Logger;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -73,13 +73,9 @@ public class LifecycleWeaveBuilder
private Logger logger;
@Requirement
- private LifecycleDependencyResolver lifecycleDependencyResolver;
-
- @Requirement
private ExecutionEventCatapult eventCatapult;
- private final Map<MavenProject, MavenExecutionPlan> executionPlans =
- Collections.synchronizedMap( new HashMap<MavenProject,
MavenExecutionPlan>() );
+ private Map<MavenProject, MavenExecutionPlan> executionPlans = new
HashMap<MavenProject, MavenExecutionPlan>( );
@SuppressWarnings({"UnusedDeclaration"})
@@ -87,9 +83,8 @@ public class LifecycleWeaveBuilder
{
}
- public LifecycleWeaveBuilder( MojoExecutor mojoExecutor, BuilderCommon
builderCommon, Logger logger,
- LifecycleDependencyResolver
lifecycleDependencyResolver,
- ExecutionEventCatapult eventCatapult )
+ public LifecycleWeaveBuilder(MojoExecutor mojoExecutor, BuilderCommon
builderCommon, Logger logger,
+ ExecutionEventCatapult eventCatapult)
{
this.mojoExecutor = mojoExecutor;
this.builderCommon = builderCommon;
@@ -110,14 +105,32 @@ public class LifecycleWeaveBuilder
for ( TaskSegment taskSegment : taskSegments )
{
ProjectBuildList segmentChunks =
projectBuilds.getByTaskSegment( taskSegment );
- ThreadOutputMuxer muxer = null; // new ThreadOutputMuxer(
segmentChunks, System.out );
+ ThreadOutputMuxer muxer = null; // new ThreadOutputMuxer(
segmentChunks, System.out );
+ Set<String> projectArtifacts = new HashSet<String>();
+ Set<Artifact> projectArtifactsA = new HashSet<Artifact>();
+ for (ProjectSegment segmentChunk : segmentChunks) {
+ Artifact artifact =
segmentChunk.getProject().getArtifact();
+ if (artifact != null) {
+ projectArtifacts.add( ArtifactUtils.key(artifact));
+ projectArtifactsA.add( artifact);
+ }
+ }
for ( ProjectSegment projectBuild : segmentChunks )
{
try
{
MavenExecutionPlan executionPlan =
builderCommon.resolveBuildPlan(
projectBuild.getSession(), projectBuild.getProject(),
-
projectBuild.getTaskSegment() );
+
projectBuild.getTaskSegment(), projectArtifactsA );
+ for (Artifact dependency :
projectBuild.getProject().getDependencyArtifacts()) {
+ String s = ArtifactUtils.key(dependency);
+ if ( projectArtifacts.contains(s)){
+ dependency.setFile( null);
+ dependency.setResolved( false);
+ dependency.setRepository( null);
+ }
+ }
+
executionPlans.put( projectBuild.getProject(),
executionPlan );
DependencyContext dependencyContext =
new DependencyContext( executionPlan,
projectBuild.getTaskSegment().isAggregating() );
@@ -182,8 +195,7 @@ public class LifecycleWeaveBuilder
try
{
- while ( current != null && !reactorBuildStatus.isHalted()
&&
- !reactorBuildStatus.isBlackListed(
projectBuild.getProject() ) )
+ while (current != null &&
!reactorBuildStatus.isHaltedOrBlacklisted( projectBuild.getProject() ))
{
PhaseRecorder phaseRecorder = new PhaseRecorder(
projectBuild.getProject() );
@@ -191,19 +203,7 @@ public class LifecycleWeaveBuilder
concurrentBuildLogger.createBuildLogItem(
projectBuild.getProject(), current );
final Schedule schedule = current.getSchedule();
- if ( schedule != null && schedule.isMojoSynchronized()
)
- {
- synchronized ( current.getPlugin() )
- {
- buildExecutionPlanItem( reactorContext,
current, projectBuild, dependencyContext,
- phaseRecorder );
- }
- }
- else
- {
- buildExecutionPlanItem( reactorContext, current,
projectBuild, dependencyContext,
- phaseRecorder );
- }
+ buildExecutionPlanItem(current, phaseRecorder,
schedule, reactorContext, projectBuild, dependencyContext);
current.setComplete();
builtLogItem.setComplete();
@@ -212,62 +212,12 @@ public class LifecycleWeaveBuilder
if ( nextPlanItem != null )
{
- boolean mustReResolved = false;
-
final Schedule scheduleOfNext =
nextPlanItem.getSchedule();
if ( scheduleOfNext == null ||
!scheduleOfNext.isParallel() )
{
- for ( MavenProject upstreamProject :
projectBuild.getImmediateUpstreamProjects() )
- {
- final MavenExecutionPlan upstreamPlan =
executionPlans.get( upstreamProject );
- final String nextPhase =
nextPlanItem.getLifecyclePhase();
- final ExecutionPlanItem inSchedule =
upstreamPlan.findLastInPhase( nextPhase );
-
- if ( inSchedule != null )
- {
- if (
upstreamPhaseModifiesArtifactResolutionState( inSchedule ) )
- {
- String key = ArtifactUtils.key(
upstreamProject.getGroupId(),
-
upstreamProject.getArtifactId(),
-
upstreamProject.getVersion() );
- final Set<Artifact> deps =
-
projectBuild.getProject().getDependencyArtifacts();
- for ( Artifact dep : deps )
- {
- String depKey =
- ArtifactUtils.key(
dep.getGroupId(), dep.getArtifactId(),
-
dep.getVersion() );
- if ( key.equals( depKey ) )
- {
- dep.setResolved( false );
- mustReResolved = true;
- }
- }
- }
- long startWait =
System.currentTimeMillis();
- inSchedule.waitUntilDone();
- builtLogItem.addWait( upstreamProject,
inSchedule, startWait );
- }
- else if ( !upstreamPlan.containsPhase(
nextPhase ) )
- {
- // Still a bit of a kludge; if we
cannot connect in a sensible way to
- // the upstream build plan we just
revert to waiting for it all to
- // complete. Real problem is per-mojo
phase->lifecycle mapping
- builtLogItem.addDependency(
upstreamProject, "No phase tracking possible " );
- upstreamPlan.waitUntilAllDone();
- }
- else
- {
- builtLogItem.addDependency(
upstreamProject, "No schedule" );
- }
- }
- }
- if ( mustReResolved )
- {
-
lifecycleDependencyResolver.resolveDependencies( false,
projectBuild.getProject(),
-
projectBuild.getSession(),
-
executionPlan );
+
waitForAppropriateUpstreamExecutionsToFinish(builtLogItem, nextPlanItem,
projectBuild);
}
+ reResolveReactorDependencies(nextPlanItem,
projectBuild);
}
current = nextPlanItem;
}
@@ -293,15 +243,139 @@ public class LifecycleWeaveBuilder
}
return null;
}
+
};
}
- private boolean upstreamPhaseModifiesArtifactResolutionState(
ExecutionPlanItem inSchedule )
+ private void reResolveReactorDependencies(ExecutionPlanItem nextPlanItem,
ProjectSegment projectBuild) {
+ if ( requiresReResolutionOfUpstreamReactorArtifacts( nextPlanItem ) )
+ {
+ reresolveUpstreamProjectArtifacts(projectBuild);
+ }
+ else if (requiresReResolutionOfUpstreamTestScopedReactorArtifacts(
nextPlanItem))
+ {
+ reresolveUpstreamTestScopedArtifacts( projectBuild);
+ }
+ }
+
+ private void waitForAppropriateUpstreamExecutionsToFinish(BuildLogItem
builtLogItem, ExecutionPlanItem nextPlanItem, ProjectSegment projectBuild)
throws InterruptedException {
+ for ( MavenProject upstreamProject :
projectBuild.getImmediateUpstreamProjects() )
+ {
+ final MavenExecutionPlan upstreamPlan = executionPlans.get(
upstreamProject );
+ final String nextPhase = nextPlanItem.getLifecyclePhase();
+ final ExecutionPlanItem inSchedule = upstreamPlan.findLastInPhase(
nextPhase );
+
+ if ( inSchedule != null )
+ {
+ long startWait = System.currentTimeMillis();
+ inSchedule.waitUntilDone();
+ builtLogItem.addWait( upstreamProject, inSchedule, startWait );
+ }
+ else if ( !upstreamPlan.containsPhase( nextPhase ) )
+ {
+ // Still a bit of a kludge; if we cannot connect in a sensible
way to
+ // the upstream build plan we just revert to waiting for it
all to
+ // complete. Real problem is per-mojo phase->lifecycle mapping
+ builtLogItem.addDependency( upstreamProject, "No phase
tracking possible " );
+ upstreamPlan.waitUntilAllDone();
+ }
+ else
+ {
+ builtLogItem.addDependency( upstreamProject, "No schedule" );
+ }
+ }
+ }
+
+ private void reresolveUpstreamProjectArtifacts(ProjectSegment
projectBuild) {
+ for ( MavenProject upstreamProject :
projectBuild.getTransitiveUpstreamProjects() ){
+ Artifact upStreamArtifact = upstreamProject.getArtifact();
+ Artifact dependencyArtifact =
findDependency(projectBuild.getProject(), upStreamArtifact);
+ if (dependencyArtifact != null){
+ dependencyArtifact.setFile( upStreamArtifact.getFile());
+ dependencyArtifact.setResolved( true );
+ dependencyArtifact.setRepository(
upStreamArtifact.getRepository());
+ }
+
+ }
+ }
+
+ private void reresolveUpstreamTestScopedArtifacts(ProjectSegment
projectBuild) {
+ for ( MavenProject upstreamProject :
projectBuild.getTransitiveUpstreamProjects() ){
+ Artifact upStreamArtifact =
findTestScopedArtifact(upstreamProject);
+ Artifact dependencyArtifact =
findDependency(projectBuild.getProject(), upStreamArtifact);
+ if (dependencyArtifact != null){
+ dependencyArtifact.setFile( upStreamArtifact.getFile());
+ dependencyArtifact.setResolved( upStreamArtifact.isResolved());
+ dependencyArtifact.setRepository(
upStreamArtifact.getRepository());
+ }
+
+ }
+ }
+
+ private Artifact findTestScopedArtifact(MavenProject upstreamProject) {
+ if ( upstreamProject == null){
+ return null;
+ }
+
+ List<Artifact> artifactList = upstreamProject.getAttachedArtifacts();
+ for (Artifact artifact : artifactList) {
+ if (Artifact.SCOPE_TEST.equals( artifact.getScope())){
+ return artifact;
+ }
+ }
+ return null;
+ }
+
+ private static Artifact findDependency(MavenProject project, Artifact
upStreamArtifact) {
+ if (upStreamArtifact == null){
+ return null;
+ }
+
+ String key = ArtifactUtils.key( upStreamArtifact.getGroupId(),
+ upStreamArtifact.getArtifactId(),
+ upStreamArtifact.getVersion() );
+ final Set<Artifact> deps = project.getDependencyArtifacts();
+ for ( Artifact dep : deps )
+ {
+ String depKey = ArtifactUtils.key(dep.getGroupId(),
dep.getArtifactId(), dep.getVersion());
+ if ( key.equals( depKey ) )
+ {
+ return dep;
+ }
+ }
+ return null;
+
+ }
+
+ private boolean requiresReResolutionOfUpstreamReactorArtifacts(
ExecutionPlanItem nextExecutionPlanItem )
{
- final String phase = inSchedule.getLifecyclePhase();
- return "install".equals( phase ) || "compile".equals( phase ) ||
"test-compile".equals( phase );
+ final String phase = nextExecutionPlanItem.getLifecyclePhase();
+ return "package".equals(phase) || "install".equals( phase ) ||
"compile".equals( phase );
}
+ private boolean requiresReResolutionOfUpstreamTestScopedReactorArtifacts(
ExecutionPlanItem nextExecutionPlanItem )
+ {
+ final String phase = nextExecutionPlanItem.getLifecyclePhase();
+ return "package".equals(phase) || "install".equals( phase ) ||
"compile".equals( phase ) || "test-compile".equals( phase );
+ }
+
+ private void buildExecutionPlanItem(ExecutionPlanItem current,
PhaseRecorder phaseRecorder, Schedule schedule, ReactorContext reactorContext,
ProjectSegment projectBuild, DependencyContext dependencyContext) throws
LifecycleExecutionException {
+ if ( schedule != null && schedule.isMojoSynchronized() )
+ {
+ synchronized ( current.getPlugin() )
+ {
+ buildExecutionPlanItem( reactorContext, current, projectBuild,
dependencyContext,
+ phaseRecorder );
+ }
+ }
+ else
+ {
+ buildExecutionPlanItem( reactorContext, current, projectBuild,
dependencyContext,
+ phaseRecorder );
+ }
+ }
+
+
private void buildExecutionPlanItem( ReactorContext reactorContext,
ExecutionPlanItem node,
ProjectSegment projectBuild,
DependencyContext dependencyContext,
PhaseRecorder phaseRecorder )
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectSegment.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectSegment.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectSegment.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectSegment.java
Sun Apr 18 11:36:37 2010
@@ -53,12 +53,18 @@ public final class ProjectSegment
private final MavenSession session;
+ private final List<MavenProject> nonTransitiveUpstreamProjects;
+
+ private final List<MavenProject> transitiveUpstreamProjects;
public ProjectSegment( MavenProject project, TaskSegment taskSegment,
MavenSession copiedSession )
{
this.project = project;
this.taskSegment = taskSegment;
this.session = copiedSession;
+ final ProjectDependencyGraph dependencyGraph =
getSession().getProjectDependencyGraph();
+ nonTransitiveUpstreamProjects = dependencyGraph.getUpstreamProjects(
getProject(), false );
+ transitiveUpstreamProjects = dependencyGraph.getUpstreamProjects(
getProject(), true );
}
public MavenSession getSession()
@@ -78,8 +84,12 @@ public final class ProjectSegment
public List<MavenProject> getImmediateUpstreamProjects()
{
- final ProjectDependencyGraph dependencyGraph =
getSession().getProjectDependencyGraph();
- return dependencyGraph.getUpstreamProjects( getProject(), false );
+ return nonTransitiveUpstreamProjects;
+ }
+
+ public List<MavenProject> getTransitiveUpstreamProjects()
+ {
+ return transitiveUpstreamProjects;
}
@Override
Modified:
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
Sun Apr 18 11:36:37 2010
@@ -16,6 +16,7 @@
package org.apache.maven.lifecycle.internal;
import junit.framework.TestCase;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.MavenExecutionPlan;
import
org.apache.maven.lifecycle.internal.stub.LifecycleExecutionPlanCalculatorStub;
@@ -23,6 +24,8 @@ import org.apache.maven.lifecycle.intern
import
org.apache.maven.lifecycle.internal.stub.ProjectDependenciesResolverStub;
import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub;
+import java.util.HashSet;
+
/**
* @author Kristian Rosenvold
*/
@@ -40,7 +43,8 @@ public class BuilderCommonTest
final BuilderCommon builderCommon = getBuilderCommon();
final MavenExecutionPlan plan =
- builderCommon.resolveBuildPlan( session1,
ProjectDependencyGraphStub.A, taskSegment1 );
+ builderCommon.resolveBuildPlan( session1,
ProjectDependencyGraphStub.A, taskSegment1,
+ new HashSet<Artifact>() );
assertEquals(
LifecycleExecutionPlanCalculatorStub.getProjectAExceutionPlan().size(),
plan.size() );
}
Modified:
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleWeaveBuilderTest.java
Sun Apr 18 11:36:37 2010
@@ -122,8 +122,7 @@ public class LifecycleWeaveBuilderTest
final LoggerStub loggerStub = new LoggerStub();
final LifecycleDependencyResolver lifecycleDependencyResolver =
new LifecycleDependencyResolver( new
ProjectDependenciesResolverStub(), loggerStub );
- return new LifecycleWeaveBuilder( mojoExecutor, builderCommon,
loggerStub, lifecycleDependencyResolver,
- new ExecutionEventCatapultStub() );
+ return new LifecycleWeaveBuilder( mojoExecutor, builderCommon,
loggerStub, new ExecutionEventCatapultStub() );
}
private BuilderCommon getBuilderCommon()
Modified:
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
(original)
+++
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
Sun Apr 18 11:36:37 2010
@@ -51,4 +51,12 @@ public class ProjectDependenciesResolver
{
return new HashSet<Artifact>();
}
+
+ public Set<Artifact> resolve( MavenProject project, Collection<String>
scopesToCollect,
+ Collection<String> scopesToResolve,
MavenSession session,
+ Set<Artifact> ignoreableArtifacts )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return new HashSet<Artifact>();
+ }
}
Modified:
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java?rev=935334&r1=935333&r2=935334&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java
(original)
+++
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java
Sun Apr 18 11:36:37 2010
@@ -190,10 +190,10 @@ public class ProjectDependencyGraphStub
public List<MavenProject> getUpstreamProjects( MavenProject project,
boolean transitive )
{
- if ( transitive )
+ /* if ( transitive )
{
throw new RuntimeException( "Not implemented yet" );
- }
+ }*/
List<MavenProject> result = new ArrayList<MavenProject>();
final List<Dependency> dependencies = getDependencies();
for ( Dependency dependency : dependencies )