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
`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()`