This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/maven-common-artifact-filters.git


The following commit(s) were added to refs/heads/master by this push:
     new bbcf213  [MSHARED-1300] Order of dependencies is not always retained 
when filtering (#33)
bbcf213 is described below

commit bbcf21338500a56de7301667900f181cc2bbfc5c
Author: Kamil Jarosz <[email protected]>
AuthorDate: Tue Sep 12 14:09:09 2023 +0200

    [MSHARED-1300] Order of dependencies is not always retained when filtering 
(#33)
---
 .../collection/AbstractArtifactFeatureFilter.java  |  4 ++--
 .../artifact/filter/collection/TestTypeFilter.java | 27 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/shared/artifact/filter/collection/AbstractArtifactFeatureFilter.java
 
b/src/main/java/org/apache/maven/shared/artifact/filter/collection/AbstractArtifactFeatureFilter.java
index 2a451f4..cbf45e2 100644
--- 
a/src/main/java/org/apache/maven/shared/artifact/filter/collection/AbstractArtifactFeatureFilter.java
+++ 
b/src/main/java/org/apache/maven/shared/artifact/filter/collection/AbstractArtifactFeatureFilter.java
@@ -90,9 +90,9 @@ public abstract class AbstractArtifactFeatureFilter
     {
         Set<Artifact> result = new LinkedHashSet<>();
 
-        for ( String include : theIncludes )
+        for ( Artifact artifact : artifacts )
         {
-            for ( Artifact artifact : artifacts )
+            for ( String include : theIncludes )
             {
                 // if the classifier or type of the artifact
                 // matches the feature
diff --git 
a/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTypeFilter.java
 
b/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTypeFilter.java
index f245a4b..5da494c 100644
--- 
a/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTypeFilter.java
+++ 
b/src/test/java/org/apache/maven/shared/artifact/filter/collection/TestTypeFilter.java
@@ -18,8 +18,13 @@ package org.apache.maven.shared.artifact.filter.collection;
  * specific language governing permissions and limitations
  * under the License.    
  */
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
@@ -92,4 +97,26 @@ public class TestTypeFilter
         Set<Artifact> result = filter.filter( artifacts );
         assertEquals( 5, result.size() );
     }
+
+    @Test
+    public void testFilteringOrder()
+            throws IOException
+    {
+        TypeFilter filter = new TypeFilter( "war,jar", "zip" );
+        Set<Artifact> artifacts = new LinkedHashSet<>();
+
+        ArtifactStubFactory factory = new ArtifactStubFactory( null, false );
+        artifacts.add( factory.createArtifact( "g", "a", "1.0", 
Artifact.SCOPE_COMPILE, "jar", null ) );
+        artifacts.add( factory.createArtifact( "g", "b", "1.0", 
Artifact.SCOPE_COMPILE, "zip", null ) );
+        artifacts.add( factory.createArtifact( "g", "c", "1.0", 
Artifact.SCOPE_COMPILE, "war", null ) );
+
+        Set<Artifact> result = filter.filter( artifacts );
+
+        assertEquals( 2, result.size() );
+
+        List<Artifact> resultList = new ArrayList<>( result );
+
+        assertEquals( "a", resultList.get(0).getArtifactId() );
+        assertEquals( "c", resultList.get(1).getArtifactId() );
+    }
 }

Reply via email to