All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.identityconnectors.framework.api.package.html Maven / Gradle / Ivy

The newest version!




Identity Connectors 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 {@link org.identityconnectors.framework.spi.PoolableConnector a specific interface}. The calling application that uses the API does not need to do anything in order to enable connection pooling, but can {@link org.identityconnectors.framework.api.APIConfiguration#getConnectorPoolConfiguration 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 {@link org.identityconnectors.framework.spi.operations 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 {@link org.identityconnectors.framework.api.ConnectorInfoManagerFactory} to load a set of connector bundles. Connector bundles can be loaded {@link org.identityconnectors.framework.api.ConnectorInfoManagerFactory#getLocalManager locally} or {@link org.identityconnectors.framework.api.ConnectorInfoManagerFactory#getRemoteManager remotely}. In either case, the {@link org.identityconnectors.framework.api.ConnectorInfoManager} that is returned allows the application to obtain an instance of {@link org.identityconnectors.framework.api.ConnectorInfo} that describes each of the available connector bundles.

The application then uses the ConnectorInfo to configure an instance of the connector. The application {@link org.identityconnectors.framework.api.ConnectorInfo#createDefaultAPIConfiguration obtains the default configuration}, {@link org.identityconnectors.framework.api.APIConfiguration#getConfigurationProperties lists the available configuration properties}, and then {@link org.identityconnectors.framework.api.ConfigurationProperty#setValue 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 {@link org.identityconnectors.framework.api.ConnectorFacadeFactory#newInstance} to obtain an instance of {@link org.identityconnectors.framework.api.ConnectorFacade}. An instance of ConnectorFacade represents a configured instance of a connector.

Once the application has an instance of ConnectorFacade, the application can invoke {@link org.identityconnectors.framework.api.ConnectorFacade#getSupportedOperations any operation that it supports}. In some cases, a connector facade may support certain operations only for certain object-classes. Each instance of ConnectorFacade {@link org.identityconnectors.framework.api.operations.SchemaApiOp#schema describes the object-classes and the operations that it supports}.





© 2015 - 2024 Weber Informatics LLC | Privacy Policy