This is an automated email from the ASF dual-hosted git repository.

jkevan pushed a commit to branch eventValidationEndPoint
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/eventValidationEndPoint by 
this push:
     new a16555aa1 UNOMI-754: new jsonSchema endpoint to be able to validate 
events and get validation error messages
a16555aa1 is described below

commit a16555aa11493ccca64cce1bdf104f58b825e8ca
Author: Kevan <ke...@jahia.com>
AuthorDate: Wed Mar 22 21:41:51 2023 +0100

    UNOMI-754: new jsonSchema endpoint to be able to validate events and get 
validation error messages
---
 .../java/org/apache/unomi/schema/rest/JsonSchemaEndPoint.java     | 4 ++--
 .../src/main/java/org/apache/unomi/schema/api/SchemaService.java  | 2 +-
 .../api/{ValidationMessageWrapper.java => ValidationError.java}   | 6 +++---
 .../main/java/org/apache/unomi/schema/impl/SchemaServiceImpl.java | 8 ++++----
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git 
a/extensions/json-schema/rest/src/main/java/org/apache/unomi/schema/rest/JsonSchemaEndPoint.java
 
b/extensions/json-schema/rest/src/main/java/org/apache/unomi/schema/rest/JsonSchemaEndPoint.java
index 4bb637445..fdb919538 100644
--- 
a/extensions/json-schema/rest/src/main/java/org/apache/unomi/schema/rest/JsonSchemaEndPoint.java
+++ 
b/extensions/json-schema/rest/src/main/java/org/apache/unomi/schema/rest/JsonSchemaEndPoint.java
@@ -21,7 +21,7 @@ import 
org.apache.cxf.rs.security.cors.CrossOriginResourceSharing;
 import org.apache.unomi.rest.exception.InvalidRequestException;
 import org.apache.unomi.schema.api.JsonSchemaWrapper;
 import org.apache.unomi.schema.api.SchemaService;
-import org.apache.unomi.schema.api.ValidationMessageWrapper;
+import org.apache.unomi.schema.api.ValidationError;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
@@ -126,7 +126,7 @@ public class JsonSchemaEndPoint {
     @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
     @Consumes({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON })
     @Path("/validateEvent")
-    public Collection<ValidationMessageWrapper> validateEvent(String event) {
+    public Collection<ValidationError> validateEvent(String event) {
         try {
             return schemaService.validateEvent(event);
         } catch (Exception e) {
diff --git 
a/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/SchemaService.java
 
b/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/SchemaService.java
index 1553dd50b..176c8f4f5 100644
--- 
a/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/SchemaService.java
+++ 
b/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/SchemaService.java
@@ -61,7 +61,7 @@ public interface SchemaService {
      * @return true is the event is valid
      * @throws ValidationException in case something goes wrong and validation 
could not be performed.
      */
-    Set<ValidationMessageWrapper> validateEvent(String event) throws 
ValidationException;
+    Set<ValidationError> validateEvent(String event) throws 
ValidationException;
 
     /**
      * Get the list of installed Json Schema Ids
diff --git 
a/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationMessageWrapper.java
 
b/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationError.java
similarity index 90%
rename from 
extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationMessageWrapper.java
rename to 
extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationError.java
index 3b0dcc89a..85aef8afb 100644
--- 
a/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationMessageWrapper.java
+++ 
b/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/api/ValidationError.java
@@ -23,13 +23,13 @@ import java.io.Serializable;
 
 /**
  * Just a bean wrapping JSON Schema validation messages to avoid exposing the 
lib classes to other OSGI bundles.
- * (It allows keeping control on the underlying validation system)
+ * (It allows keeping control on the underlying validation system, but also on 
share valuable error info)
  */
-public class ValidationMessageWrapper implements Serializable {
+public class ValidationError implements Serializable {
 
     private transient final ValidationMessage validationMessage;
 
-    public ValidationMessageWrapper(ValidationMessage validationMessage) {
+    public ValidationError(ValidationMessage validationMessage) {
         this.validationMessage = validationMessage;
     }
 
diff --git 
a/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/impl/SchemaServiceImpl.java
 
b/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/impl/SchemaServiceImpl.java
index 75b50e4a6..2371738b6 100644
--- 
a/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/impl/SchemaServiceImpl.java
+++ 
b/extensions/json-schema/services/src/main/java/org/apache/unomi/schema/impl/SchemaServiceImpl.java
@@ -32,7 +32,7 @@ import org.apache.unomi.persistence.spi.PersistenceService;
 import org.apache.unomi.schema.api.JsonSchemaWrapper;
 import org.apache.unomi.schema.api.SchemaService;
 import org.apache.unomi.schema.api.ValidationException;
-import org.apache.unomi.schema.api.ValidationMessageWrapper;
+import org.apache.unomi.schema.api.ValidationError;
 import org.apache.unomi.schema.keyword.ScopeKeyword;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -110,7 +110,7 @@ public class SchemaServiceImpl implements SchemaService {
     }
 
     @Override
-    public Set<ValidationMessageWrapper> validateEvent(String event) throws 
ValidationException {
+    public Set<ValidationError> validateEvent(String event) throws 
ValidationException {
         JsonNode jsonEvent = parseData(event);
         String eventType = extractEventType(jsonEvent);
         JsonSchemaWrapper eventSchema = getSchemaForEventType(eventType);
@@ -186,7 +186,7 @@ public class SchemaServiceImpl implements SchemaService {
         return predefinedUnomiJSONSchemaById.remove(schemaId) != null;
     }
 
-    private Set<ValidationMessageWrapper> validate(JsonNode jsonNode, 
JsonSchema jsonSchema) throws ValidationException {
+    private Set<ValidationError> validate(JsonNode jsonNode, JsonSchema 
jsonSchema) throws ValidationException {
         try {
             Set<ValidationMessage> validationMessages = 
jsonSchema.validate(jsonNode);
 
@@ -199,7 +199,7 @@ public class SchemaServiceImpl implements SchemaService {
 
             return validationMessages != null ?
                     validationMessages.stream()
-                            .map(ValidationMessageWrapper::new)
+                            .map(ValidationError::new)
                             .collect(Collectors.toSet()) :
                     Collections.emptySet();
         } catch (Exception e) {

Reply via email to