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
org.identityconnectors.framework.impl.api.local.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.