diff --git a/java/pom.xml b/java/pom.xml
index 02dacf1..58413c0 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -114,7 +114,7 @@
com.networknt
json-schema-validator
- 1.5.9
+ 2.0.0
test
diff --git a/java/src/test/java/io/cucumber/jsonformatter/MessagesToJsonWriterAcceptanceTest.java b/java/src/test/java/io/cucumber/jsonformatter/MessagesToJsonWriterAcceptanceTest.java
index 406cf51..9f03990 100644
--- a/java/src/test/java/io/cucumber/jsonformatter/MessagesToJsonWriterAcceptanceTest.java
+++ b/java/src/test/java/io/cucumber/jsonformatter/MessagesToJsonWriterAcceptanceTest.java
@@ -1,9 +1,10 @@
package io.cucumber.jsonformatter;
+import com.networknt.schema.Error;
import com.networknt.schema.InputFormat;
-import com.networknt.schema.JsonSchema;
-import com.networknt.schema.JsonSchemaFactory;
-import com.networknt.schema.ValidationMessage;
+import com.networknt.schema.Schema;
+import com.networknt.schema.SchemaRegistry;
+import com.networknt.schema.SpecificationVersion;
import io.cucumber.compatibilitykit.MessageOrderer;
import io.cucumber.messages.NdjsonToMessageIterable;
import io.cucumber.messages.types.Envelope;
@@ -24,12 +25,10 @@
import java.util.Comparator;
import java.util.List;
import java.util.Random;
-import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static com.networknt.schema.SpecVersion.VersionFlag.V202012;
import static io.cucumber.jsonformatter.Jackson.OBJECT_MAPPER;
import static io.cucumber.jsonformatter.Jackson.PRETTY_PRINTER;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -39,7 +38,7 @@
class MessagesToJsonWriterAcceptanceTest {
private static final NdjsonToMessageIterable.Deserializer deserializer = (json) -> OBJECT_MAPPER.readValue(json, Envelope.class);
private static final MessagesToJsonWriter.Serializer serializer = OBJECT_MAPPER.writer(PRETTY_PRINTER)::writeValue;
- private static final JsonSchema jsonSchema = readJsonSchema();
+ private static final Schema jsonSchema = readJsonSchema();
private static final Random random = new Random(202509171757L);
private static final MessageOrderer messageOrderer = new MessageOrderer(random);
@@ -85,10 +84,11 @@ private static void assertJsonEquals(String expected, String actual) throws JSON
JSONAssert.assertEquals(expected, actual, true);
}
- private static JsonSchema readJsonSchema() {
+ private static Schema readJsonSchema() {
Path path = Paths.get("../testdata/json-schema/src/cucumber-jvm.json");
try (InputStream resource = Files.newInputStream(path)) {
- return JsonSchemaFactory.getInstance(V202012).getSchema(resource);
+ SchemaRegistry registry = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12);
+ return registry.getSchema(resource);
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -117,11 +117,11 @@ void validateAgainstJsonSchema(TestCase testCase) throws IOException {
// So for schema validation there is no need to run the formatter
// Makes the test faster
byte[] expected = Files.readAllBytes(testCase.expected);
- Set assertions = jsonSchema.validate(
+ List assertions = jsonSchema.validate(
new String(expected, UTF_8),
InputFormat.JSON,
// By default, since Draft 2019-09 the format keyword only generates annotations and not assertions
- executionContext -> executionContext.getExecutionConfig().setFormatAssertionsEnabled(true));
+ executionContext -> executionContext.executionConfig(config -> config.formatAssertionsEnabled(true)));
assertThat(assertions).isEmpty();
}