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) {