Author: rfscholte
Date: Fri Jun 17 18:31:02 2016
New Revision: 1748889
URL: http://svn.apache.org/viewvc?rev=1748889&view=rev
Log:
Make ScopeFilter the base filter, transform when required
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java?rev=1748889&r1=1748888&r2=1748889&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
Fri Jun 17 18:31:02 2016
@@ -39,7 +39,8 @@ import org.apache.maven.plugins.assembly
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.repository.RepositorySystem;
-import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;
+import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
+import
org.apache.maven.shared.artifact.filter.resolve.transform.ArtifactIncludeFilterTransformer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -126,7 +127,9 @@ public class DefaultDependencyResolver
if ( info.isResolvedTransitively() )
{
getLogger().debug( "Resolving project dependencies
transitively." );
- artifacts = resolveTransitively( artifacts, repos,
info.getScopeFilter(), configSource );
+
+ ArtifactFilter filter = new
ArtifactIncludeFilterTransformer().transform( info.getScopeFilter() );
+ artifacts = resolveTransitively( artifacts, repos, filter,
configSource );
}
else
{
@@ -256,15 +259,19 @@ public class DefaultDependencyResolver
{
final List<Repository> repositories = assembly.getRepositories();
+ Set<String> rootScopes = new HashSet<String>();
+
if ( repositories != null && !repositories.isEmpty() )
{
requirements.setResolutionRequired( true );
for ( final Repository repo : repositories )
{
- enableScope( repo.getScope(), requirements );
+ rootScopes.add( repo.getScope() );
}
}
+
+ requirements.setScopeFilter( FilterUtils.newScopeFilter( rootScopes )
);
}
@@ -322,7 +329,11 @@ public class DefaultDependencyResolver
requirements.setResolvedTransitively(
set.isUseTransitiveDependencies() );
- ArtifactFilter filter = enableScope( set.getScope(), requirements );
+ ScopeFilter scopeFilter = FilterUtils.newScopeFilter( set.getScope() );
+
+ requirements.setScopeFilter( scopeFilter );
+
+ ArtifactFilter filter = new
ArtifactIncludeFilterTransformer().transform( scopeFilter );
for ( final MavenProject project : projects )
{
@@ -352,31 +363,6 @@ public class DefaultDependencyResolver
}
}
- private ScopeArtifactFilter enableScope( final String scope, final
ResolutionManagementInfo requirements )
- {
- if ( Artifact.SCOPE_COMPILE.equals( scope ) )
- {
- requirements.enableCompileScope();
- }
- else if ( Artifact.SCOPE_PROVIDED.equals( scope ) )
- {
- requirements.enableProvidedScope();
- }
- else if ( Artifact.SCOPE_RUNTIME.equals( scope ) )
- {
- requirements.enableRuntimeScope();
- }
- else if ( Artifact.SCOPE_SYSTEM.equals( scope ) )
- {
- requirements.enableSystemScope();
- }
- else if ( Artifact.SCOPE_TEST.equals( scope ) )
- {
- requirements.enableTestScope();
- }
- return requirements.getScopeFilter();
- }
-
List<ArtifactRepository> aggregateRemoteArtifactRepositories( final
List<ArtifactRepository> remoteRepositories,
final
Set<MavenProject> projects )
{
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java?rev=1748889&r1=1748888&r2=1748889&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
Fri Jun 17 18:31:02 2016
@@ -21,7 +21,7 @@ package org.apache.maven.plugins.assembl
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;
+import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -34,7 +34,7 @@ import java.util.Set;
*/
class ResolutionManagementInfo
{
- private final ScopeArtifactFilter scopeFilter = new ScopeArtifactFilter();
+ private ScopeFilter scopeFilter;
private final Set<MavenProject> enabledProjects = new
LinkedHashSet<MavenProject>();
@@ -69,42 +69,17 @@ class ResolutionManagementInfo
this.resolvedTransitively = this.resolvedTransitively ||
resolvedTransitively;
}
- ScopeArtifactFilter getScopeFilter()
+ ScopeFilter getScopeFilter()
{
return scopeFilter;
}
-
- void enableCompileScope()
- {
- scopeFilter.setIncludeCompileScope( true );
- scopeFilter.setIncludeProvidedScope( true );
- scopeFilter.setIncludeSystemScope( true );
- }
-
- void enableProvidedScope()
+
+ void setScopeFilter( ScopeFilter scopeFilter )
{
- scopeFilter.setIncludeProvidedScope( true );
+ this.scopeFilter = scopeFilter;
}
- void enableRuntimeScope()
- {
- scopeFilter.setIncludeRuntimeScope( true );
- scopeFilter.setIncludeCompileScope( true );
- }
- void enableTestScope()
- {
- scopeFilter.setIncludeTestScope( true );
- scopeFilter.setIncludeCompileScope( true );
- scopeFilter.setIncludeProvidedScope( true );
- scopeFilter.setIncludeSystemScope( true );
- scopeFilter.setIncludeRuntimeScope( true );
- }
-
- void enableSystemScope()
- {
- scopeFilter.setIncludeSystemScope( true );
- }
void enableProjectResolution( final MavenProject project )
{
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java?rev=1748889&r1=1748888&r2=1748889&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
Fri Jun 17 18:31:02 2016
@@ -20,7 +20,10 @@ package org.apache.maven.plugins.assembl
*/
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@@ -33,7 +36,6 @@ import org.apache.maven.plugins.assembly
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;
import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;
-import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;
import
org.apache.maven.shared.artifact.filter.StatisticsReportingArtifactFilter;
import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
import org.codehaus.plexus.logging.Logger;
@@ -198,31 +200,44 @@ public final class FilterUtils
*/
public static ScopeFilter newScopeFilter( final String rootScope )
{
- ScopeArtifactFilter filter = new ScopeArtifactFilter( rootScope );
+ return newScopeFilter( Collections.singleton( rootScope ) );
+ }
- List<String> includes = new ArrayList<String>();
- if ( filter.isIncludeCompileScope() )
- {
- includes.add( "compile" );
- }
- if ( filter.isIncludeProvidedScope() )
- {
- includes.add( "provided" );
- }
- if ( filter.isIncludeRuntimeScope() )
- {
- includes.add( "runtime" );
- }
- if ( filter.isIncludeSystemScope() )
- {
- includes.add( "system" );
- }
- if ( filter.isIncludeTestScope() )
+ /**
+ * Results in a filter including all rootScopes and their transitive
scopes
+ *
+ * @param rootScopes all root scopes
+ * @return the filter
+ */
+ public static ScopeFilter newScopeFilter( final Collection<String>
rootScopes )
+ {
+ Set<String> scopes = new HashSet<String>();
+
+ for ( String rootScope : rootScopes )
{
- includes.add( "test" );
+ if ( Artifact.SCOPE_COMPILE.equals( rootScope ) )
+ {
+ scopes.addAll( Arrays.asList( "compile", "provided", "system"
) );
+ }
+ if ( Artifact.SCOPE_PROVIDED.equals( rootScope ) )
+ {
+ scopes.add( "provided" );
+ }
+ if ( Artifact.SCOPE_RUNTIME.equals( rootScope ) )
+ {
+ scopes.addAll( Arrays.asList( "compile", "runtime" ) );
+ }
+ if ( Artifact.SCOPE_SYSTEM.equals( rootScope ) )
+ {
+ scopes.add( "system" );
+ }
+ if ( Artifact.SCOPE_TEST.equals( rootScope ) )
+ {
+ scopes.addAll( Arrays.asList( "compile", "provided",
"runtime", "system", "test" ) );
+ }
}
-
- return ScopeFilter.including( includes );
+
+ return ScopeFilter.including( scopes );
}
}
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java?rev=1748889&r1=1748888&r2=1748889&view=diff
==============================================================================
---
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
(original)
+++
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolverTest.java
Fri Jun 17 18:31:02 2016
@@ -1,5 +1,7 @@
package org.apache.maven.plugins.assembly.artifact;
+import static org.easymock.EasyMock.expect;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,6 +21,12 @@ package org.apache.maven.plugins.assembl
* under the License.
*/
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -39,14 +47,6 @@ import org.codehaus.plexus.logging.Logge
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.easymock.classextension.EasyMockSupport;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import static org.easymock.EasyMock.expect;
-
public class DefaultDependencyResolverTest
extends PlexusTestCase
{
@@ -98,13 +98,13 @@ public class DefaultDependencyResolverTe
assertTrue( info.isResolutionRequired() );
assertFalse( info.isResolvedTransitively() );
- assertTrue( info.getScopeFilter().isIncludeCompileScope() );
- assertTrue( info.getScopeFilter().isIncludeSystemScope() );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_COMPILE ) );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_SYSTEM ) );
- assertTrue( info.getScopeFilter().isIncludeProvidedScope() );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_PROVIDED ) );
- assertFalse( info.getScopeFilter().isIncludeRuntimeScope() );
- assertFalse( info.getScopeFilter().isIncludeTestScope() );
+ assertFalse( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_RUNTIME ) );
+ assertFalse( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_TEST ) );
}
public void test_getModuleSetResolutionRequirements()
@@ -209,13 +209,13 @@ public class DefaultDependencyResolverTe
assertTrue( enabledProjects.contains( module2a ) );
// these are the two we directly set above.
- assertTrue( info.getScopeFilter().isIncludeTestScope() );
- assertTrue( info.getScopeFilter().isIncludeCompileScope() );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_TEST ) );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_COMPILE ) );
// this combination should be implied by the two direct scopes set
above.
- assertTrue( info.getScopeFilter().isIncludeRuntimeScope() );
- assertTrue( info.getScopeFilter().isIncludeProvidedScope() );
- assertTrue( info.getScopeFilter().isIncludeSystemScope() );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_RUNTIME ) );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_PROVIDED ) );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_SYSTEM ) );
mm.verifyAll();
}
@@ -246,13 +246,13 @@ public class DefaultDependencyResolverTe
assertTrue( info.isResolutionRequired() );
- assertTrue( info.getScopeFilter().isIncludeCompileScope() );
- assertTrue( info.getScopeFilter().isIncludeSystemScope() );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_COMPILE ) );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_SYSTEM ) );
- assertTrue( info.getScopeFilter().isIncludeProvidedScope() );
+ assertTrue( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_PROVIDED ) );
- assertFalse( info.getScopeFilter().isIncludeRuntimeScope() );
- assertFalse( info.getScopeFilter().isIncludeTestScope() );
+ assertFalse( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_RUNTIME ) );
+ assertFalse( info.getScopeFilter().getIncluded().contains(
Artifact.SCOPE_TEST ) );
}
public void test_aggregateRemoteArtifactRepositories()