Package: groovy.junit6.plugin

## [Java] Class ForkedJvmExtension

- groovy.junit6.plugin.ForkedJvmExtension

- All Implemented Interfaces and Traits:
    InvocationInterceptor

      public class ForkedJvmExtension
      extends Object
      implements InvocationInterceptor

  JUnit 5 InvocationInterceptor backing the ForkedJvm annotation. When applied, the test method is skipped in the current JVM and re-run in a freshly forked JVM via ForkedJvmTestRunner, with any declared system properties and JVM args.

  Recursion is avoided by setting the system property ForkedJvmTestRunner.FORKED_FLAG on the child; when the extension sees that flag set in the current JVM it just proceeds with the normal invocation (i.e. the child JVM actually runs the test body).

  Since:
    6.0.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `EXCLUDE_CLASSPATH_PROP` | System property naming a comma-separated list of regular expressions to exclude from the parent's `java.class.path` when building the forked JVM's classpath.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public static String` | `filterClasspath(String classpath, List<Pattern> excludes)` Filters `classpath` (a File.pathSeparator-separated list) by dropping entries that match any of the supplied regular expressions via Matcher.find.
    `` | `public void` | `interceptTestMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext, ExtensionContext extensionContext)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### public static final String EXCLUDE_CLASSPATH_PROP

      System property naming a comma-separated list of regular expressions to exclude from the parent's `java.class.path` when building the forked JVM's classpath. Augments ForkedJvm.excludeFromClasspath.

  - ### Method Detail

    - #### public static String filterClasspath(String classpath, List<Pattern> excludes)

      Filters `classpath` (a File.pathSeparator-separated list) by dropping entries that match any of the supplied regular expressions via Matcher.find. Visible for testing.

      Parameters:
        `classpath` - the original classpath string
        `excludes` - regex patterns; an empty list returns `classpath` unchanged
      Returns:
        the filtered classpath string

    - #### public void interceptTestMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext, ExtensionContext extensionContext)