A Stateful Configuration interface extends the default
Configuration
and makes the framework keep the same instance.
The default Configuration object instance is constructed every single time
before the
Connector.init(Configuration)
is called. If the
configuration class implements this interface then the Framework keeps one
instance of Configuration and the
Connector.init(Configuration)
is
called with the same instance. This requires extra caution because the
framework only guaranties to create one instance and set the properties
before it calls the
Connector.init(Configuration)
on different
connector instances in multiple different threads at the same time. The
Connector developer must quarantine that the necessary resource
initialisation are thread-safe.
If the connector implements the
PoolableConnector
then this
configuration is kept in the
ConnectorPoolManager
and when the
org.identityconnectors.framework.impl.api.local.ConnectorPoolManager#dispose()
calls the
release()
method. If the connector implements only the
Connector
then this configuration is kept in the
ConnectorFacade
and the
application must take care of releasing.