Author: jdcasey
Date: Tue Apr  3 08:51:28 2007
New Revision: 525185

URL: http://svn.apache.org/viewvc?view=rev&rev=525185
Log:
[MASSEMBLY-194] Adding useTransitiveFiltering flag to dependencySets (default 
value == false). When false, includes/excludes apply only to the current 
artifact, not to the list of artifacts that bring this artifact in 
transitively. When true, the transitive path of the current artifact is taken 
into account for filtering includes/excludes. By default, backward 
compatibility with version 2.1 of the assembly plugin means we have to set this 
to false.

Modified:
    maven/plugins/trunk/maven-assembly-plugin/pom.xml
    
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
    
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
    
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo
    maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
    
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Tue Apr  3 08:51:28 2007
@@ -176,6 +176,7 @@
       <plugins>
         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.2</version>
           <configuration>
             <excludes>
               <exclude>**/BasicAbstractAssemblyMojoFeaturesTest*</exclude>
@@ -234,6 +235,9 @@
               <pomExcludes>
                 <pomExclude>**/child*/pom.xml</pomExclude>
                 <pomExclude>**/module*/pom.xml</pomExclude>
+
+                <!-- TODO: Fix this! It's logged in JIRA for 2.2. -->
+                
<pomExclude>mojo-configuration/manifest-with-customEntry/pom.xml</pomExclude>
               </pomExcludes>
               <postBuildHookScript>verify.bsh</postBuildHookScript>
               
<localRepositoryPath>${basedir}/target/local-repository</localRepositoryPath>
@@ -366,4 +370,4 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/massembly-99/pom.xml
 Tue Apr  3 08:51:28 2007
@@ -18,6 +18,16 @@
     </dependency>
   </dependencies>
   <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.2</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
     <plugins>
       <plugin>
         
<artifactId>maven-assembly-plugin</artifactId><version>testing</version>

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/using-moduleSet-implied-depSet/pom.xml
 Tue Apr  3 08:51:28 2007
@@ -17,6 +17,16 @@
     </dependency>
   </dependencies>
   <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.2</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+
     <plugins>
       <plugin>
         
<artifactId>maven-assembly-plugin</artifactId><version>testing</version>

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
 Tue Apr  3 08:51:28 2007
@@ -169,7 +169,7 @@
         }
 
         FilterUtils.filterArtifacts( dependencyArtifacts, 
dependencySet.getIncludes(), dependencySet.getExcludes(),
-                                     dependencySet.isUseStrictFiltering(), 
true, Collections.EMPTY_LIST, logger );
+                                     dependencySet.isUseStrictFiltering(), 
dependencySet.isUseTransitiveFiltering(), Collections.EMPTY_LIST, logger );
 
         return dependencyArtifacts;
     }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo 
(original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/component.mdo Tue 
Apr  3 08:51:28 2007
@@ -397,6 +397,21 @@
             Default scope value is "runtime".
           </description>
         </field>
+        <field>
+          <name>useTransitiveFiltering</name>
+          <version>1.1.0</version>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+          <description>
+          Determines whether the include/exclude patterns in this dependency 
set will be applied to
+          the transitive path of a given artifact. If true, and the current 
artifact is a transitive
+          dependency brought in by another artifact which matches an inclusion 
or exclusion pattern, 
+          then the current artifact has the same inclusion/exclusion logic 
applied to it as well. By
+          default, this value is false, in order to preserve backward 
compatibility with version 2.1.
+          This means that includes/excludes only apply directly to the current 
artifact, and not to
+          the transitive set of artifacts which brought it in. (Since 2.2)
+          </description>
+        </field>
       </fields>
     </class>
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo 
(original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/mdo/descriptor.mdo Tue 
Apr  3 08:51:28 2007
@@ -517,6 +517,21 @@
             Default scope value is "runtime".
           </description>
         </field>
+        <field>
+          <name>useTransitiveFiltering</name>
+          <version>1.1.0</version>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+          <description>
+          Determines whether the include/exclude patterns in this dependency 
set will be applied to
+          the transitive path of a given artifact. If true, and the current 
artifact is a transitive
+          dependency brought in by another artifact which matches an inclusion 
or exclusion pattern, 
+          then the current artifact has the same inclusion/exclusion logic 
applied to it as well. By
+          default, this value is false, in order to preserve backward 
compatibility with version 2.1.
+          This means that includes/excludes only apply directly to the current 
artifact, and not to
+          the transitive set of artifacts which brought it in. (Since 2.2)
+          </description>
+        </field>
       </fields>
     </class>
 

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?view=diff&rev=525185&r1=525184&r2=525185
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
 Tue Apr  3 08:51:28 2007
@@ -43,9 +43,8 @@
 
         Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( ds ), project,
-                                                                
macTask.projectBuilder, macTask.dependencyResolver,
-                                                                logger );
+        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( ds ), project, macTask.projectBuilder,
+                                                                
macTask.dependencyResolver, logger );
 
         task.addDependencySet( ds, null, macTask.configSource );
 
