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() );
+ }
}