Package org.firebirdsql.jaybird.props.spi

## Interface ConnectionPropertyDefinerSpi

-     public interface ConnectionPropertyDefinerSpi

  Service provider interface to define connection properties in Jaybird.

  These properties are loaded through `ServiceLoader`. The library or user code that wants to expose additional connection properties to Jaybird should define the implementation class(es) of this interface in `META-INF/services/org.firebirdsql.jaybird.props.spi.ConnectionPropertyDefinerSpi`. This should be located in the same class path or class loader as Jaybird.

  Since:
    5
  Author:
    Mark Rotteveel

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.stream.Stream<ConnectionProperty>` | `defineProperties()` | Defines the connection properties to add to Jaybird.
    `void` | `notRegistered​(ConnectionProperty connectionProperty)` | Callback method to inform the definer that a property has not been added to the collection of properties known to Jaybird.

- - ### Method Detail

    - #### defineProperties

          java.util.stream.Stream<ConnectionProperty> defineProperties()

      Defines the connection properties to add to Jaybird.

      If the property name (`ConnectionProperty.name()`), one of the aliases (`ConnectionProperty.aliases()`), the non-default `ConnectionProperty.dpbItem()` or non-default `ConnectionProperty.spbItem()` is already defined, the property will be skipped entirely. This will be logged, but will not produce an error, instead the method `notRegistered(ConnectionProperty)` will be called for that property. This does not apply to properties where `ConnectionProperty.isIdenticalTo(ConnectionProperty)` returns true for the existing property.

      Returns:
        stream of properties to define

    - #### notRegistered

          void notRegistered​(ConnectionProperty connectionProperty)

      Callback method to inform the definer that a property has not been added to the collection of properties known to Jaybird.
      Parameters:
        `connectionProperty` - connection property that was not registered
      See Also:
        `defineProperties()`