Skip to content

Commit 68c573a

Browse files
committed
#215 - TestModules when loaded with module path via META-INF/services need de-duplication
1 parent 99a131d commit 68c573a

File tree

6 files changed

+14
-14
lines changed

6 files changed

+14
-14
lines changed

blackbox-test-inject/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>avaje-inject-parent</artifactId>
77
<groupId>io.avaje</groupId>
8-
<version>8.3</version>
8+
<version>8.4</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

inject-generator/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-inject-parent</artifactId>
7-
<version>8.3</version>
7+
<version>8.4</version>
88
</parent>
99

1010
<artifactId>avaje-inject-generator</artifactId>
@@ -16,7 +16,7 @@
1616
<dependency>
1717
<groupId>io.avaje</groupId>
1818
<artifactId>avaje-inject</artifactId>
19-
<version>8.3</version>
19+
<version>8.4</version>
2020
</dependency>
2121

2222
<!-- test dependencies -->

inject-test/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-inject-parent</artifactId>
7-
<version>8.3</version>
7+
<version>8.4</version>
88
</parent>
99

1010
<artifactId>avaje-inject-test</artifactId>
@@ -124,7 +124,7 @@
124124
<path>
125125
<groupId>io.avaje</groupId>
126126
<artifactId>avaje-inject-generator</artifactId>
127-
<version>8.3</version>
127+
<version>8.4</version>
128128
</path>
129129
</annotationProcessorPaths>
130130
</configuration>

inject-test/src/main/java/io/avaje/inject/test/TSBuild.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import java.io.InputStreamReader;
1010
import java.io.LineNumberReader;
1111
import java.net.URL;
12-
import java.util.ArrayList;
13-
import java.util.Enumeration;
14-
import java.util.List;
15-
import java.util.ServiceLoader;
12+
import java.util.*;
1613
import java.util.concurrent.locks.ReentrantLock;
1714

1815
/**
@@ -83,15 +80,18 @@ private BeanScope buildFromModules(List<TestModule> testModules) {
8380
@Nullable
8481
private BeanScope buildFromResources() {
8582
try {
86-
List<TestModule> testModules = new ArrayList<>();
83+
Set<Class<?>> testModuleClasses = new LinkedHashSet<>();
8784
Enumeration<URL> urls = ClassLoader.getSystemResources("META-INF/services/io.avaje.inject.test.TestModule");
8885
while (urls.hasMoreElements()) {
8986
String className = readServiceClassName(urls.nextElement());
9087
if (className != null) {
91-
Class<?> cls = Class.forName(className);
92-
testModules.add((TestModule) cls.getDeclaredConstructor().newInstance());
88+
testModuleClasses.add(Class.forName(className));
9389
}
9490
}
91+
List<TestModule> testModules = new ArrayList<>();
92+
for (Class<?> cls : testModuleClasses) {
93+
testModules.add((TestModule) cls.getDeclaredConstructor().newInstance());
94+
}
9595
return testModules.isEmpty() ? null : buildFromModules(testModules);
9696
} catch (Throwable e) {
9797
throw new RuntimeException("Error trying to create TestModule", e);

inject/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-inject-parent</artifactId>
7-
<version>8.3</version>
7+
<version>8.4</version>
88
</parent>
99

1010
<artifactId>avaje-inject</artifactId>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<groupId>io.avaje</groupId>
1111
<artifactId>avaje-inject-parent</artifactId>
12-
<version>8.3</version>
12+
<version>8.4</version>
1313
<packaging>pom</packaging>
1414
<name>avaje inject parent</name>
1515
<description>parent pom for avaje inject library</description>

0 commit comments

Comments
 (0)