anchor.diff:  [[extensions-supported-utilities]]
   === Supported Utilities in Extensions
   
  -The JUnit Platform Commons artifact exposes a package named `{junit-platform-support-package}` that
  -contains _maintained_ utility methods for working with annotations, reflection, and classpath
  -scanning tasks. `TestEngine` and `Extension` authors are encouraged to use these supported methods
  -in order to align with the behavior of the JUnit Platform.
  -
  -=== Relative Order of User-provided and Extension Code
  -
  -When executing a test class with several test methods a number of callbacks are called in addition
  -to the user-provided test and lifecycle methods.
  -The following diagramm illustrates the relative order of user-provided and extension code.
  +The JUnit Platform Commons artifact exposes a package named
  +`{junit-platform-support-package}` that contains _maintained_ utility methods for working
  +with annotations, reflection, and classpath scanning tasks. `TestEngine` and `Extension`
  +authors are encouraged to use these supported methods in order to align with the behavior
  +of the JUnit Platform.
  +
  +[[extensions-execution-order]]
  +=== Relative Execution Order of User Code and Extensions
  +
  +When executing a test class that contains one or more test methods, a number of extension
  +callbacks are called in addition to the user-provided test and lifecycle methods. The
  +following diagram illustrates the relative order of user-provided code and extension code.
   
   [[extensions-lifecycle]]
  -image::extensions_lifecycle.png[caption="Figure 2: ", title="User-provided and extension code"]
  -
  -User-provided test and lifecycle methods are shown in orange and callback code provided by
  -extensions in blue. The grey box denotes the execution of a single test method and will be
  -repeated for every test method in the test class.
  -
  -The following table further explains the twelve steps in Figure 2:
  +image::extensions_lifecycle.png[caption="Figure 2: ", title="User code and extension code"]
  +
  +User-provided test and lifecycle methods are shown in orange, with callback code provided
  +by extensions shown in blue. The grey box denotes the execution of a single test method
  +and will be repeated for every test method in the test class.
  +
  +The following table further explains the twelve steps in Figure 2.
   
   [cols="5,15,80"]
   |===
  
positive.code: 
  | 7
  | interface `org.junit.jupiter.api.extension.TestExecutionExceptionHandler`
  | extension code for manipulating exceptions that occurred during a test
  
  | 8
  | interface `org.junit.jupiter.api.extension.AfterTestExecutionCallback`
  | extension code executed right after a test is executed and its exception is handled
  
  | 9
  | annotation `org.junit.jupiter.api.AfterEach`
  
negative.code: 
  | 5
  | interface `org.junit.jupiter.api.extension.BeforeTestExecutionCallback`
  | extension code executed immediately before a test is executed
  
  | 6
  | annotation `org.junit.jupiter.api.Test`
  