Skip to content

Commit 47b6cb1

Browse files
committed
Load interceptors before sessions listeners
1 parent 1caf227 commit 47b6cb1

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/DefaultLauncherSession.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@
2828
*/
2929
class DefaultLauncherSession implements LauncherSession {
3030

31-
private final DelegatingCloseableLauncher<CloseableLauncher> launcher;
3231
private final LauncherSessionListener listener;
32+
private final DelegatingCloseableLauncher<CloseableLauncher> launcher;
3333

34-
DefaultLauncherSession(Supplier<Launcher> launcherSupplier, List<LauncherInterceptor> interceptors,
35-
LauncherSessionListener listener) {
34+
DefaultLauncherSession(List<LauncherInterceptor> interceptors, Supplier<Launcher> launcherSupplier,
35+
Supplier<LauncherSessionListener> listenerSupplier) {
36+
this.listener = listenerSupplier.get();
3637
CloseableLauncher closeableLauncher = InterceptingClosableLauncher.decorate(launcherSupplier, interceptors);
3738
this.launcher = new DelegatingCloseableLauncher<>(closeableLauncher, delegate -> {
3839
delegate.close();
3940
return ClosedLauncher.INSTANCE;
4041
});
41-
this.listener = listener;
4242
listener.launcherSessionOpened(this);
4343
}
4444

junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/LauncherFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ public static LauncherSession openSession() throws PreconditionViolationExceptio
100100
public static LauncherSession openSession(LauncherConfig config) throws PreconditionViolationException {
101101
Preconditions.notNull(config, "LauncherConfig must not be null");
102102
LauncherConfigurationParameters configurationParameters = LauncherConfigurationParameters.builder().build();
103-
return new DefaultLauncherSession(() -> createDefaultLauncher(config, configurationParameters),
104-
collectLauncherInterceptors(configurationParameters), createLauncherSessionListener(config));
103+
return new DefaultLauncherSession(collectLauncherInterceptors(configurationParameters),
104+
() -> createDefaultLauncher(config, configurationParameters), () -> createLauncherSessionListener(config));
105105
}
106106

107107
/**
@@ -131,7 +131,7 @@ public static Launcher create(LauncherConfig config) throws PreconditionViolatio
131131
Preconditions.notNull(config, "LauncherConfig must not be null");
132132
LauncherConfigurationParameters configurationParameters = LauncherConfigurationParameters.builder().build();
133133
return new SessionPerRequestLauncher(() -> createDefaultLauncher(config, configurationParameters),
134-
createLauncherSessionListener(config), () -> collectLauncherInterceptors(configurationParameters));
134+
() -> createLauncherSessionListener(config), () -> collectLauncherInterceptors(configurationParameters));
135135
}
136136

137137
private static DefaultLauncher createDefaultLauncher(LauncherConfig config,

junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/SessionPerRequestLauncher.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ class SessionPerRequestLauncher implements Launcher {
2929

3030
private final LauncherListenerRegistry listenerRegistry = new LauncherListenerRegistry();
3131
private final Supplier<Launcher> launcherSupplier;
32-
private final LauncherSessionListener sessionListener;
32+
private final Supplier<LauncherSessionListener> sessionListenerSupplier;
3333
private final Supplier<List<LauncherInterceptor>> interceptorFactory;
3434

35-
SessionPerRequestLauncher(Supplier<Launcher> launcherSupplier, LauncherSessionListener sessionListener,
35+
SessionPerRequestLauncher(Supplier<Launcher> launcherSupplier,
36+
Supplier<LauncherSessionListener> sessionListenerSupplier,
3637
Supplier<List<LauncherInterceptor>> interceptorFactory) {
3738
this.launcherSupplier = launcherSupplier;
38-
this.sessionListener = sessionListener;
39+
this.sessionListenerSupplier = sessionListenerSupplier;
3940
this.interceptorFactory = interceptorFactory;
4041
}
4142

@@ -71,8 +72,8 @@ public void execute(TestPlan testPlan, TestExecutionListener... listeners) {
7172
}
7273

7374
private LauncherSession createSession() {
74-
LauncherSession session = new DefaultLauncherSession(launcherSupplier, interceptorFactory.get(),
75-
sessionListener);
75+
LauncherSession session = new DefaultLauncherSession(interceptorFactory.get(), launcherSupplier,
76+
sessionListenerSupplier);
7677
Launcher launcher = session.getLauncher();
7778
listenerRegistry.launcherDiscoveryListeners.getListeners().forEach(
7879
launcher::registerLauncherDiscoveryListeners);

platform-tooling-support-tests/projects/standalone/expected-err.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
.+ org.junit.platform.launcher.core.ServiceLoaderRegistry load
2+
.+ Loaded LauncherInterceptor instances: ..
3+
.+ org.junit.platform.launcher.core.ServiceLoaderRegistry load
24
.+ Loaded LauncherSessionListener instances: ..
35
.+ org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines
46
.+ Discovered TestEngines:

platform-tooling-support-tests/src/test/java/platform/tooling/support/tests/StandaloneTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ void test() throws IOException {
120120
.addArguments("--show-version") //
121121
.addArguments("-enableassertions") //
122122
.addArguments("-Djava.util.logging.config.file=logging.properties") //
123+
.addArguments("-Djunit.platform.launcher.interceptors.enabled=true") //
123124
.addArguments("-jar", MavenRepo.jar("junit-platform-console-standalone")) //
124125
.addArguments("--scan-class-path") //
125126
.addArguments("--disable-banner") //
@@ -153,6 +154,7 @@ void testOnJava8() throws IOException {
153154
.addArguments("--show-version") //
154155
.addArguments("-enableassertions") //
155156
.addArguments("-Djava.util.logging.config.file=logging.properties") //
157+
.addArguments("-Djunit.platform.launcher.interceptors.enabled=true") //
156158
.addArguments("-jar", MavenRepo.jar("junit-platform-console-standalone")) //
157159
.addArguments("--scan-class-path") //
158160
.addArguments("--disable-banner") //
@@ -187,6 +189,7 @@ void testOnJava8SelectPackage() throws IOException {
187189
.addArguments("--show-version") //
188190
.addArguments("-enableassertions") //
189191
.addArguments("-Djava.util.logging.config.file=logging.properties") //
192+
.addArguments("-Djunit.platform.launcher.interceptors.enabled=true") //
190193
.addArguments("-jar", MavenRepo.jar("junit-platform-console-standalone")) //
191194
.addArguments("--select-package", "standalone") //
192195
.addArguments("--disable-banner") //

0 commit comments

Comments
 (0)