@@ -53,22 +52,19 @@
     }
 
     public void 
testAddDependencySet_ShouldAddOneDependencyFromProjectWithoutUnpacking()
-        throws AssemblyFormattingException, ArchiveCreationException, 
IOException,
-        InvalidAssemblerConfigurationException
+        throws AssemblyFormattingException, ArchiveCreationException, 
IOException, InvalidAssemblerConfigurationException
     {
         verifyOneDependencyAdded( "out", false );
     }
 
     public void 
testAddDependencySet_ShouldAddOneDependencyFromProjectUnpacked()
-        throws AssemblyFormattingException, ArchiveCreationException, 
IOException,
-        InvalidAssemblerConfigurationException
+        throws AssemblyFormattingException, ArchiveCreationException, 
IOException, InvalidAssemblerConfigurationException
     {
         verifyOneDependencyAdded( "out", true );
     }
 
     private void verifyOneDependencyAdded( String outputLocation, boolean 
unpack )
-        throws AssemblyFormattingException, ArchiveCreationException, 
IOException,
-        InvalidAssemblerConfigurationException
+        throws AssemblyFormattingException, ArchiveCreationException, 
IOException, InvalidAssemblerConfigurationException
     {
         MavenProject project = new MavenProject( new Model() );
 
@@ -109,9 +105,8 @@
 
         Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
-        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( ds ), project,
-                                                                
macTask.projectBuilder, macTask.dependencyResolver,
-                                                                logger );
+        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( ds ), project, macTask.projectBuilder,
+                                                                
macTask.dependencyResolver, logger );
 
         mockManager.replayAll();
 
@@ -139,8 +134,7 @@
         mockManager.replayAll();
 
         AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( dependencySet ), project,
-                                                                
macTask.projectBuilder, macTask.dependencyResolver,
-                                                                logger );
+                                                                
macTask.projectBuilder, macTask.dependencyResolver, logger );
 
         Set result = task.resolveDependencyArtifacts( dependencySet, 
macTask.configSource );
 
@@ -185,13 +179,65 @@
         DependencySet dependencySet = new DependencySet();
 
         dependencySet.addInclude( "group:artifact" );
+        dependencySet.setUseTransitiveFiltering( true );
 
         Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
 
         mockManager.replayAll();
 
-        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( dependencySet ), project,
-                                                                null, 
macTask.dependencyResolver, logger );
+        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( dependencySet ), project, null,
+                                                                
macTask.dependencyResolver, logger );
+
+        Set result = task.resolveDependencyArtifacts( dependencySet, 
macTask.configSource );
+
+        assertNotNull( result );
+        assertEquals( 1, result.size() );
+        assertSame( mac.artifact, result.iterator().next() );
+
+        mockManager.verifyAll();
+    }
+
+    public void 
testGetDependencyArtifacts_ShouldIgnoreTransitivePathFilteringWhenIncludeNotTransitive()
+        throws ArchiveCreationException, InvalidAssemblerConfigurationException
+    {
+        MavenProject project = new MavenProject( new Model() );
+
+        MockAndControlForAddDependencySetsTask macTask = new 
MockAndControlForAddDependencySetsTask( mockManager );
+
+        Set artifacts = new HashSet();
+
+        MockAndControlForArtifact mac = new MockAndControlForArtifact( 
mockManager );
+
+        mac.expectGetGroupId( "group" );
+        mac.expectGetArtifactId( "artifact" );
+        mac.expectGetDependencyConflictId( "group:artifact:jar" );
+        mac.expectGetId( "group:artifact:1.0" );
+
+        artifacts.add( mac.artifact );
+
+        MockAndControlForArtifact mac2 = new MockAndControlForArtifact( 
mockManager );
+
+        mac2.expectGetGroupId( "group2" );
+        mac2.expectGetArtifactId( "artifact2" );
+        mac2.expectGetDependencyConflictId( "group2:artifact2:jar" );
+        mac2.expectGetId( "group2:artifact2:1.0" );
+
+        artifacts.add( mac2.artifact );
+
+        macTask.expectCSGetRepositories( null, null );
+        macTask.expectResolveDependencies( artifacts );
+
+        DependencySet dependencySet = new DependencySet();
+
+        dependencySet.addInclude( "group:artifact" );
+        dependencySet.setUseTransitiveFiltering( false );
+
+        Logger logger = new ConsoleLogger( Logger.LEVEL_DEBUG, "test" );
+
+        mockManager.replayAll();
+
+        AddDependencySetsTask task = new AddDependencySetsTask( 
Collections.singletonList( dependencySet ), project, null,
+                                                                
macTask.dependencyResolver, logger );
 
         Set result = task.resolveDependencyArtifacts( dependencySet, 
macTask.configSource );
 


Reply via email to