Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
devel:documentation:systems:dev:supported-connectors [2019/02/26 08:44]
kotisovam greater part moved to the admin guide section
devel:documentation:systems:dev:supported-connectors [2022/08/23 13:49]
apeterova deleted old info about memory leak - no longer valid when using pooling
Line 1: Line 1:
-====== Connectors: adding new ones======+====== Connectors: adding new ones ====== 
 {{tag>connector}} {{tag>connector}}
- 
  
 ===== ConnId connectors ===== ===== ConnId connectors =====
Line 7: Line 7:
 [[http://connid.tirasa.net/|ConnId framework]] was chosen as the basic implementation. It is a direct successor of the OpenICF framework. [[http://connid.tirasa.net/|ConnId framework]] was chosen as the basic implementation. It is a direct successor of the OpenICF framework.
  
 +===== Adding more connectors =====
  
-===== Adding more connectors ===== 
 If needed, another ConnId connector can be added into the system by: 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 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).   * 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**. +  * 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  [[https://github.com/bcvsolutions/CzechIdMng/blob/develop/Realization/backend/ic/src/main/resources/module-ic.properties|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). +
- +
-===== Probable memory leak in Scripted SQL Connector ===== +
-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 [[https://redmine.czechidm.com/issues/563|#563]] or similar problem on [[https://stackoverflow.com/questions/36407119/groovyshell-in-java8-memory-leak-duplicated-classes-src-code-load-test-pr|stackoverflow.com]]). +
- +
-<note tip>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</note>+
  
-Solution of this problem is fork connector-framework-internal-1.4.2.0.jar and update execute method on [[https://github.com/Evolveum/openicf/blob/release1.4.2.0/framework/java/connector-framework-internal/src/main/java/org/identityconnectors/common/script/groovy/GroovyScriptExecutorFactory.java#L67-L71|GroovyScriptExecutorFactory]] with cache. Similar cache we use in [[https://github.com/bcvsolutions/CzechIdMng/blob/develop/Realization/backend/core/core-impl/src/main/java/eu/bcvsolutions/idm/core/model/service/impl/DefaultGroovyScriptService.java#L71-L77|DefaultGroovyScriptService]]+Searching for available ConnId connectors is based on the presence of the **@ConnectorClass**  annotationDue to optimization reasons the class path isn't searched completely and the search is performed only on the packages defined in [[https://github.com/bcvsolutions/CzechIdMng/blob/develop/Realization/backend/ic/src/main/resources/module-ic.properties|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).
  
  
  • by apeterova