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

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/master by this push:
     new 47c5816ae [SUREFIRE-2210] - Restore ordering of additional class path 
elements
47c5816ae is described below

commit 47c5816ae6d3e596d13a3253e214939f3a479b1f
Author: David M. Lloyd <[email protected]>
AuthorDate: Fri Nov 10 08:23:57 2023 -0600

    [SUREFIRE-2210] - Restore ordering of additional class path elements
---
 .../plugin/surefire/AbstractSurefireMojo.java      |  2 +-
 .../maven/surefire/its/AdditionalClasspathIT.java  |  2 +-
 .../extraResource/order-test.txt                   |  1 +
 .../extraResource2/order-test.txt                  |  1 +
 .../test/java/additionalClasspath/BasicTest.java   | 28 ++++++++++++++++++++++
 5 files changed, 32 insertions(+), 2 deletions(-)

diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index 7cbe8bbb2..7c337818a 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -2569,7 +2569,7 @@ public abstract class AbstractSurefireMojo extends 
AbstractMojo implements Suref
 
         Map<String, Artifact> dependencyConflictIdsProjectArtifacts = 
classpathArtifacts.stream()
                 .collect(Collectors.toMap(Artifact::getDependencyConflictId, 
Function.identity()));
-        Set<String> additionalClasspathElements = new HashSet<>();
+        Set<String> additionalClasspathElements = new LinkedHashSet<>();
         if (getAdditionalClasspathElements() != null) {
             
Arrays.stream(getAdditionalClasspathElements()).forEach(additionalClasspathElements::add);
         }
diff --git 
a/surefire-its/src/test/java/org/apache/maven/surefire/its/AdditionalClasspathIT.java
 
b/surefire-its/src/test/java/org/apache/maven/surefire/its/AdditionalClasspathIT.java
index 6180bd95a..27398d6ac 100644
--- 
a/surefire-its/src/test/java/org/apache/maven/surefire/its/AdditionalClasspathIT.java
+++ 
b/surefire-its/src/test/java/org/apache/maven/surefire/its/AdditionalClasspathIT.java
@@ -30,7 +30,7 @@ import org.junit.Test;
 public class AdditionalClasspathIT extends SurefireJUnit4IntegrationTestCase {
     @Test
     public void additionalClasspathElements() {
-        unpack("/additional-classpath").executeTest().verifyErrorFree(1);
+        unpack("/additional-classpath").executeTest().verifyErrorFree(2);
     }
 
     @Test
diff --git 
a/surefire-its/src/test/resources/additional-classpath/extraResource/order-test.txt
 
b/surefire-its/src/test/resources/additional-classpath/extraResource/order-test.txt
new file mode 100644
index 000000000..56a6051ca
--- /dev/null
+++ 
b/surefire-its/src/test/resources/additional-classpath/extraResource/order-test.txt
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git 
a/surefire-its/src/test/resources/additional-classpath/extraResource2/order-test.txt
 
b/surefire-its/src/test/resources/additional-classpath/extraResource2/order-test.txt
new file mode 100644
index 000000000..d8263ee98
--- /dev/null
+++ 
b/surefire-its/src/test/resources/additional-classpath/extraResource2/order-test.txt
@@ -0,0 +1 @@
+2
\ No newline at end of file
diff --git 
a/surefire-its/src/test/resources/additional-classpath/src/test/java/additionalClasspath/BasicTest.java
 
b/surefire-its/src/test/resources/additional-classpath/src/test/java/additionalClasspath/BasicTest.java
index 1cc4cad9c..f1f5368b3 100644
--- 
a/surefire-its/src/test/resources/additional-classpath/src/test/java/additionalClasspath/BasicTest.java
+++ 
b/surefire-its/src/test/resources/additional-classpath/src/test/java/additionalClasspath/BasicTest.java
@@ -1,5 +1,12 @@
 package additionalClasspath;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.Enumeration;
+
 import junit.framework.TestCase;
 
 public class BasicTest
@@ -9,7 +16,28 @@ public class BasicTest
     public void testExtraResource()
     {
         assertNotNull( BasicTest.class.getResourceAsStream( "/test.txt" ) );
+        assertNotNull( getClass().getClassLoader().getResourceAsStream( 
"test.txt" ) );
         assertNotNull( BasicTest.class.getResourceAsStream( "/test2.txt" ) );
+        assertNotNull( getClass().getClassLoader().getResourceAsStream( 
"test2.txt" ) );
     }
 
+    public void testExtraResourceOrder() throws IOException
+    {
+        Enumeration<URL> resources = 
getClass().getClassLoader().getResources("order-test.txt");
+        assertTrue( resources.hasMoreElements() );
+        URL url = resources.nextElement();
+        InputStream is = url.openStream();
+        assertNotNull( is );
+        try ( InputStream i = is; InputStreamReader r = new 
InputStreamReader(is); BufferedReader br = new BufferedReader(r) ) {
+            assertEquals("1", br.readLine());
+        }
+        assertTrue( resources.hasMoreElements() );
+        url = resources.nextElement();
+        is = url.openStream();
+        assertNotNull( is );
+        try ( InputStream i = is; InputStreamReader r = new 
InputStreamReader(is); BufferedReader br = new BufferedReader(r) ) {
+            assertEquals("2", br.readLine());
+        }
+        assertFalse( resources.hasMoreElements() );
+    }
 }

Reply via email to