Skip to content

Commit

Permalink
Load interceptors before sessions listeners
Browse files Browse the repository at this point in the history
  • Loading branch information
marcphilipp committed Jan 10, 2023
1 parent 95a48ad commit d65913c
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@
*/
class DefaultLauncherSession implements LauncherSession {

private final DelegatingCloseableLauncher<CloseableLauncher> launcher;
private final LauncherSessionListener listener;
private final DelegatingCloseableLauncher<CloseableLauncher> launcher;

DefaultLauncherSession(Supplier<Launcher> launcherSupplier, List<LauncherInterceptor> interceptors,
LauncherSessionListener listener) {
DefaultLauncherSession(List<LauncherInterceptor> interceptors, Supplier<Launcher> launcherSupplier,
Supplier<LauncherSessionListener> listenerSupplier) {
this.listener = listenerSupplier.get();
CloseableLauncher closeableLauncher = InterceptingClosableLauncher.decorate(launcherSupplier, interceptors);
this.launcher = new DelegatingCloseableLauncher<>(closeableLauncher, delegate -> {
delegate.close();
return ClosedLauncher.INSTANCE;
});
this.listener = listener;
listener.launcherSessionOpened(this);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ public static LauncherSession openSession() throws PreconditionViolationExceptio
public static LauncherSession openSession(LauncherConfig config) throws PreconditionViolationException {
Preconditions.notNull(config, "LauncherConfig must not be null");
LauncherConfigurationParameters configurationParameters = LauncherConfigurationParameters.builder().build();
return new DefaultLauncherSession(() -> createDefaultLauncher(config, configurationParameters),
collectLauncherInterceptors(configurationParameters), createLauncherSessionListener(config));
return new DefaultLauncherSession(collectLauncherInterceptors(configurationParameters),
() -> createDefaultLauncher(config, configurationParameters), () -> createLauncherSessionListener(config));
}

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

private static DefaultLauncher createDefaultLauncher(LauncherConfig config,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,14 @@ class SessionPerRequestLauncher implements Launcher {

private final LauncherListenerRegistry listenerRegistry = new LauncherListenerRegistry();
private final Supplier<Launcher> launcherSupplier;
private final LauncherSessionListener sessionListener;
private final Supplier<LauncherSessionListener> sessionListenerSupplier;
private final Supplier<List<LauncherInterceptor>> interceptorFactory;

SessionPerRequestLauncher(Supplier<Launcher> launcherSupplier, LauncherSessionListener sessionListener,
SessionPerRequestLauncher(Supplier<Launcher> launcherSupplier,
Supplier<LauncherSessionListener> sessionListenerSupplier,
Supplier<List<LauncherInterceptor>> interceptorFactory) {
this.launcherSupplier = launcherSupplier;
this.sessionListener = sessionListener;
this.sessionListenerSupplier = sessionListenerSupplier;
this.interceptorFactory = interceptorFactory;
}

Expand Down Expand Up @@ -71,8 +72,8 @@ public void execute(TestPlan testPlan, TestExecutionListener... listeners) {
}

private LauncherSession createSession() {
LauncherSession session = new DefaultLauncherSession(launcherSupplier, interceptorFactory.get(),
sessionListener);
LauncherSession session = new DefaultLauncherSession(interceptorFactory.get(), launcherSupplier,
sessionListenerSupplier);
Launcher launcher = session.getLauncher();
listenerRegistry.launcherDiscoveryListeners.getListeners().forEach(
launcher::registerLauncherDiscoveryListeners);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.+ org.junit.platform.launcher.core.ServiceLoaderRegistry load
.+ Loaded LauncherInterceptor instances: ..
.+ org.junit.platform.launcher.core.ServiceLoaderRegistry load
.+ Loaded LauncherSessionListener instances: ..
.+ org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines
.+ Discovered TestEngines:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ void test() throws IOException {
.addArguments("--show-version") //
.addArguments("-enableassertions") //
.addArguments("-Djava.util.logging.config.file=logging.properties") //
.addArguments("-Djunit.platform.launcher.interceptors.enabled=true") //
.addArguments("-jar", MavenRepo.jar("junit-platform-console-standalone")) //
.addArguments("--scan-class-path") //
.addArguments("--disable-banner") //
Expand Down Expand Up @@ -153,6 +154,7 @@ void testOnJava8() throws IOException {
.addArguments("--show-version") //
.addArguments("-enableassertions") //
.addArguments("-Djava.util.logging.config.file=logging.properties") //
.addArguments("-Djunit.platform.launcher.interceptors.enabled=true") //
.addArguments("-jar", MavenRepo.jar("junit-platform-console-standalone")) //
.addArguments("--scan-class-path") //
.addArguments("--disable-banner") //
Expand Down Expand Up @@ -187,6 +189,7 @@ void testOnJava8SelectPackage() throws IOException {
.addArguments("--show-version") //
.addArguments("-enableassertions") //
.addArguments("-Djava.util.logging.config.file=logging.properties") //
.addArguments("-Djunit.platform.launcher.interceptors.enabled=true") //
.addArguments("-jar", MavenRepo.jar("junit-platform-console-standalone")) //
.addArguments("--select-package", "standalone") //
.addArguments("--disable-banner") //
Expand Down

0 comments on commit d65913c

Please sign in to comment.