Unified Connector Framework Interfaces
OUTDATED
This page is outdated, it contains information that was not updated in a long time.
The described functionality may or may not work.
Do not rely on information provided on this page.
|
UCF API
Component: provisioniong/ucf-api
Primary interfaces are ConnectorFactory and ConnectorInstance. The UCF implementation is supposed to provide at least one implementation of ConnectorFactory. The ConnectorFactory implementation will produce instances of ConnectorInstance interface.
UCF Implementation
Currently there are two UCF implementations:
-
ucf-impl-connid: Implementation using the ConnId framework. This is used for almost all midPoint connectors.
-
ucf-impl-builtin: Implementation for specialized built-in connectors. This is used mostly for manual connectors.
UCF ConnId Implementation
Component: provisioniong/ucf-impl-connid
TODO: documentation
UCF Builtin Implementation
Component: provisioniong/ucf-impl-builtin
UCF implementation for built-in and specialized connectors. This a very thin implementation, heavily based on midPoint internals (e.g. Prism Objects) and Spring framework.
This implementation is looking for connector classes that have @ManagedConnector annotation and it tries to use them automatically. All "connectors" used by this implementation must be built together with midPoint. Therefore they either need to be part of midPoint itself, they need to be midPoint dependencies or they need to be glued to midPoint classpath by using maven overlay or a similar mechanism.
Manual Connectors
The UCF API has s specialized abstract class AbstractManualConnectorInstance
that can be used to create manual connectors.
Built-in manual connectors simply need to extend this class and implement the abstract methods.
The responsibility of a manual connector implementation is to create tickets (work orders) and to provide information about their state.
The default built-in manual connector implementation can be used as an example:
How To Create Manual Connector
-
Coordinate your effort with midPoint development team. See Development Participation.
-
Create a subclass of
AbstractManualConnectorInstance
:-
Implement the abstract methods
-
Use
@ManagedConnector
annotation
-
-
The implementation must be in
com.evolveum.midpoint package. Following root package is recommended:
com.evolveum.midpoint.provisioning.ucf.impl.builtin.connector.<yourBundleName>
-
Make sure that this implementation is on a class path when midPoint runs.
This method is only supported for connectors that are supposed to become (optional) part of midPoint. It is expected that the connectors will be available under open source license, preferably Apache License and that they will be contributed to the midPoint project. This method is not supported for commercial or per-project connectors. |