@API(status=INTERNAL,
since="5.0")
public class ExtensionRegistry
extends java.lang.Object
ExtensionRegistry holds all registered extensions (i.e.
instances of Extension) for a given
Node.
A registry has a reference to its parent registry, and all lookups are performed first in the current registry itself and then recursively in its ancestors.
| Modifier and Type | Method and Description |
|---|---|
static ExtensionRegistry |
createRegistryFrom(ExtensionRegistry parentRegistry,
java.util.List<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>> extensionTypes)
Factory for creating and populating a new registry from a list of
extension types and a parent registry.
|
static ExtensionRegistry |
createRegistryWithDefaultExtensions(org.junit.platform.engine.ConfigurationParameters configParams)
Factory for creating and populating a new root registry with the default
extensions.
|
<E extends org.junit.jupiter.api.extension.Extension> |
getExtensions(java.lang.Class<E> extensionType)
Get all
Extensions of the specified type that are present
in this registry or one of its ancestors. |
<E extends org.junit.jupiter.api.extension.Extension> |
getReversedExtensions(java.lang.Class<E> extensionType)
Get all
Extensions of the specified type that are present
in this registry or one of its ancestors, in reverse order. |
void |
registerExtension(org.junit.jupiter.api.extension.Extension extension,
java.lang.Object source)
Register the supplied
Extension in this registry, without checking
if an extension of that type already exists in this registry. |
<E extends org.junit.jupiter.api.extension.Extension> |
stream(java.lang.Class<E> extensionType)
Stream all
Extensions of the specified type that are present
in this registry or one of its ancestors. |
public static ExtensionRegistry createRegistryWithDefaultExtensions(org.junit.platform.engine.ConfigurationParameters configParams)
If the Constants.EXTENSIONS_AUTODETECTION_ENABLED_PROPERTY_NAME
configuration parameter has been set to true, extensions will be
auto-detected using Java's ServiceLoader mechanism and automatically
registered after the default extensions.
configParams - configuration parameters used to retrieve the extension
auto-detection flag; never nullExtensionRegistry; never nullpublic static ExtensionRegistry createRegistryFrom(ExtensionRegistry parentRegistry, java.util.List<java.lang.Class<? extends org.junit.jupiter.api.extension.Extension>> extensionTypes)
parentRegistry - the parent registryextensionTypes - the types of extensions to be registered in
the new registryExtensionRegistry; never nullpublic <E extends org.junit.jupiter.api.extension.Extension> java.util.stream.Stream<E> stream(java.lang.Class<E> extensionType)
Extensions of the specified type that are present
in this registry or one of its ancestors.extensionType - the type of Extension to streamgetReversedExtensions(Class),
getExtensions(Class)public <E extends org.junit.jupiter.api.extension.Extension> java.util.List<E> getExtensions(java.lang.Class<E> extensionType)
Extensions of the specified type that are present
in this registry or one of its ancestors.extensionType - the type of Extension to getgetReversedExtensions(Class),
stream(Class)public <E extends org.junit.jupiter.api.extension.Extension> java.util.List<E> getReversedExtensions(java.lang.Class<E> extensionType)
Extensions of the specified type that are present
in this registry or one of its ancestors, in reverse order.extensionType - the type of Extension to getgetExtensions(Class),
stream(Class)public void registerExtension(org.junit.jupiter.api.extension.Extension extension,
java.lang.Object source)
Extension in this registry, without checking
if an extension of that type already exists in this registry.
If an extension is registered declaratively via @ExtendWith,
the source and the extension should be the same object. However,
if an extension is registered programmatically — for example, as a lambda
expression or method reference — the source object should be the
underlying Method that implements the extension
API, or similar.
extension - the extension to registersource - the source of the extension