Class TimeoutExtensionDispatcher
- java.lang.Object
-
- org.apache.maven.plugin.surefire.extensions.timeout.TimeoutExtensionDispatcher
-
public final class TimeoutExtensionDispatcher extends java.lang.ObjectDiscovers and invokesForkedProcessTimeoutExtensioninstances when a forked test JVM is killed due toforkedProcessTimeoutInSeconds.Extensions are loaded once per Surefire run via
ServiceLoaderfrom the plugin classloader (the same classloader that loaded theForkedProcessTimeoutExtensioninterface).Each extension callback is invoked on an internal executor and capped at
PER_CALLBACK_TIMEOUT_SECONDSseconds; any thrownThrowableor timeout is logged at warn level and never affects the test result.- Since:
- 3.6.0
-
-
Field Summary
Fields Modifier and Type Field Description static intPER_CALLBACK_TIMEOUT_SECONDSMaximum wall-clock time allowed per extension callback.
-
Constructor Summary
Constructors Constructor Description TimeoutExtensionDispatcher(org.apache.maven.plugin.surefire.log.api.ConsoleLogger logger)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Shuts down the internal executor.voidfireForkExited(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext context, org.apache.maven.surefire.api.suite.RunResult result)Synchronously invokesForkedProcessTimeoutExtension.onForkExited(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext, org.apache.maven.surefire.api.suite.RunResult)on every registered extension, after the forked JVM exited.voidfireTimeoutDetected(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext context)Synchronously invokesForkedProcessTimeoutExtension.onTimeoutDetected(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext)on every registered extension.booleanhasExtensions()
-
-
-
Field Detail
-
PER_CALLBACK_TIMEOUT_SECONDS
public static final int PER_CALLBACK_TIMEOUT_SECONDS
Maximum wall-clock time allowed per extension callback.- See Also:
- Constant Field Values
-
-
Method Detail
-
hasExtensions
public boolean hasExtensions()
- Returns:
truewhen at least one extension is registered
-
fireTimeoutDetected
public void fireTimeoutDetected(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext context)
Synchronously invokesForkedProcessTimeoutExtension.onTimeoutDetected(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext)on every registered extension. Should be called immediately after Surefire detects the timeout and before the kill is sent.
-
fireForkExited
public void fireForkExited(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext context, org.apache.maven.surefire.api.suite.RunResult result)Synchronously invokesForkedProcessTimeoutExtension.onForkExited(org.apache.maven.surefire.extensions.ForkedProcessTimeoutContext, org.apache.maven.surefire.api.suite.RunResult)on every registered extension, after the forked JVM exited.
-
close
public void close()
Shuts down the internal executor. Safe to call multiple times.
-
-