Hello Francesco,
thanks for the reply, and actually the tips of the
ReloadScriptOnExecution was really useful to debug the code.
Regards
On 21.03.17 08:59, Francesco Chicchiriccò wrote:
On 20/03/2017 15:45, Tech wrote:
Dear experts,
we are trying to configure a REST Web Service, but we don't how it
should be deployed.
We found in the /test directory some groovy script to
Create/Update/etc, but we don't understand in a real environment
where these script should be copied before compiling.
Hi,
both the Scripted REST [1] and the Scripted SQL [2] connector bundles
share the same approach: the actual implementation of the ConnId
operations (e.g. the child classes of [3], as CREATE, UPDATE, DELETE,
SEARCH, SYNC, AUTHENTICATE, ...) is delegated to individual Groovy
scripts.
The immediate benefit of this approach is that you can adapt the
actual logic for dealing with a specific REST service or a given
database, thus achieving the maximum flexibility; the downside is that
you need to code the scripts, and this requires some skills.
You can find some samples of scripts for the REST connector in the folder
core/src/test/resources/rest
of your generated Maven project, or at [4], and scripts for the
Scripted SQL connector in the folder
core/src/test/resources/scriptedsql
of your generated Maven project, or at [5].
As you can easily figure out, the actual script content only makes
sense when dealing with the specific REST service / database they were
designed for, e.g. [6] and [7] respectively.
An important feature for speeding up the development of these scripts
is the 'Reload Script On Execution' connector property: when set to
true, each script is reloaded and recompiled every time it is called,
e.g. every time that the corresponding ConnId operation is invoked by
Syncope.
In this way one can immediately check if the script is running fine or
find out errors.
Please do not forge to disable this property once running in production!
Finally, consider that each script can be passed - in the connector
configuration - either as actual content or as absolute file path:
this is the reason why there are "Create Script" and "Create Script
Filename", "Update Script" and "Update Script Filename", etc.
Hope this clarifies.
Regards.
[1] https://connid.atlassian.net/wiki/display/BASE/REST
[2] https://connid.atlassian.net/wiki/display/BASE/Scripted+SQL
[3]
http://connid.tirasa.net/apidocs/1.4/org/identityconnectors/framework/spi/operations/SPIOperation.html
[4]
https://github.com/apache/syncope/tree/2_0_X/fit/core-reference/src/test/resources/rest
[5]
https://github.com/apache/syncope/tree/2_0_X/fit/core-reference/src/test/resources/scriptedsql
[6]
https://github.com/apache/syncope/blob/2_0_X/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/cxf/UserService.java
[7]
https://github.com/apache/syncope/blob/2_0_X/fit/build-tools/src/main/resources/testdb.sql#L46-L51