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 <[email protected]>
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) {