What are Connectors?

Connectors provide applications with a way to decouple from the resources that they connect to. ConnId is aimed at user provisioning and identity management, but is generalized enough to support several different kinds of applications. For example, in addition to basic CRUD operations, the API supports Search, Sync, Authenticate, and Scripting operations, as well as others.

Connectors themselves are self-contained bundles that ride on top of the Connectors Framework. Applications are completely separated from the bundles, so that different implementations can be swapped in and out without affecting the app or its dependencies.

What are the goals of this project?

At a high level: Provide a generic layer between applications and target resources.

At a lower level:

  • Offer generic features that are less resource-specific
  • Extract common functionality out to the framework (reduce duplication in resource adapters)
  • Server independence
  • More frequent release cycle
  • Continuous testing and improvement


What features does the Connectors Framework provide?

  • Connection pooling
  • Timeouts on all operations
  • Search filtering
  • Search and sync buffering and streaming of results
  • Scripting through Groovy
  • Classloader and JVM Isolation
  • Independent logging API/SPI (much like Apache Commons logging)
  • Opt-in operations that support simple and advanced implementations on the same CRUD operation
  • Logging proxy that captures all API calls

See the design overview for more information on the framework architecture.

How Do I Get Started Using Connectors?

To use Connectors in your application, start by downloading the ConnId base framework and placing the following jars on your classpath:

  • framework-XX.jar (compile and runtime dependency)
  • framework-internal-XX.jar (runtime dependency only)

where XX is the desired version.


Then, download the Connector Bundle(s) you'd like to use and add them to the classpath as well. Now you are ready to set up the ConnectorFacade and start programming to the API. See the API Info section for more details on this.

How Do I Write My Own Connector?

How Do I Contribute Code and Bug Fixes?

What is a Connector Server?

A Connector Server is roughly analogous to the Java RMI paradigm; it lets your application run provisioning operations on a connector bundle that is deployed on a remote machine.