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)
More frequent release cycle
Continuous testing and improvement
What features does the Connectors Framework provide?
Timeouts on all operations
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:
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.