You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/08/31 00:28:17 UTC
svn commit: r809431 - in /maven/components/trunk:
maven-compat/src/main/java/org/apache/maven/artifact/resolver/
maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/
maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/o...
Author: bentmann
Date: Sun Aug 30 22:28:16 2009
New Revision: 809431
URL: http://svn.apache.org/viewvc?rev=809431&view=rev
Log:
[MNG-4331] Add new mojo annotation @requiresDependencyCollection to grab dependency tree without files
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/AbstractScopeArtifactFilter.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
maven/components/trunk/maven-plugin-api/src/test/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilderTest.java
maven/components/trunk/maven-plugin-api/src/test/resources/plugin.xml
Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java Sun Aug 30 22:28:16 2009
@@ -54,7 +54,9 @@
private RepositoryCache cache;
- private ArtifactFilter filter;
+ private ArtifactFilter collectionFilter;
+
+ private ArtifactFilter resolutionFilter;
// Needs to go away
private List<ResolutionListener> listeners = new ArrayList<ResolutionListener>();
@@ -131,14 +133,39 @@
return this;
}
- public ArtifactFilter getFilter()
+ /**
+ * Gets the artifact filter that controls traversal of the dependency graph.
+ *
+ * @return The filter used to determine which of the artifacts in the dependency graph should be traversed or
+ * {@code null} to collect all transitive dependencies.
+ */
+ public ArtifactFilter getCollectionFilter()
+ {
+ return collectionFilter;
+ }
+
+ public ArtifactResolutionRequest setCollectionFilter( ArtifactFilter filter )
+ {
+ this.collectionFilter = filter;
+
+ return this;
+ }
+
+ /**
+ * Gets the artifact filter that controls downloading of artifact files. This filter operates on those artifacts
+ * that have been included by the {@link #getCollectionFilter()}.
+ *
+ * @return The filter used to determine which of the artifacts should have their files resolved or {@code null} to
+ * resolve the files for all collected artifacts.
+ */
+ public ArtifactFilter getResolutionFilter()
{
- return filter;
+ return resolutionFilter;
}
- public ArtifactResolutionRequest setFilter( ArtifactFilter filter )
+ public ArtifactResolutionRequest setResolutionFilter( ArtifactFilter filter )
{
- this.filter = filter;
+ this.resolutionFilter = filter;
return this;
}
Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Sun Aug 30 22:28:16 2009
@@ -339,7 +339,7 @@
.setManagedVersionMap( managedVersions )
.setLocalRepository( localRepository )
.setRemoteRepositories( remoteRepositories )
- .setFilter( filter )
+ .setCollectionFilter( filter )
.setListeners( listeners );
return resolveWithExceptions( request );
@@ -379,7 +379,8 @@
Set<Artifact> artifacts = request.getArtifactDependencies();
Map managedVersions = request.getManagedVersionMap();
List<ResolutionListener> listeners = request.getListeners();
- ArtifactFilter filter = request.getFilter();
+ ArtifactFilter collectionFilter = request.getCollectionFilter();
+ ArtifactFilter resolutionFilter = request.getResolutionFilter();
//TODO: hack because metadata isn't generated in m2e correctly and i want to run the maven i have in the workspace
if ( source == null )
@@ -489,7 +490,9 @@
}
// After the collection we will have the artifact object in the result but they will not be resolved yet.
- result = artifactCollector.collect( artifacts, rootArtifact, managedVersions, request, source, filter, listeners, null );
+ result =
+ artifactCollector.collect( artifacts, rootArtifact, managedVersions, request, source, collectionFilter,
+ listeners, null );
// We have metadata retrieval problems, or there are cycles that have been detected
// so we give this back to the calling code and let them deal with this information
@@ -506,7 +509,10 @@
{
try
{
- resolve( artifact, request, request.getTransferListener(), false );
+ if ( resolutionFilter == null || resolutionFilter.include( artifact ) )
+ {
+ resolve( artifact, request, request.getTransferListener(), false );
+ }
}
catch ( ArtifactNotFoundException anfe )
{
Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/AbstractScopeArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/AbstractScopeArtifactFilter.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/AbstractScopeArtifactFilter.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/AbstractScopeArtifactFilter.java Sun Aug 30 22:28:16 2009
@@ -41,7 +41,7 @@
private boolean systemScope;
- void addScope( String scope )
+ void addScopeInternal( String scope )
{
if ( Artifact.SCOPE_COMPILE.equals( scope ) )
{
Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java Sun Aug 30 22:28:16 2009
@@ -48,10 +48,31 @@
{
this.scopes = new HashSet<String>();
- if ( scopes != null )
+ addScopes( scopes );
+ }
+
+ /**
+ * Creates a new filter that combines the specified filters.
+ *
+ * @param filters The filters to combine, may be {@code null}.
+ */
+ public CumulativeScopeArtifactFilter( CumulativeScopeArtifactFilter... filters )
+ {
+ this.scopes = new HashSet<String>();
+
+ if ( filters != null )
{
- this.scopes.addAll( scopes );
+ for ( CumulativeScopeArtifactFilter filter : filters )
+ {
+ addScopes( filter.getScopes() );
+ }
+ }
+ }
+ private void addScopes( Collection<String> scopes )
+ {
+ if ( scopes != null )
+ {
for ( String scope : scopes )
{
addScope( scope );
@@ -59,6 +80,13 @@
}
}
+ private void addScope( String scope )
+ {
+ this.scopes.add( scope );
+
+ addScopeInternal( scope );
+ }
+
public Set<String> getScopes()
{
return scopes;
Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java Sun Aug 30 22:28:16 2009
@@ -35,7 +35,7 @@
{
this.scope = scope;
- addScope( scope );
+ addScopeInternal( scope );
}
public String getScope()
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java Sun Aug 30 22:28:16 2009
@@ -34,7 +34,6 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException;
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
@@ -54,16 +53,30 @@
@Requirement
private ResolutionErrorHandler resolutionErrorHandler;
- public Set<Artifact> resolve( MavenProject project, Collection<String> scopes, MavenSession session )
+ public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToResolve, MavenSession session )
throws ArtifactResolutionException, ArtifactNotFoundException
{
- return resolve( Collections.singleton( project ), scopes, session );
+ return resolve( Collections.singleton( project ), scopesToResolve, session );
}
- public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Collection<String> scopes,
+ public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToCollect,
+ Collection<String> scopesToResolve, MavenSession session )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolve( Collections.singleton( project ), scopesToCollect, scopesToResolve, session );
+ }
+
+ public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Collection<String> scopesToResolve,
MavenSession session )
throws ArtifactResolutionException, ArtifactNotFoundException
{
+ return resolve( projects, null, scopesToResolve, session );
+ }
+
+ public Set<Artifact> resolve( Collection<? extends MavenProject> projects, Collection<String> scopesToCollect,
+ Collection<String> scopesToResolve, MavenSession session )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
Set<Artifact> resolved = new LinkedHashSet<Artifact>();
if ( projects == null || projects.isEmpty() )
@@ -102,14 +115,16 @@
}
*/
- ArtifactFilter scopeFilter = new CumulativeScopeArtifactFilter( scopes );
+ CumulativeScopeArtifactFilter resolutionScopeFilter = new CumulativeScopeArtifactFilter( scopesToResolve );
- ArtifactFilter filter = scopeFilter;
+ CumulativeScopeArtifactFilter collectionScopeFilter = new CumulativeScopeArtifactFilter( scopesToCollect );
+ collectionScopeFilter = new CumulativeScopeArtifactFilter( collectionScopeFilter, resolutionScopeFilter );
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
.setResolveRoot( false )
.setResolveTransitively( true )
- .setFilter( filter )
+ .setCollectionFilter( collectionScopeFilter )
+ .setResolutionFilter( resolutionScopeFilter )
.setLocalRepository( session.getLocalRepository() )
.setOffline( session.isOffline() )
.setCache( session.getRepositoryCache() );
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java Sun Aug 30 22:28:16 2009
@@ -35,11 +35,24 @@
* Resolves the transitive dependencies of the specified project.
*
* @param project The project whose dependencies should be resolved, must not be {@code null}.
- * @param scopes The dependency scopes that should be resolved, may 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}.
+ * @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 )
+ 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}.
* @return The transitive dependencies of the specified project that match the requested scopes, never {@code null}.
*/
- public Set<Artifact> resolve( MavenProject project, Collection<String> scopes, MavenSession session )
+ public Set<Artifact> resolve( MavenProject project, Collection<String> scopesToCollect,
+ Collection<String> scopesToResolve, MavenSession session )
throws ArtifactResolutionException, ArtifactNotFoundException;
/**
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Sun Aug 30 22:28:16 2009
@@ -371,7 +371,9 @@
{
Collection<String> scopesToResolve = executionPlan.getRequiredResolutionScopes();
- artifacts = projectDependenciesResolver.resolve( project, scopesToResolve, session );
+ Collection<String> scopesToCollect = executionPlan.getRequiredCollectionScopes();
+
+ artifacts = projectDependenciesResolver.resolve( project, scopesToCollect, scopesToResolve, session );
}
catch ( MultipleArtifactsNotFoundException e )
{
@@ -672,6 +674,8 @@
Set<String> requiredDependencyResolutionScopes = new TreeSet<String>();
+ Set<String> requiredDependencyCollectionScopes = new TreeSet<String>();
+
for ( Object task : taskSegment.tasks )
{
if ( task instanceof GoalTask )
@@ -721,10 +725,12 @@
calculateForkedExecutions( mojoExecution, session, project, new HashSet<MojoDescriptor>() );
- collectDependencyResolutionScopes( requiredDependencyResolutionScopes, mojoExecution );
+ collectDependencyRequirements( requiredDependencyResolutionScopes, requiredDependencyCollectionScopes,
+ mojoExecution );
}
- return new MavenExecutionPlan( mojoExecutions, requiredDependencyResolutionScopes );
+ return new MavenExecutionPlan( mojoExecutions, requiredDependencyResolutionScopes,
+ requiredDependencyCollectionScopes );
}
private List<TaskSegment> calculateTaskSegments( MavenSession session, List<String> tasks )
@@ -887,21 +893,32 @@
return request;
}
- private void collectDependencyResolutionScopes( Collection<String> requiredDependencyResolutionScopes,
+ private void collectDependencyRequirements( Collection<String> requiredDependencyResolutionScopes,
+ Collection<String> requiredDependencyCollectionScopes,
MojoExecution mojoExecution )
{
- String requiredDependencyResolutionScope = mojoExecution.getMojoDescriptor().isDependencyResolutionRequired();
+ MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+ String requiredDependencyResolutionScope = mojoDescriptor.getDependencyResolutionRequired();
if ( StringUtils.isNotEmpty( requiredDependencyResolutionScope ) )
{
requiredDependencyResolutionScopes.add( requiredDependencyResolutionScope );
}
+ String requiredDependencyCollectionScope = mojoDescriptor.getDependencyCollectionRequired();
+
+ if ( StringUtils.isNotEmpty( requiredDependencyCollectionScope ) )
+ {
+ requiredDependencyCollectionScopes.add( requiredDependencyCollectionScope );
+ }
+
for ( List<MojoExecution> forkedExecutions : mojoExecution.getForkedExecutions().values() )
{
for ( MojoExecution forkedExecution : forkedExecutions )
{
- collectDependencyResolutionScopes( requiredDependencyResolutionScopes, forkedExecution );
+ collectDependencyRequirements( requiredDependencyResolutionScopes,
+ requiredDependencyCollectionScopes, forkedExecution );
}
}
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java Sun Aug 30 22:28:16 2009
@@ -38,10 +38,15 @@
/** For project dependency resolution, the scopes of resolution required if any. */
private Set<String> requiredDependencyResolutionScopes;
- public MavenExecutionPlan( List<MojoExecution> executions, Set<String> requiredDependencyResolutionScopes )
+ /** For project dependency collection, the scopes of collection required if any. */
+ private Set<String> requiredDependencyCollectionScopes;
+
+ public MavenExecutionPlan( List<MojoExecution> executions, Set<String> requiredDependencyResolutionScopes,
+ Set<String> requiredDependencyCollectionScopes )
{
this.executions = executions;
this.requiredDependencyResolutionScopes = requiredDependencyResolutionScopes;
+ this.requiredDependencyCollectionScopes = requiredDependencyCollectionScopes;
}
public List<MojoExecution> getExecutions()
@@ -52,5 +57,11 @@
public Set<String> getRequiredResolutionScopes()
{
return requiredDependencyResolutionScopes;
- }
+ }
+
+ public Set<String> getRequiredCollectionScopes()
+ {
+ return requiredDependencyCollectionScopes;
+ }
+
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java Sun Aug 30 22:28:16 2009
@@ -397,7 +397,7 @@
ArtifactResolutionRequest request = new ArtifactResolutionRequest( repositoryRequest );
request.setArtifact( pluginArtifact );
request.setArtifactDependencies( overrideArtifacts );
- request.setFilter( filter );
+ request.setCollectionFilter( filter );
request.setResolveRoot( true );
request.setResolveTransitively( true );
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java Sun Aug 30 22:28:16 2009
@@ -1861,14 +1861,9 @@
}
private void addArtifactPath( Artifact artifact, List<String> classpath )
- throws DependencyResolutionRequiredException
{
File file = artifact.getFile();
- if ( file == null )
- {
- throw new DependencyResolutionRequiredException( artifact );
- }
- else
+ if ( file != null )
{
classpath.add( file.getPath() );
}
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java Sun Aug 30 22:28:16 2009
@@ -62,7 +62,7 @@
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
MojoNotFoundException
{
- return new MavenExecutionPlan( Collections.<MojoExecution> emptyList(), null );
+ return new MavenExecutionPlan( Collections.<MojoExecution> emptyList(), null, null );
}
public void execute( MavenSession session )
Modified: maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java (original)
+++ maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java Sun Aug 30 22:28:16 2009
@@ -93,6 +93,9 @@
/** Specify the required dependencies in a specified scope */
private String dependencyResolutionRequired = null;
+ /** The scope of (transitive) dependencies that should be collected but not resolved. */
+ private String dependencyCollectionRequired;
+
/** By default, the Mojo needs a Maven project to be executed */
private boolean projectRequired = true;
@@ -235,15 +238,38 @@
this.dependencyResolutionRequired = requiresDependencyResolution;
}
+ public String getDependencyResolutionRequired()
+ {
+ return dependencyResolutionRequired;
+ }
+
/**
* @return the required dependencies in a specified scope
* @TODO the name is not intelligible
*/
+ @Deprecated
public String isDependencyResolutionRequired()
{
return dependencyResolutionRequired;
}
+ public void setDependencyCollectionRequired( String requiresDependencyCollection )
+ {
+ this.dependencyCollectionRequired = requiresDependencyCollection;
+ }
+
+ /**
+ * Gets the scope of (transitive) dependencies that should be collected. Dependency collection refers to the process
+ * of calculating the complete dependency tree in terms of artifact coordinates. In contrast to dependency
+ * resolution, this does not include the download of the files for the dependency artifacts.
+ *
+ * @return The scope of (transitive) dependencies that should be collected or {@code null} if none.
+ */
+ public String getDependencyCollectionRequired()
+ {
+ return dependencyCollectionRequired;
+ }
+
// ----------------------------------------------------------------------
// Project requirement
// ----------------------------------------------------------------------
Modified: maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java (original)
+++ maven/components/trunk/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java Sun Aug 30 22:28:16 2009
@@ -195,11 +195,18 @@
mojo.setDescription( c.getChild( "description" ).getValue() );
- String dependencyResolution = c.getChild( "requiresDependencyResolution" ).getValue();
+ PlexusConfiguration dependencyResolution = c.getChild( "requiresDependencyResolution", false );
if ( dependencyResolution != null )
{
- mojo.setDependencyResolutionRequired( dependencyResolution );
+ mojo.setDependencyResolutionRequired( dependencyResolution.getValue() );
+ }
+
+ PlexusConfiguration dependencyCollection = c.getChild( "requiresDependencyCollection", false );
+
+ if ( dependencyCollection != null )
+ {
+ mojo.setDependencyCollectionRequired( dependencyCollection.getValue() );
}
String directInvocationOnly = c.getChild( "requiresDirectInvocation" ).getValue();
Modified: maven/components/trunk/maven-plugin-api/src/test/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-plugin-api/src/test/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilderTest.java?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-api/src/test/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilderTest.java (original)
+++ maven/components/trunk/maven-plugin-api/src/test/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilderTest.java Sun Aug 30 22:28:16 2009
@@ -66,7 +66,8 @@
assertEquals( "jar", md.getGoal() );
assertEquals( "mojo-description", md.getDescription() );
- assertEquals( "runtime", md.isDependencyResolutionRequired() );
+ assertEquals( "runtime", md.getDependencyResolutionRequired() );
+ assertEquals( "test", md.getDependencyCollectionRequired() );
assertEquals( false, md.isAggregator() );
assertEquals( false, md.isDirectInvocationOnly() );
assertEquals( true, md.isInheritedByDefault() );
Modified: maven/components/trunk/maven-plugin-api/src/test/resources/plugin.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-plugin-api/src/test/resources/plugin.xml?rev=809431&r1=809430&r2=809431&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-api/src/test/resources/plugin.xml (original)
+++ maven/components/trunk/maven-plugin-api/src/test/resources/plugin.xml Sun Aug 30 22:28:16 2009
@@ -12,6 +12,7 @@
<goal>jar</goal>
<description>mojo-description</description>
<requiresDependencyResolution>runtime</requiresDependencyResolution>
+ <requiresDependencyCollection>test</requiresDependencyCollection>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>