maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Beirtí Ó'Nunáin (JIRA) <j...@apache.org>
Subject [jira] [Commented] (MDEP-501) Filtering dependencies does not retain the order of the unfiltered list
Date Mon, 07 Sep 2015 12:33:45 GMT

    [ https://issues.apache.org/jira/browse/MDEP-501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14733627#comment-14733627
] 

Beirtí Ó'Nunáin commented on MDEP-501:
--------------------------------------

Index: AbstractArtifactFeatureFilter.java
===================================================================
--- AbstractArtifactFeatureFilter.java  (revision 1701613)
+++ AbstractArtifactFeatureFilter.java  (working copy)
@@ -20,7 +20,7 @@
  */

 import java.util.Arrays;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -83,7 +83,7 @@
      */
     private Set filterIncludes( Set artifacts, List theIncludes )
     {
-        Set result = new HashSet();
+        Set result = new LinkedHashSet();

         Iterator includeIter = theIncludes.iterator();
         while ( includeIter.hasNext() )
@@ -116,7 +116,7 @@
      */
     private Set filterExcludes( Set artifacts, List theExcludes )
     {
-        Set result = new HashSet();
+        Set result = new LinkedHashSet();

         Iterator iter = artifacts.iterator();
         while ( iter.hasNext() )

> Filtering dependencies does not retain the order of the unfiltered list
> -----------------------------------------------------------------------
>
>                 Key: MDEP-501
>                 URL: https://issues.apache.org/jira/browse/MDEP-501
>             Project: Maven Dependency Plugin
>          Issue Type: Bug
>    Affects Versions: 2.10
>            Reporter: Beirtí Ó'Nunáin
>
> If you use the build-classpath mojo, you get the dependency list as specified in the
pom. However, if you introduce filtering, you end up losing the dependency order. It seems
that the org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter declares 'Set'
instead of 'SortedSet' and that the org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter
returns a HashSet instead of a LinkedHashSet, even though a LinkedHashSet is being passed
in.
> The impact of this is that you cannot generate a correctly-ordered classpath when using
filters. The fix is very straightforward, simply change the filterIncludes and filterExcludes
methods of AbstractArtifactFeatureFilter to use a LinkedHashSet.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message