Connectors: adding new ones

ConnId framework was chosen as the basic implementation. It is a direct successor of the OpenICF framework.

If needed, another ConnId connector can be added into the system by:

  • Maven dependency in the IdM-parent module (the above mentioned 3 basic connectors are connected in this way).
  • Maven dependency in any other module (searching for available modules takes place in all the system modules).
  • adding a jar distribution of the connector directly into the libraries of the resulting war.

Searching for available ConnId connectors is based on the presence of the @ConnectorClass annotation. Due to optimization reasons the class path isn't searched completely and the search is performed only on the packages defined in module-ic.properties (in 'ic.localconnector.packages' property). Only a part of the path can be defined. As default value is set 'net.tirasa.connid', which should ensure accessibility of all ConnId connectors (the setting supports more values).

After some implementation scripted SQL connector on our projects, we are meet with probable memory leak in Scripted SQL Connector, (read some discussion about this problem #563 or similar problem on stackoverflow.com).

Try don't use Scripted SQL Connector, but if you don't have any another choice use this connector rather on remote connector server than direct on IdM

Solution of this problem is fork connector-framework-internal-1.4.2.0.jar and update execute method on GroovyScriptExecutorFactory with cache. Similar cache we use in DefaultGroovyScriptService