initial setup for SHACL based validation
Created by: chenejac
What does this pull request do?
This PR is introducing an engine for validation of dynamic actions and resourceAPIs over defined SHACL rules.
What's new?
SHACL rules for validation has been defined (but will be refined in some future PRs). Validation of dynamic actions and resourceAPIs might be done:
- Before loading into the graph base. This is not turned-on yet in regular Vitro application, but is tested by a unit test. See also this
- As part of bean loading process. This is also tested by a unit test.
How should this be tested?
New functionality is covered by three unit tests in the ActionPoolTest. Also, RESTEndpointIntegrationTest is enriched to try to load a not valid Action, which is not available through REST endpoint (because BeanLoader is not loading that in the Pool as an invalid action and resourceAPI), although it is loaded in the graph.
Additional Notes:
Any additional information that you think would be helpful when reviewing this PR.
- Does this change add any new dependencies? Yes, Topbraid SHACL library is used for validation - https://mvnrepository.com/artifact/org.topbraid/shacl
Interested parties
Tag (@ mention) interested parties or, if unsure, @VIVO-project/vivo-committers