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()


Reply via email to