Skip to content

Commit bb8d018

Browse files
upgrade json schema validator to 1.5.8
JSON schema validator depends on commons-lang3 library and fails to compile after upgrade
1 parent c263a60 commit bb8d018

File tree

4 files changed

+19
-23
lines changed

4 files changed

+19
-23
lines changed

build-tools-internal/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,4 @@ jimfs = 1.3.0
6060
jimfs_guava = 32.1.1-jre
6161

6262
# test framework
63-
networknt_json_schema_validator = 1.0.48
63+
networknt_json_schema_validator = 1.5.8

gradle/verification-metadata.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1088,16 +1088,16 @@
10881088
<sha256 value="d48403dbb7561f087c0eba93486991e9ffe6fc234e180464e1ed432da590d974" origin="Generated by Gradle"/>
10891089
</artifact>
10901090
</component>
1091-
<component group="com.networknt" name="json-schema-validator" version="1.0.48">
1092-
<artifact name="json-schema-validator-1.0.48.jar">
1093-
<sha256 value="d367f110a981a6d0053a480e55237bba4d816edd67a46cc771b24e4fc0364f40" origin="Generated by Gradle"/>
1094-
</artifact>
1095-
</component>
10961091
<component group="com.networknt" name="json-schema-validator" version="1.0.72">
10971092
<artifact name="json-schema-validator-1.0.72.jar">
10981093
<sha256 value="260647c459cc7de269b2a8f576e5693e434df888fd4801e92365fe18b9992cbc" origin="Generated by Gradle"/>
10991094
</artifact>
11001095
</component>
1096+
<component group="com.networknt" name="json-schema-validator" version="1.5.8">
1097+
<artifact name="json-schema-validator-1.5.8.jar">
1098+
<sha256 value="41ffb494849f28721a28021b97c94ea60513c02812309459462f1f7da8b697d4" origin="Generated by Gradle"/>
1099+
</artifact>
1100+
</component>
11011101
<component group="com.nimbusds" name="content-type" version="2.3">
11021102
<artifact name="content-type-2.3.jar">
11031103
<sha256 value="60349793e006fba96b532cb0c21e10e969fe0db8d87f91c3b9eaf82ba2998895" origin="Generated by Gradle"/>

test/x-content/src/main/java/org/elasticsearch/test/xcontent/AbstractSchemaValidationTestCase.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import java.io.IOException;
3232
import java.nio.file.Files;
3333
import java.nio.file.Path;
34-
import java.util.Collection;
34+
import java.util.List;
3535
import java.util.Map.Entry;
3636
import java.util.Set;
3737

@@ -55,9 +55,12 @@ public final void testSchema() throws IOException {
5555
JsonSchema jsonSchema = factory.getSchema(mapper.readTree(Files.newInputStream(p)), config);
5656

5757
// ensure the schema meets certain criteria like not empty, strictness
58-
assertTrue("found empty schema", jsonSchema.getValidators().size() > 0);
59-
assertTrue("schema lacks at least 1 required field", jsonSchema.hasRequiredValidator());
60-
assertSchemaStrictness(jsonSchema.getValidators().values(), jsonSchema.getSchemaPath());
58+
assertFalse("found empty schema", jsonSchema.getValidators().isEmpty());
59+
assertTrue(
60+
"schema lacks at least 1 required field",
61+
jsonSchema.getValidators().stream().anyMatch(v -> v.getKeyword().equals("required"))
62+
);
63+
assertSchemaStrictness(jsonSchema.getValidators(), jsonSchema.getSchemaLocation().toString());
6164

6265
for (int runs = 0; runs < NUMBER_OF_TEST_RUNS; runs++) {
6366
BytesReference xContent = XContentHelper.toXContent(createTestInstance(), XContentType.JSON, getToXContentParams(), false);
@@ -107,14 +110,7 @@ protected SpecVersion.VersionFlag getSchemaVersion() {
107110
* Uses the ootb factory but replaces the loader for sub schema's stored on the file system.
108111
*/
109112
private JsonSchemaFactory initializeSchemaFactory() {
110-
JsonSchemaFactory factory = JsonSchemaFactory.builder(JsonSchemaFactory.getInstance(getSchemaVersion())).uriFetcher(uri -> {
111-
String fileName = uri.toString().substring(uri.getScheme().length() + 1);
112-
Path path = getDataPath(getSchemaLocation() + fileName);
113-
logger.debug("loading sub-schema [{}] from: [{}]", uri, path);
114-
return Files.newInputStream(path);
115-
}, "file").build();
116-
117-
return factory;
113+
return JsonSchemaFactory.builder(JsonSchemaFactory.getInstance(getSchemaVersion())).build();
118114
}
119115

120116
/**
@@ -130,23 +126,23 @@ private JsonSchemaFactory initializeSchemaFactory() {
130126
* Note: we might not catch all places, but at least it works for nested objects and
131127
* array items.
132128
*/
133-
private static void assertSchemaStrictness(Collection<JsonValidator> validatorSet, String path) {
129+
private static void assertSchemaStrictness(List<JsonValidator> validatorSet, String path) {
134130
boolean additionalPropertiesValidatorFound = false;
135131
boolean subSchemaFound = false;
136132

137133
for (JsonValidator validator : validatorSet) {
138134
if (validator instanceof PropertiesValidator propertiesValidator) {
139135
subSchemaFound = true;
140136
for (Entry<String, JsonSchema> subSchema : propertiesValidator.getSchemas().entrySet()) {
141-
assertSchemaStrictness(subSchema.getValue().getValidators().values(), propertiesValidator.getSchemaPath());
137+
assertSchemaStrictness(subSchema.getValue().getValidators(), propertiesValidator.getSchemaLocation().toString());
142138
}
143139
} else if (validator instanceof ItemsValidator itemValidator) {
144140
if (itemValidator.getSchema() != null) {
145-
assertSchemaStrictness(itemValidator.getSchema().getValidators().values(), itemValidator.getSchemaPath());
141+
assertSchemaStrictness(itemValidator.getSchema().getValidators(), itemValidator.getSchemaLocation().toString());
146142
}
147143
if (itemValidator.getTupleSchema() != null) {
148144
for (JsonSchema subSchema : itemValidator.getTupleSchema()) {
149-
assertSchemaStrictness(subSchema.getValidators().values(), itemValidator.getSchemaPath());
145+
assertSchemaStrictness(subSchema.getValidators(), itemValidator.getSchemaLocation().toString());
150146
}
151147
}
152148
} else if (validator instanceof AdditionalPropertiesValidator) {

x-pack/plugin/ent-search/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
requires com.fasterxml.jackson.annotation;
1010
requires com.fasterxml.jackson.core;
1111
requires com.fasterxml.jackson.databind;
12-
requires json.schema.validator;
12+
requires com.networknt.schema;
1313
requires org.apache.lucene.core;
1414
requires org.slf4j;
1515

0 commit comments

Comments
 (0)