diff --git a/hivemq-edge/gradle/libs.versions.toml b/hivemq-edge/gradle/libs.versions.toml index e333e6539f..c7e63979af 100644 --- a/hivemq-edge/gradle/libs.versions.toml +++ b/hivemq-edge/gradle/libs.versions.toml @@ -26,7 +26,7 @@ jaxb = "2.3.9" jctools = "4.0.5" jersey = "2.43" jose4j = "0.9.4" -jsonSchemaValidator = "1.0.88" +jsonSchemaValidator = "1.5.0" junit-jupiter = "5.10.3" junit = "4.13.2" logback = "1.5.6" diff --git a/hivemq-edge/src/main/java/com/hivemq/api/json/TimestampToDateConverter.java b/hivemq-edge/src/main/java/com/hivemq/api/json/TimestampToDateConverter.java index 11a8e26777..15ae85cad0 100644 --- a/hivemq-edge/src/main/java/com/hivemq/api/json/TimestampToDateConverter.java +++ b/hivemq-edge/src/main/java/com/hivemq/api/json/TimestampToDateConverter.java @@ -35,6 +35,7 @@ public class TimestampToDateConverter { + public static final @NotNull ZoneId ZONE_ID_UTC = ZoneId.of("UTC"); public static final DateTimeFormatter DATE_FORMAT_OUTBOUND = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); diff --git a/hivemq-edge/src/main/java/com/hivemq/bootstrap/netty/initializer/AbstractChannelInitializer.java b/hivemq-edge/src/main/java/com/hivemq/bootstrap/netty/initializer/AbstractChannelInitializer.java index 91aad562d5..6e1b15ff07 100644 --- a/hivemq-edge/src/main/java/com/hivemq/bootstrap/netty/initializer/AbstractChannelInitializer.java +++ b/hivemq-edge/src/main/java/com/hivemq/bootstrap/netty/initializer/AbstractChannelInitializer.java @@ -24,7 +24,6 @@ import com.hivemq.configuration.service.RestrictionsConfigurationService; import com.hivemq.configuration.service.entity.Listener; import com.hivemq.extension.sdk.api.annotations.NotNull; -import com.hivemq.extension.sdk.api.annotations.Nullable; import com.hivemq.mqtt.handler.connect.MessageBarrier; import com.hivemq.mqtt.handler.publish.PublishFlushHandler; import com.hivemq.security.exception.SslException; @@ -109,7 +108,7 @@ protected void initChannel(final @NotNull T ch) throws Exception { ch.pipeline() .addLast(MQTT_MESSAGE_BARRIER, new MessageBarrier(channelDependencies.getMqttServerDisconnector())); - final @Nullable HandlerPackage handlerPackage = channelDependencies.getHandlerProvider().get(); + final HandlerPackage handlerPackage = channelDependencies.getHandlerProvider().get(); if (handlerPackage != null) { ch.pipeline().addLast(handlerPackage.getHandlerName(), handlerPackage.getHandler()); } diff --git a/hivemq-edge/src/main/java/com/hivemq/protocols/ProtocolAdapterSchemaManager.java b/hivemq-edge/src/main/java/com/hivemq/protocols/ProtocolAdapterSchemaManager.java index 49da7e572d..848ebcc928 100644 --- a/hivemq-edge/src/main/java/com/hivemq/protocols/ProtocolAdapterSchemaManager.java +++ b/hivemq-edge/src/main/java/com/hivemq/protocols/ProtocolAdapterSchemaManager.java @@ -29,7 +29,6 @@ import com.networknt.schema.SpecVersion; import com.networknt.schema.ValidationMessage; -import java.io.IOException; import java.util.List; import java.util.stream.Collectors; @@ -47,8 +46,8 @@ public class ProtocolAdapterSchemaManager { private @Nullable JsonSchema schema; public ProtocolAdapterSchemaManager( - @NotNull final ObjectMapper objectMapper, - @NotNull final Class configBean) { + final @NotNull ObjectMapper objectMapper, + final @NotNull Class configBean) { this.objectMapper = objectMapper; this.configBean = configBean; this.customConfigSchemaGenerator = new CustomConfigSchemaGenerator(); @@ -63,27 +62,16 @@ public ProtocolAdapterSchemaManager( public synchronized @NotNull JsonSchema generateSchema() { if (schema == null) { - JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V202012); + final JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V202012); schema = factory.getSchema(generateSchemaNode()); schema.initializeValidators(); } return schema; } - public @NotNull List validateJsonDocument(final byte @NotNull [] jsonDocument) - throws IOException { - JsonSchema schema = generateSchema(); - Preconditions.checkNotNull(jsonDocument); - JsonNode node = objectMapper.readTree(jsonDocument); - return schema.validate(node) - .stream() - .map(ProtocolAdapterSchemaManager::convertMessage) - .collect(Collectors.toList()); - } - - public @NotNull List validateObject(@NotNull final Object o) { + public @NotNull List validateObject(final @NotNull Object o) { Preconditions.checkNotNull(o); - JsonNode node; + final JsonNode node; if (o instanceof JsonNode) { node = (JsonNode) o; } else { @@ -96,9 +84,9 @@ public ProtocolAdapterSchemaManager( } - static ProtocolAdapterValidationFailure convertMessage(ValidationMessage validationMessage) { + static ProtocolAdapterValidationFailure convertMessage(final @NotNull ValidationMessage validationMessage) { return new ProtocolAdapterValidationFailureImpl(validationMessage.getMessage(), - validationMessage.getPath(), + validationMessage.getEvaluationPath().toString(), validationMessage.getClass()); }