Interface ExtensionRegistrar

All Known Implementing Classes:
MutableExtensionRegistry

@API(status=INTERNAL, since="5.5") public interface ExtensionRegistrar
An ExtensionRegistrar is used to register extensions.
Since:
5.5
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    registerExtension​(Class<? extends Extension> extensionType)
    Instantiate an extension of the given type using its default constructor and register it in the registry.
    void
    registerExtension​(Extension extension, Object source)
    Register the supplied Extension, without checking if an extension of that type has already been registered.
    void
    Register the supplied Extension as a synthetic extension, without checking if an extension of that type has already been registered.
  • Method Details

    • registerExtension

      void registerExtension(Class<? extends Extension> extensionType)
      Instantiate an extension of the given type using its default constructor and register it in the registry.

      A new Extension should not be registered if an extension of the given type already exists in the registry or a parent registry.

      Parameters:
      extensionType - the type of extension to register
      Since:
      5.8
    • registerExtension

      void registerExtension(Extension extension, Object source)
      Register the supplied Extension, without checking if an extension of that type has already been registered.

      Semantics for Source

      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 via @RegisterExtension, the source object should be the Field that is annotated with @RegisterExtension. Similarly, if an extension is registered programmatically as a lambda expression or method reference, the source object should be the underlying Method that implements the extension API.

      Parameters:
      extension - the extension to register; never null
      source - the source of the extension; never null
    • registerSyntheticExtension

      void registerSyntheticExtension(Extension extension, Object source)
      Register the supplied Extension as a synthetic extension, without checking if an extension of that type has already been registered.
      Parameters:
      extension - the extension to register; never null
      source - the source of the extension; never null
      Since:
      5.8
      See Also:
      registerExtension(Extension, Object)