Package org.identityconnectors.framework.api


package org.identityconnectors.framework.api
The Connector API presents a consistent view of any Connector, regardless of which operations the connector actually implements. Common code implements the API in terms of the SPI, providing consistent behavior and common features. The developer of each Connector bundle implements (some subset of) the SPI, and thus inherits a certain amount of common behavior "for free".

For example, the common code that implements the API:

  • Provides connection pooling to each Connector that requires it. Not every Connector needs connection pooling, but those that do can "opt-in" simply by implementing a specific interface. The calling application that uses the API does not need to do anything in order to enable connection pooling, but can configure connection pooling.
  • Provides timeouts for all Connector operations. Common code provides this transparently to each implementation of the SPI. The API consumer may configure an appropriate timeout if the default is unacceptable.
  • Provides default implementations of advanced operations. A Connector developer may implement either simple or advanced versions of certain SPI operations such as update or search. The API consumer sees only the advanced version of such operations, regardless of which version the Connector developer implements.

In order to use the Connector API, an application must first use the ConnectorInfoManagerFactory to load a set of connector bundles. Connector bundles can be loaded locally or remotely. In either case, the ConnectorInfoManager that is returned allows the application to obtain an instance of ConnectorInfo that describes each of the available connector bundles.

The application then uses the ConnectorInfo to configure an instance of the connector. The application obtains the default configuration, lists the available configuration properties, and then sets values for configuration properties. Connector configuration properties typically include such target-specific information such as hostname, port number and the username and password to use in connecting to the target. The application then passes the APIConfiguration that it has tailored into ConnectorFacadeFactory.newInstance(org.identityconnectors.framework.api.APIConfiguration) to obtain an instance of ConnectorFacade. An instance of ConnectorFacade represents a configured instance of a connector.

Once the application has an instance of ConnectorFacade, the application can invoke any operation that it supports. In some cases, a connector facade may support certain operations only for certain object-classes. Each instance of ConnectorFacade describes the object-classes and the operations that it supports.