An Extension
can be registered declaratively via
@ExtendWith
, programmatically via
@RegisterExtension
, or automatically via
the java.
mechanism. For details on the latter,
consult the User Guide.
Extension implementations must have a default constructor if
registered via @ExtendWith
or the ServiceLoader
. When
registered via @ExtendWith
the default constructor is not required
to be public
. When registered via the ServiceLoader
the
default constructor must be public
. When registered via
@RegisterExtension
the extension's constructors typically must be
public
unless the extension provides static
factory methods
or a builder API as an alternative to constructors.