[MSHARED-631] Several filters do not preserve order of artifacts filtered

This closes #20

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1811599 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
index debc6af..d80ea25 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java
@@ -29,7 +29,7 @@
 import org.apache.maven.project.ProjectBuildingResult;
 
 import java.lang.reflect.InvocationTargetException;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -179,7 +179,7 @@
     public Set<Artifact> filter( Set<Artifact> artifacts )
     {
 
-        Set<Artifact> result = new HashSet<Artifact>();
+        Set<Artifact> result = new LinkedHashSet<Artifact>();
         for ( Artifact artifact : artifacts )
         {
             if ( artifactIsATransitiveDependency( artifact ) )
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java
index e05c68b..ca3a70d 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ProjectTransitivityFilter.java
@@ -19,7 +19,7 @@
  * under the License.    
  */
 
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
@@ -57,7 +57,7 @@
 
         if ( excludeTransitive )
         {
-            result = new HashSet<Artifact>();
+            result = new LinkedHashSet<Artifact>();
             for ( Artifact artifact : artifacts )
             {
                 if ( artifactIsADirectDependency( artifact ) )
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ScopeFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ScopeFilter.java
index 61c3afe..320f069 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/collection/ScopeFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/collection/ScopeFilter.java
@@ -19,7 +19,7 @@
  * under the License.    
  */
 
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
@@ -73,7 +73,7 @@
                 throw new ArtifactFilterException( "Invalid Scope in includeScope: " + includeScope );
             }
 
-            results = new HashSet<Artifact>();
+            results = new LinkedHashSet<Artifact>();
 
             if ( Artifact.SCOPE_PROVIDED.equals( includeScope ) || Artifact.SCOPE_SYSTEM.equals( includeScope ) )
             {
@@ -100,7 +100,7 @@
             {
                 throw new ArtifactFilterException( "Invalid Scope in excludeScope: " + excludeScope );
             }
-            results = new HashSet<Artifact>();
+            results = new LinkedHashSet<Artifact>();
             // plexus ScopeArtifactFilter doesn't handle the provided scope so
             // we
             // need special handling for it.
@@ -131,7 +131,7 @@
 
     private Set<Artifact> includeSingleScope( Set<Artifact> artifacts, String scope )
     {
-        Set<Artifact> results = new HashSet<Artifact>();
+        Set<Artifact> results = new LinkedHashSet<Artifact>();
         for ( Artifact artifact : artifacts )
         {
             if ( scope.equals( artifact.getScope() ) )
@@ -144,7 +144,7 @@
 
     private Set<Artifact> excludeSingleScope( Set<Artifact> artifacts, String scope )
     {
-        Set<Artifact> results = new HashSet<Artifact>();
+        Set<Artifact> results = new LinkedHashSet<Artifact>();
         for ( Artifact artifact : artifacts )
         {
             if ( !scope.equals( artifact.getScope() ) )