Task #2856
closedLRT for code list synchronization
100%
Description
Now there is no option how to synchronize code list into IdM automatically.
This task will use system definition. It's required to have the right configuration and schema.
Then you can choose this system in LRT config and data is loaded via connector facade.
This approach is better for configuration and when sync of code list will became native in product, then you need to add mapping and sync into already existed system.
Files
Updated by Roman Kučera over 3 years ago
implementation in https://github.com/bcvsolutions/czechidm-extras/tree/2856-lrt-code-list-sync
TODO
docs and tests
Updated by Roman Kučera over 3 years ago
- % Done changed from 70 to 90
Test implemented, line coverage 83%
Updated by Roman Kučera over 3 years ago
- Status changed from In Progress to Needs feedback
Updated by Roman Kučera over 3 years ago
- Assignee changed from Roman Kučera to Tomáš Doischer
Updated by Tomáš Doischer over 3 years ago
- File csvcodelist.zip csvcodelist.zip added
The code looks good, I've found no issues.
I've tested the LRT with a CSV system and it failed with exception:
java.lang.UnsupportedOperationException: Operation Synchronization is not supported. Use reconscilation instead! at eu.bcvsolutions.idm.connectors.csv.CSVConnConnector.sync(CSVConnConnector.java:113) at org.identityconnectors.framework.impl.api.local.operations.SyncImpl.sync(SyncImpl.java:137) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:98) at com.sun.proxy.$Proxy527.sync(Unknown Source) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:96) at com.sun.proxy.$Proxy527.sync(Unknown Source) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.identityconnectors.framework.impl.api.BufferedResultsProxy$BufferedResultsHandler.run(BufferedResultsProxy.java:165)
The CSV I'm using is really simple but I think it should be sufficient:
item number1 number2 number3
The exported system is attached.
I also really think the documentation should be extended a little bit. The configuration of the LRT is simple and its description is sufficient but I'd expect to see a bit more information about the system configuration.
Also, a more nice-to-have feature would be the ability to select whether you want to create, update or delete items during synchronization. Whether or not you implement it is up to you but the code is structured nicely, so this should be really easy to implement.
Updated by Tomáš Doischer over 3 years ago
- Status changed from Needs feedback to In Progress
- Assignee changed from Tomáš Doischer to Roman Kučera
Updated by Roman Kučera over 3 years ago
@doischert The connector must support sync operation. I tried to load the data from system in other ways but it caused more complications (incomplete date). This info is added to docs.
https://wiki.czechidm.com/devel/documentation/modules_extras/sync_code_list_items
I also added more info how to prepare the system for this LRT so hopefully it's OK now.
Updated by Tomáš Doischer over 3 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
Thank you, LGTM.