diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 20d7a905e..bea54d007 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ 8, 11, 17, 21 ] + java: [ 17, 21, 25 ] name: Java ${{ matrix.java }} steps: - uses: actions/checkout@v4 diff --git a/README.md b/README.md index 9a47ffb25..4a227469d 100644 --- a/README.md +++ b/README.md @@ -421,17 +421,17 @@ JsonLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationO JsonLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); assertEquals("format", format.getKeyword()); -assertEquals("date", format.getSchemaNode().asText()); +assertEquals("date", format.getSchemaNode().asString()); assertEquals(5, formatSchemaNodeTokenLocation.getLineNr()); assertEquals(17, formatSchemaNodeTokenLocation.getColumnNr()); -assertEquals("1", format.getInstanceNode().asText()); +assertEquals("1", format.getInstanceNode().asString()); assertEquals(2, formatInstanceNodeTokenLocation.getLineNr()); assertEquals(16, formatInstanceNodeTokenLocation.getColumnNr()); assertEquals("minLength", minLength.getKeyword()); -assertEquals("6", minLength.getSchemaNode().asText()); +assertEquals("6", minLength.getSchemaNode().asString()); assertEquals(6, minLengthSchemaNodeTokenLocation.getLineNr()); assertEquals(20, minLengthSchemaNodeTokenLocation.getColumnNr()); -assertEquals("1", minLength.getInstanceNode().asText()); +assertEquals("1", minLength.getInstanceNode().asString()); assertEquals(2, minLengthInstanceNodeTokenLocation.getLineNr()); assertEquals(16, minLengthInstanceNodeTokenLocation.getColumnNr()); assertEquals(16, minLengthInstanceNodeTokenLocation.getColumnNr()); diff --git a/doc/custom-dialect.md b/doc/custom-dialect.md index fd90a19a2..d87069453 100644 --- a/doc/custom-dialect.md +++ b/doc/custom-dialect.md @@ -35,7 +35,7 @@ public class EqualsValidator extends BaseKeywordValidator { @Override public void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation) { - if (!node.asText().equals(value)) { + if (!node.asString().equals(value)) { executionContext.addError(error().message("must be equal to ''{0}''") .arguments(value) .instanceLocation(instanceLocation).instanceNode(node).evaluationPath(executionContext.getEvaluationPath()).build()); diff --git a/doc/upgrading.md b/doc/upgrading.md index e9a3e7842..d3f77d241 100644 --- a/doc/upgrading.md +++ b/doc/upgrading.md @@ -4,6 +4,17 @@ This library can contain breaking changes in `minor` version releases. This contains information on the notable or breaking changes in each version. +### 3.0.0 + +| Compatibility | Version | +| ------------- | --------- | +| Java | Java 17 | +| Jackson | Jackson 3 | + +#### Major Changes + +- Change to use Jackson 3 for which Java 17 is now required. + ### 2.0.0 | Compatibility | Version | diff --git a/doc/walkers.md b/doc/walkers.md index ed218ddd9..62b6c6832 100644 --- a/doc/walkers.md +++ b/doc/walkers.md @@ -95,14 +95,14 @@ assertEquals("", propertyKeywords.get(0).getInstanceLocation().toString()); assertEquals("/properties", propertyKeywords.get(0).getEvaluationPath().append(propertyKeywords.get(0).getKeyword()).toString()); assertEquals("/tags/0", propertyKeywords.get(1).getInstanceLocation().toString()); -assertEquals("image", propertyKeywords.get(1).getInstanceNode().get("name").asText()); +assertEquals("image", propertyKeywords.get(1).getInstanceNode().get("name").asString()); assertEquals("/properties/tags/items/$ref", propertyKeywords.get(1).getEvaluationPath().toString()); assertEquals("/properties/tags/items/$ref/properties", propertyKeywords.get(1).getEvaluationPath().append(propertyKeywords.get(1).getKeyword()).toString()); assertEquals("/tags/1", propertyKeywords.get(2).getInstanceLocation().toString()); assertEquals("/properties/tags/items/$ref/properties", propertyKeywords.get(2).getEvaluationPath().append(propertyKeywords.get(2).getKeyword()).toString()); -assertEquals("link", propertyKeywords.get(2).getInstanceNode().get("name").asText()); +assertEquals("link", propertyKeywords.get(2).getInstanceNode().get("name").asString()); ``` ### Applying Defaults diff --git a/pom.xml b/pom.xml index ffb823112..57e3f4b9a 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ com.networknt json-schema-validator - 2.0.1 + 3.0.0-SNAPSHOT bundle JsonSchemaValidator A json schema validator that supports draft v4, v6, v7, v2019-09 and v2020-12 @@ -68,25 +68,25 @@ - 1.8 - 1.8 + 17 + 17 UTF-8 1.14.0 - 2.18.3 + 3.0.3 2.2.6 - 1.3.14 + 1.5.22 2.0.17 - 21.3.10 + 25.0.1 3.0 - 5.11.3 - 0.8.12 - 3.13.0 - 5.1.9 - 3.6.3 - 3.2.1 - 1.3.0 - 3.5.1 + 6.0.1 + 0.8.14 + 3.14.1 + 6.0.0 + 3.12.0 + 3.4.0 + 1.5.1 + 3.5.4 1.2.2.Final 1.7.0 3.2.7 @@ -112,13 +112,13 @@ - com.fasterxml.jackson.core + tools.jackson.core jackson-databind ${version.jackson} - com.fasterxml.jackson.dataformat + tools.jackson.dataformat jackson-dataformat-yaml ${version.jackson} @@ -143,7 +143,16 @@ org.graalvm.js - js + js-language + ${version.graaljs} + true + + + + + + org.graalvm.truffle + truffle-runtime ${version.graaljs} true @@ -459,7 +468,7 @@ static com.ethlo.time; - static com.fasterxml.jackson.dataformat.yaml; + static tools.jackson.dataformat.yaml; static org.jruby.jcodings; static org.jruby.joni; static org.graalvm.sdk; diff --git a/src/main/java/com/networknt/schema/Error.java b/src/main/java/com/networknt/schema/Error.java index 6e117af76..7322d3b90 100644 --- a/src/main/java/com/networknt/schema/Error.java +++ b/src/main/java/com/networknt/schema/Error.java @@ -20,9 +20,9 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.annotation.JsonSerialize; +import tools.jackson.databind.ser.std.ToStringSerializer; import com.networknt.schema.i18n.MessageFormatter; import com.networknt.schema.path.NodePath; import com.networknt.schema.utils.CachingSupplier; @@ -42,7 +42,7 @@ * "https://github.com/json-schema-org/json-schema-spec/blob/main/specs/output/jsonschema-validation-output-machines.md">JSON * Schema */ -@JsonIgnoreProperties({ "messageSupplier", "schemaNode", "instanceNode", "valid" }) +@JsonIgnoreProperties({ "messageSupplier", "schemaNode", "instanceNode" }) @JsonPropertyOrder({ "keyword", "instanceLocation", "message", "evaluationPath", "schemaLocation", "messageKey", "arguments", "details" }) @JsonInclude(Include.NON_NULL) @@ -176,10 +176,6 @@ public String getMessageKey() { return messageKey; } - public boolean isValid() { - return messageSupplier != null; - } - @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/src/main/java/com/networknt/schema/ErrorMessages.java b/src/main/java/com/networknt/schema/ErrorMessages.java index aaff9bf2a..028f178e9 100644 --- a/src/main/java/com/networknt/schema/ErrorMessages.java +++ b/src/main/java/com/networknt/schema/ErrorMessages.java @@ -4,7 +4,7 @@ import java.util.LinkedHashMap; import java.util.Map; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; /** * ErrorMessages. @@ -24,12 +24,12 @@ public static Map getErrorMessage(Schema parentSchema, String er if (message != null) { JsonNode messageNode = message.get(keyword); if (messageNode != null) { - if (messageNode.isTextual()) { - return Collections.singletonMap("", messageNode.asText()); + if (messageNode.isString()) { + return Collections.singletonMap("", messageNode.asString()); } else if (messageNode.isObject()) { Map result = new LinkedHashMap<>(); - messageNode.fields() - .forEachRemaining(entry -> result.put(entry.getKey(), entry.getValue().textValue())); + messageNode.properties().iterator() + .forEachRemaining(entry -> result.put(entry.getKey(), entry.getValue().asString())); if (!result.isEmpty()) { return result; } diff --git a/src/main/java/com/networknt/schema/Schema.java b/src/main/java/com/networknt/schema/Schema.java index 5879b0fe4..87999f107 100644 --- a/src/main/java/com/networknt/schema/Schema.java +++ b/src/main/java/com/networknt/schema/Schema.java @@ -32,7 +32,7 @@ import java.util.Objects; import java.util.function.Consumer; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.keyword.KeywordValidator; import com.networknt.schema.keyword.TypeValidator; import com.networknt.schema.path.NodePath; @@ -107,11 +107,11 @@ private static Schema obtainSubSchemaNode(final JsonNode schemaNode, final Schem return null; } - final String text = node.textValue(); + final String text = node.asString(); if (text == null) { return null; } - final SchemaLocation schemaLocation = SchemaLocation.of(node.textValue()); + final SchemaLocation schemaLocation = SchemaLocation.of(node.asString()); return schemaContext.getSchemaRegistry().getSchema(schemaLocation); } public static class JsonNodePathLegacy { @@ -519,7 +519,7 @@ private List read(JsonNode schemaNode) { } else { KeywordValidator refValidator = null; - Iterator> iterator = schemaNode.fields(); + Iterator> iterator = schemaNode.properties().iterator(); validators = new ArrayList<>(schemaNode.size()); while (iterator.hasNext()) { Entry entry = iterator.next(); diff --git a/src/main/java/com/networknt/schema/SchemaContext.java b/src/main/java/com/networknt/schema/SchemaContext.java index 783ff91ac..8f5efdafa 100644 --- a/src/main/java/com/networknt/schema/SchemaContext.java +++ b/src/main/java/com/networknt/schema/SchemaContext.java @@ -19,7 +19,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.keyword.KeywordValidator; diff --git a/src/main/java/com/networknt/schema/SchemaRegistry.java b/src/main/java/com/networknt/schema/SchemaRegistry.java index 25c58839b..cbbd6c669 100644 --- a/src/main/java/com/networknt/schema/SchemaRegistry.java +++ b/src/main/java/com/networknt/schema/SchemaRegistry.java @@ -16,7 +16,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.BasicDialectRegistry; import com.networknt.schema.dialect.DefaultDialectRegistry; import com.networknt.schema.dialect.Dialect; @@ -534,18 +534,18 @@ protected SchemaContext createSchemaContext(final JsonNode schemaNode) { private Dialect getDialect(final JsonNode schemaNode, SchemaRegistryConfig config) { final JsonNode iriNode = schemaNode.get("$schema"); - if (iriNode != null && iriNode.isTextual()) { - return getDialect(iriNode.textValue()); + if (iriNode != null && iriNode.isString()) { + return getDialect(iriNode.asString()); } return null; } private Dialect getDialectOrDefault(final JsonNode schemaNode) { final JsonNode iriNode = schemaNode.get("$schema"); - if (iriNode != null && !iriNode.isNull() && !iriNode.isTextual()) { + if (iriNode != null && !iriNode.isNull() && !iriNode.isString()) { throw new SchemaException("Unknown dialect: " + iriNode); } - final String iri = iriNode == null || iriNode.isNull() ? defaultDialectId : iriNode.textValue(); + final String iri = iriNode == null || iriNode.isNull() ? defaultDialectId : iriNode.asString(); if (iri == null) { throw new MissingSchemaKeywordException( "The $schema keyword that indicates the schema dialect must be specified."); diff --git a/src/main/java/com/networknt/schema/Validator.java b/src/main/java/com/networknt/schema/Validator.java index 09434d990..1e3c4e3d9 100644 --- a/src/main/java/com/networknt/schema/Validator.java +++ b/src/main/java/com/networknt/schema/Validator.java @@ -16,7 +16,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.path.NodePath; import com.networknt.schema.walk.Walker; diff --git a/src/main/java/com/networknt/schema/annotation/Annotations.java b/src/main/java/com/networknt/schema/annotation/Annotations.java index 581f73b8f..3dd0a5f0c 100644 --- a/src/main/java/com/networknt/schema/annotation/Annotations.java +++ b/src/main/java/com/networknt/schema/annotation/Annotations.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.Map; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import com.networknt.schema.path.NodePath; import com.networknt.schema.serialization.JsonMapperFactory; @@ -92,7 +92,7 @@ public static String format(Map> annotations) { try { return JsonMapperFactory.getInstance().writerWithDefaultPrettyPrinter().writeValueAsString(results); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return ""; } } diff --git a/src/main/java/com/networknt/schema/dialect/AbstractDialectRegistry.java b/src/main/java/com/networknt/schema/dialect/AbstractDialectRegistry.java index 7bddaacfa..57948660d 100644 --- a/src/main/java/com/networknt/schema/dialect/AbstractDialectRegistry.java +++ b/src/main/java/com/networknt/schema/dialect/AbstractDialectRegistry.java @@ -18,7 +18,7 @@ import java.util.Map; import java.util.Map.Entry; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.InvalidSchemaException; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/dialect/Dialect.java b/src/main/java/com/networknt/schema/dialect/Dialect.java index 3fd4580c8..6af636e91 100644 --- a/src/main/java/com/networknt/schema/dialect/Dialect.java +++ b/src/main/java/com/networknt/schema/dialect/Dialect.java @@ -16,7 +16,7 @@ package com.networknt.schema.dialect; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.InvalidSchemaException; import com.networknt.schema.Schema; @@ -416,7 +416,7 @@ public String readDynamicAnchor(JsonNode schemaNode) { private static String readText(JsonNode node, String field) { JsonNode fieldNode = node.get(field); - return fieldNode == null ? null : fieldNode.textValue(); + return fieldNode == null ? null : fieldNode.asString(); } public String getId() { diff --git a/src/main/java/com/networknt/schema/format/BaseFormatValidator.java b/src/main/java/com/networknt/schema/format/BaseFormatValidator.java index b22e17b2b..7e765e69f 100644 --- a/src/main/java/com/networknt/schema/format/BaseFormatValidator.java +++ b/src/main/java/com/networknt/schema/format/BaseFormatValidator.java @@ -2,7 +2,7 @@ import java.util.Map; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/format/Format.java b/src/main/java/com/networknt/schema/format/Format.java index cf8064c61..69365ca6c 100644 --- a/src/main/java/com/networknt/schema/format/Format.java +++ b/src/main/java/com/networknt/schema/format/Format.java @@ -18,7 +18,7 @@ import java.util.function.Supplier; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.MessageSourceError; import com.networknt.schema.SchemaContext; @@ -95,7 +95,7 @@ default boolean matches(ExecutionContext executionContext, SchemaContext schemaC if (nodeType != JsonType.STRING) { return true; } - return matches(executionContext, schemaContext, value.textValue()); + return matches(executionContext, schemaContext, value.asString()); } /** @@ -139,7 +139,7 @@ default void validate(ExecutionContext executionContext, SchemaContext schemaCon if (!matches(executionContext, schemaContext, node, rootNode, instanceLocation, assertionsEnabled, formatValidator)) { executionContext.addError(message.get() - .arguments(this.getName(), node.asText()).build()); + .arguments(this.getName(), node.asString()).build()); } } } diff --git a/src/main/java/com/networknt/schema/keyword/AbstractKeywordValidator.java b/src/main/java/com/networknt/schema/keyword/AbstractKeywordValidator.java index 70d323bf3..67fe16269 100644 --- a/src/main/java/com/networknt/schema/keyword/AbstractKeywordValidator.java +++ b/src/main/java/com/networknt/schema/keyword/AbstractKeywordValidator.java @@ -19,7 +19,7 @@ import java.util.Iterator; import java.util.function.Consumer; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/AdditionalPropertiesValidator.java b/src/main/java/com/networknt/schema/keyword/AdditionalPropertiesValidator.java index 37a53d749..1780d70a8 100644 --- a/src/main/java/com/networknt/schema/keyword/AdditionalPropertiesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/AdditionalPropertiesValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -60,7 +60,7 @@ public AdditionalPropertiesValidator(SchemaLocation schemaLocation, JsonNode sch JsonNode propertiesNode = parentSchema.getSchemaNode().get(PropertiesValidator.PROPERTY); if (propertiesNode != null) { allowedProperties = new HashSet<>(); - for (Iterator it = propertiesNode.fieldNames(); it.hasNext(); ) { + for (Iterator it = propertiesNode.propertyNames().iterator(); it.hasNext(); ) { allowedProperties.add(it.next()); } } else { @@ -70,7 +70,7 @@ public AdditionalPropertiesValidator(SchemaLocation schemaLocation, JsonNode sch JsonNode patternPropertiesNode = parentSchema.getSchemaNode().get(PatternPropertiesValidator.PROPERTY); if (patternPropertiesNode != null) { this.patternProperties = new ArrayList<>(patternPropertiesNode.size()); - for (Iterator it = patternPropertiesNode.fieldNames(); it.hasNext(); ) { + for (Iterator it = patternPropertiesNode.propertyNames().iterator(); it.hasNext(); ) { patternProperties.add(RegularExpression.compile(it.next(), schemaContext)); } } else { @@ -97,7 +97,7 @@ protected void validate(ExecutionContext executionContext, JsonNode node, JsonNo || collectAnnotations(executionContext); // if allowAdditionalProperties is true, add all the properties as evaluated. if (allowAdditionalProperties && collectAnnotations) { - for (Iterator it = node.fieldNames(); it.hasNext();) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext();) { if (matchedInstancePropertyNames == null) { matchedInstancePropertyNames = new LinkedHashSet<>(); } @@ -106,7 +106,7 @@ protected void validate(ExecutionContext executionContext, JsonNode node, JsonNo } } - for (Iterator> it = node.fields(); it.hasNext(); ) { + for (Iterator> it = node.properties().iterator(); it.hasNext(); ) { Entry entry = it.next(); String pname = entry.getKey(); // skip the context items @@ -154,7 +154,7 @@ public void walk(ExecutionContext executionContext, JsonNode node, JsonNode root } // Else continue walking. - for (Iterator it = node.fieldNames(); it.hasNext(); ) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext(); ) { String pname = it.next(); // skip the context items if (pname.startsWith("#")) { diff --git a/src/main/java/com/networknt/schema/keyword/AllOfValidator.java b/src/main/java/com/networknt/schema/keyword/AllOfValidator.java index c0d871d2d..dfdff943b 100644 --- a/src/main/java/com/networknt/schema/keyword/AllOfValidator.java +++ b/src/main/java/com/networknt/schema/keyword/AllOfValidator.java @@ -19,7 +19,7 @@ import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaContext; diff --git a/src/main/java/com/networknt/schema/keyword/AnnotationKeyword.java b/src/main/java/com/networknt/schema/keyword/AnnotationKeyword.java index 6c961b973..5c1d43fc0 100644 --- a/src/main/java/com/networknt/schema/keyword/AnnotationKeyword.java +++ b/src/main/java/com/networknt/schema/keyword/AnnotationKeyword.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -46,8 +46,8 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode } private Object getAnnotationValue(JsonNode schemaNode) { - if (schemaNode.isTextual()) { - return schemaNode.textValue(); + if (schemaNode.isString()) { + return schemaNode.asString(); } else if (schemaNode.isNumber()) { return schemaNode.numberValue(); } else if (schemaNode.isObject()) { diff --git a/src/main/java/com/networknt/schema/keyword/AnyOfValidator.java b/src/main/java/com/networknt/schema/keyword/AnyOfValidator.java index d2b722ffc..13de8fcdd 100644 --- a/src/main/java/com/networknt/schema/keyword/AnyOfValidator.java +++ b/src/main/java/com/networknt/schema/keyword/AnyOfValidator.java @@ -19,7 +19,7 @@ import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; @@ -103,7 +103,7 @@ && canShortCircuit(executionContext)) { DiscriminatorState discriminator = executionContext.getDiscriminatorMapping().get(instanceLocation); JsonNode refNode = schema.getSchemaNode().get("$ref"); if (discriminator != null && refNode != null) { - discriminatorMatchFound = discriminator.matches(refNode.asText()); + discriminatorMatchFound = discriminator.matches(refNode.asString()); } if (discriminatorMatchFound) { /* diff --git a/src/main/java/com/networknt/schema/keyword/BaseKeywordValidator.java b/src/main/java/com/networknt/schema/keyword/BaseKeywordValidator.java index ef13efb08..342b11364 100644 --- a/src/main/java/com/networknt/schema/keyword/BaseKeywordValidator.java +++ b/src/main/java/com/networknt/schema/keyword/BaseKeywordValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ErrorMessages; import com.networknt.schema.Schema; import com.networknt.schema.MessageSourceError; @@ -86,7 +86,7 @@ public Schema getParentSchema() { protected String getNodeFieldType() { JsonNode typeField = this.getParentSchema().getSchemaNode().get("type"); if (typeField != null) { - return typeField.asText(); + return typeField.asString(); } return null; } diff --git a/src/main/java/com/networknt/schema/keyword/ConstValidator.java b/src/main/java/com/networknt/schema/keyword/ConstValidator.java index e1c9f56bc..955e14d39 100644 --- a/src/main/java/com/networknt/schema/keyword/ConstValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ConstValidator.java @@ -15,7 +15,7 @@ */ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -36,12 +36,14 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode if (schemaNode.decimalValue().compareTo(node.decimalValue()) != 0) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()) - .arguments(schemaNode.asText(), node.asText()) + .arguments(schemaNode.asString(schemaNode.toString()), node.asString()) .build()); } } else if (!schemaNode.equals(node)) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) - .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()).arguments(schemaNode.asText(), node.asText()).build()); + .evaluationPath(executionContext.getEvaluationPath()) + .locale(executionContext.getExecutionConfig().getLocale()) + .arguments(schemaNode.asString(schemaNode.toString()), node.asString(node.toString())).build()); } } } diff --git a/src/main/java/com/networknt/schema/keyword/ContainsValidator.java b/src/main/java/com/networknt/schema/keyword/ContainsValidator.java index 801f776d5..403f258d4 100644 --- a/src/main/java/com/networknt/schema/keyword/ContainsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ContainsValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/keyword/ContentEncodingValidator.java b/src/main/java/com/networknt/schema/keyword/ContentEncodingValidator.java index 758ffc420..d655a0fa7 100644 --- a/src/main/java/com/networknt/schema/keyword/ContentEncodingValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ContentEncodingValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -47,7 +47,7 @@ public class ContentEncodingValidator extends BaseKeywordValidator { public ContentEncodingValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.CONTENT_ENCODING, schemaNode, schemaLocation, parentSchema, schemaContext); - this.contentEncoding = schemaNode.textValue(); + this.contentEncoding = schemaNode.asString(); } private boolean matches(String value) { @@ -77,7 +77,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode annotation -> annotation.instanceLocation(instanceLocation).value(this.contentEncoding)); } - if (!matches(node.asText())) { + if (!matches(node.asString())) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()) .arguments(this.contentEncoding) diff --git a/src/main/java/com/networknt/schema/keyword/ContentMediaTypeValidator.java b/src/main/java/com/networknt/schema/keyword/ContentMediaTypeValidator.java index 98e9aae71..1d8f00e61 100644 --- a/src/main/java/com/networknt/schema/keyword/ContentMediaTypeValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ContentMediaTypeValidator.java @@ -20,8 +20,8 @@ import java.util.Base64; import java.util.regex.Pattern; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -52,7 +52,7 @@ public class ContentMediaTypeValidator extends BaseKeywordValidator { public ContentMediaTypeValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.CONTENT_MEDIA_TYPE, schemaNode, schemaLocation, parentSchema, schemaContext); - this.contentMediaType = schemaNode.textValue(); + this.contentMediaType = schemaNode.asString(); } private boolean matches(String value) { @@ -60,8 +60,8 @@ private boolean matches(String value) { // Validate content JsonNode node = this.parentSchema.getSchemaNode().get("contentEncoding"); String encoding = null; - if (node != null && node.isTextual()) { - encoding = node.asText(); + if (node != null && node.isString()) { + encoding = node.asString(); } String data = value; if ("base64".equals(encoding)) { @@ -74,7 +74,7 @@ private boolean matches(String value) { // Validate the json try { JsonMapperFactory.getInstance().readTree(data); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return false; } return true; @@ -101,7 +101,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode annotation -> annotation.instanceLocation(instanceLocation).value(this.contentMediaType)); } - if (!matches(node.asText())) { + if (!matches(node.asString())) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()) .arguments(this.contentMediaType) diff --git a/src/main/java/com/networknt/schema/keyword/DependenciesValidator.java b/src/main/java/com/networknt/schema/keyword/DependenciesValidator.java index 1acad4aba..0602dcf2d 100644 --- a/src/main/java/com/networknt/schema/keyword/DependenciesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/DependenciesValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -45,10 +45,11 @@ public DependenciesValidator(SchemaLocation schemaLocation, JsonNode schemaNode, super(KeywordType.DEPENDENCIES, schemaNode, schemaLocation, parentSchema, schemaContext); - for (Iterator> it = schemaNode.fields(); it.hasNext(); ) { + for (Iterator> it = schemaNode.properties().iterator(); it.hasNext(); ) { Entry entry = it.next(); String pname = entry.getKey(); JsonNode pvalue = entry.getValue(); + if (pvalue.isArray()) { List depsProps = propertyDeps.get(pname); if (depsProps == null) { @@ -56,7 +57,7 @@ public DependenciesValidator(SchemaLocation schemaLocation, JsonNode schemaNode, propertyDeps.put(pname, depsProps); } for (int i = 0; i < pvalue.size(); i++) { - depsProps.add(pvalue.get(i).asText()); + depsProps.add(pvalue.get(i).asString()); } } else if (pvalue.isObject() || pvalue.isBoolean()) { schemaDeps.put(pname, schemaContext.newSchema(schemaLocation.append(pname), @@ -66,7 +67,7 @@ public DependenciesValidator(SchemaLocation schemaLocation, JsonNode schemaNode, } public void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation) { - for (Iterator it = node.fieldNames(); it.hasNext(); ) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext(); ) { String pname = it.next(); List deps = propertyDeps.get(pname); if (deps != null && !deps.isEmpty()) { diff --git a/src/main/java/com/networknt/schema/keyword/DependentRequired.java b/src/main/java/com/networknt/schema/keyword/DependentRequired.java index 88384a368..73a17e3d8 100644 --- a/src/main/java/com/networknt/schema/keyword/DependentRequired.java +++ b/src/main/java/com/networknt/schema/keyword/DependentRequired.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -35,21 +35,21 @@ public DependentRequired(SchemaLocation schemaLocation, JsonNode schemaNode, Sch super(KeywordType.DEPENDENT_REQUIRED, schemaNode, schemaLocation, parentSchema, schemaContext); - for (Iterator it = schemaNode.fieldNames(); it.hasNext(); ) { + for (Iterator it = schemaNode.propertyNames().iterator(); it.hasNext(); ) { String pname = it.next(); JsonNode pvalue = schemaNode.get(pname); if (pvalue.isArray()) { List dependencies = propertyDependencies.computeIfAbsent(pname, k -> new ArrayList<>()); for (int i = 0; i < pvalue.size(); i++) { - dependencies.add(pvalue.get(i).asText()); + dependencies.add(pvalue.get(i).asString()); } } } } public void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation) { - for (Iterator it = node.fieldNames(); it.hasNext(); ) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext(); ) { String pname = it.next(); List dependencies = propertyDependencies.get(pname); if (dependencies != null && !dependencies.isEmpty()) { diff --git a/src/main/java/com/networknt/schema/keyword/DependentSchemas.java b/src/main/java/com/networknt/schema/keyword/DependentSchemas.java index 8f87bdc9f..8c6796b2d 100644 --- a/src/main/java/com/networknt/schema/keyword/DependentSchemas.java +++ b/src/main/java/com/networknt/schema/keyword/DependentSchemas.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -34,7 +34,7 @@ public class DependentSchemas extends BaseKeywordValidator { public DependentSchemas(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.DEPENDENT_SCHEMAS, schemaNode, schemaLocation, parentSchema, schemaContext); - for (Iterator it = schemaNode.fieldNames(); it.hasNext();) { + for (Iterator it = schemaNode.propertyNames().iterator(); it.hasNext();) { String pname = it.next(); JsonNode pvalue = schemaNode.get(pname); if (pvalue.isObject() || pvalue.isBoolean()) { @@ -52,7 +52,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode protected void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation, boolean walk) { - for (Iterator it = node.fieldNames(); it.hasNext(); ) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext(); ) { String pname = it.next(); Schema schema = this.schemaDependencies.get(pname); if (schema != null) { diff --git a/src/main/java/com/networknt/schema/keyword/DiscriminatorValidator.java b/src/main/java/com/networknt/schema/keyword/DiscriminatorValidator.java index bc85d0011..0e01e7d42 100644 --- a/src/main/java/com/networknt/schema/keyword/DiscriminatorValidator.java +++ b/src/main/java/com/networknt/schema/keyword/DiscriminatorValidator.java @@ -22,8 +22,8 @@ import java.util.Map; import java.util.Map.Entry; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ObjectNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaContext; @@ -74,14 +74,14 @@ public DiscriminatorValidator(SchemaLocation schemaLocation, JsonNode schemaNode * schema but there is non-specification compliant behavior if there are * multiple discriminators on the same path if the propertyName is not defined. */ - this.propertyName = propertyName != null ? propertyName.asText() : ""; + this.propertyName = propertyName != null ? propertyName.asString() : ""; JsonNode mappingNode = discriminator.get("mapping"); ObjectNode mapping = mappingNode != null && mappingNode.isObject() ? (ObjectNode) mappingNode : null; if (mapping != null) { this.mapping = new HashMap<>(); - for (Iterator> iter = mapping.fields(); iter.hasNext();) { + for (Iterator> iter = mapping.properties().iterator(); iter.hasNext();) { Entry entry = iter.next(); - this.mapping.put(entry.getKey(), entry.getValue().asText()); + this.mapping.put(entry.getKey(), entry.getValue().asString()); } } else { this.mapping = Collections.emptyMap(); @@ -90,7 +90,7 @@ public DiscriminatorValidator(SchemaLocation schemaLocation, JsonNode schemaNode // Check if OpenAPI 3.2.0 JsonNode defaultMapping = discriminator.get("defaultMapping"); if (defaultMapping != null) { - this.defaultMapping = defaultMapping.asText(); + this.defaultMapping = defaultMapping.asString(); } else { this.defaultMapping = null; } @@ -142,8 +142,8 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode executionContext.getDiscriminatorMapping().put(instanceLocation, state); } JsonNode discriminatingValueNode = node.get(state.getPropertyName()); - if (discriminatingValueNode != null && discriminatingValueNode.isTextual()) { - String discriminatingValue = discriminatingValueNode.asText(); + if (discriminatingValueNode != null && discriminatingValueNode.isString()) { + String discriminatingValue = discriminatingValueNode.asString(); state.setDiscriminatingValue(discriminatingValue); // Check for explicit mapping String mappedSchema = mapping.get(discriminatingValue); diff --git a/src/main/java/com/networknt/schema/keyword/DynamicRefValidator.java b/src/main/java/com/networknt/schema/keyword/DynamicRefValidator.java index fc6d497dc..ea6038198 100644 --- a/src/main/java/com/networknt/schema/keyword/DynamicRefValidator.java +++ b/src/main/java/com/networknt/schema/keyword/DynamicRefValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.InvalidSchemaRefException; @@ -96,7 +96,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode Error error = error().keyword(KeywordType.DYNAMIC_REF.getValue()) .messageKey("internal.unresolvedRef").message("Reference {0} cannot be resolved") .instanceLocation(instanceLocation).evaluationPath(executionContext.getEvaluationPath()) - .arguments(schemaNode.asText()).build(); + .arguments(schemaNode.asString()).build(); throw new InvalidSchemaRefException(error); } refSchema.validate(executionContext, node, rootNode, instanceLocation); @@ -112,7 +112,7 @@ public void walk(ExecutionContext executionContext, JsonNode node, JsonNode root Error error = error().keyword(KeywordType.DYNAMIC_REF.getValue()) .messageKey("internal.unresolvedRef").message("Reference {0} cannot be resolved") .instanceLocation(instanceLocation).evaluationPath(executionContext.getEvaluationPath()) - .arguments(schemaNode.asText()).build(); + .arguments(schemaNode.asString()).build(); throw new InvalidSchemaRefException(error); } if (node == null) { @@ -134,7 +134,7 @@ public void walk(ExecutionContext executionContext, JsonNode node, JsonNode root } public SchemaRef getSchemaRef(ExecutionContext executionContext ) { - String refValue = schemaNode.asText(); + String refValue = schemaNode.asString(); return getRefSchema(this.getParentSchema(), refValue, executionContext); } } diff --git a/src/main/java/com/networknt/schema/keyword/EnumValidator.java b/src/main/java/com/networknt/schema/keyword/EnumValidator.java index 8ee06e794..ee56528df 100644 --- a/src/main/java/com/networknt/schema/keyword/EnumValidator.java +++ b/src/main/java/com/networknt/schema/keyword/EnumValidator.java @@ -16,10 +16,10 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.DecimalNode; -import com.fasterxml.jackson.databind.node.NullNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ArrayNode; +import tools.jackson.databind.node.DecimalNode; +import tools.jackson.databind.node.NullNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -28,7 +28,6 @@ import com.networknt.schema.utils.TypeFactory; import com.networknt.schema.SchemaContext; -import java.math.BigDecimal; import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -40,12 +39,12 @@ public class EnumValidator extends BaseKeywordValidator implements KeywordValida private final Set nodes; private final String error; - static String asText(JsonNode node) { - if (node.isObject() || node.isArray() || node.isTextual()) { - // toString for isTextual is so that there are quotes + static String asString(JsonNode node) { + if (node.isObject() || node.isArray() || node.isString()) { + // toString for isString is so that there are quotes return node.toString(); } - return node.asText(); + return node.asString(); } public EnumValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { @@ -69,7 +68,7 @@ public EnumValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema } sb.append(separator); - sb.append(asText(n)); + sb.append(asString(n)); separator = ", "; } @@ -112,9 +111,9 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode */ private boolean isTypeLooseContainsInEnum(JsonNode node) { if (TypeFactory.getValueNodeType(node, this.schemaContext.getSchemaRegistryConfig()) == JsonType.STRING) { - String nodeText = node.textValue(); + String nodeText = node.asString(); for (JsonNode n : nodes) { - String value = n.asText(); + String value = n.asString(); if (value != null && value.equals(nodeText)) { return true; } @@ -130,7 +129,7 @@ private boolean isTypeLooseContainsInEnum(JsonNode node) { * @return the node */ protected JsonNode processNumberNode(JsonNode n) { - return DecimalNode.valueOf(new BigDecimal(n.decimalValue().toPlainString())); + return DecimalNode.valueOf(n.decimalValue().stripTrailingZeros()); } /** diff --git a/src/main/java/com/networknt/schema/keyword/ExclusiveMaximumValidator.java b/src/main/java/com/networknt/schema/keyword/ExclusiveMaximumValidator.java index d7aa9f5d7..c73dee01b 100644 --- a/src/main/java/com/networknt/schema/keyword/ExclusiveMaximumValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ExclusiveMaximumValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaException; @@ -40,7 +40,7 @@ public ExclusiveMaximumValidator(SchemaLocation schemaLocation, final JsonNode s if (!schemaNode.isNumber()) { throw new SchemaException("exclusiveMaximum value is not a number"); } - final String maximumText = schemaNode.asText(); + final String maximumText = schemaNode.asString(); if ((schemaNode.isLong() || schemaNode.isInt()) && (JsonType.INTEGER.toString().equals(getNodeFieldType()))) { // "integer", and within long range final long lm = schemaNode.asLong(); @@ -49,12 +49,12 @@ public ExclusiveMaximumValidator(SchemaLocation schemaLocation, final JsonNode s public boolean crossesThreshold(JsonNode node) { if (node.isBigInteger()) { //node.isBigInteger is not trustable, the type BigInteger doesn't mean it is a big number. - int compare = node.bigIntegerValue().compareTo(new BigInteger(schemaNode.asText())); + int compare = node.bigIntegerValue().compareTo(new BigInteger(schemaNode.asString())); return compare > 0 || compare == 0; - } else if (node.isTextual()) { + } else if (node.isString()) { BigDecimal max = new BigDecimal(maximumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || compare == 0; } @@ -84,7 +84,7 @@ public boolean crossesThreshold(JsonNode node) { return true; } final BigDecimal max = new BigDecimal(maximumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || compare == 0; } diff --git a/src/main/java/com/networknt/schema/keyword/ExclusiveMinimumValidator.java b/src/main/java/com/networknt/schema/keyword/ExclusiveMinimumValidator.java index 200965fd7..600e37dce 100644 --- a/src/main/java/com/networknt/schema/keyword/ExclusiveMinimumValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ExclusiveMinimumValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaException; @@ -44,7 +44,7 @@ public ExclusiveMinimumValidator(SchemaLocation schemaLocation, final JsonNode s if (!schemaNode.isNumber()) { throw new SchemaException("exclusiveMinimum value is not a number"); } - final String minimumText = schemaNode.asText(); + final String minimumText = schemaNode.asString(); if ((schemaNode.isLong() || schemaNode.isInt()) && JsonType.INTEGER.toString().equals(getNodeFieldType())) { // "integer", and within long range final long lmin = schemaNode.asLong(); @@ -56,9 +56,9 @@ public boolean crossesThreshold(JsonNode node) { int compare = node.bigIntegerValue().compareTo(new BigInteger(minimumText)); return compare < 0 || compare == 0; - } else if (node.isTextual()) { + } else if (node.isString()) { BigDecimal min = new BigDecimal(minimumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(min); return compare < 0 || compare == 0; @@ -91,7 +91,7 @@ public boolean crossesThreshold(JsonNode node) { return false; } final BigDecimal min = new BigDecimal(minimumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(min); return compare < 0 || compare == 0; } diff --git a/src/main/java/com/networknt/schema/keyword/FalseValidator.java b/src/main/java/com/networknt/schema/keyword/FalseValidator.java index 49025e2c1..b6654120b 100644 --- a/src/main/java/com/networknt/schema/keyword/FalseValidator.java +++ b/src/main/java/com/networknt/schema/keyword/FalseValidator.java @@ -15,7 +15,7 @@ */ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaContext; diff --git a/src/main/java/com/networknt/schema/keyword/FormatKeyword.java b/src/main/java/com/networknt/schema/keyword/FormatKeyword.java index 6e35bc112..a5b4ea4e2 100644 --- a/src/main/java/com/networknt/schema/keyword/FormatKeyword.java +++ b/src/main/java/com/networknt/schema/keyword/FormatKeyword.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; import com.networknt.schema.format.Format; @@ -53,8 +53,8 @@ Collection getFormats() { @Override public KeywordValidator newValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { Format format = null; - if (schemaNode != null && schemaNode.isTextual()) { - String formatName = schemaNode.textValue(); + if (schemaNode != null && schemaNode.isString()) { + String formatName = schemaNode.asString(); format = this.formats.get(formatName); } return new FormatValidator(schemaLocation, schemaNode, parentSchema, schemaContext, format, diff --git a/src/main/java/com/networknt/schema/keyword/FormatValidator.java b/src/main/java/com/networknt/schema/keyword/FormatValidator.java index f9a6c5814..c7a917ae2 100644 --- a/src/main/java/com/networknt/schema/keyword/FormatValidator.java +++ b/src/main/java/com/networknt/schema/keyword/FormatValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -54,7 +54,7 @@ protected Object getAnnotationValue() { if (this.format != null) { return this.format.getName(); } - return this.schemaNode.isTextual() ? schemaNode.textValue() : null; + return this.schemaNode.isString() ? schemaNode.asString() : null; } public void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation) { @@ -104,9 +104,9 @@ protected void validateUnknownFormat(ExecutionContext executionContext, * Unknown formats should create an assertion if the vocab is specified * according to the specification. */ - if (createUnknownFormatAssertions(executionContext) && this.schemaNode.isTextual()) { + if (createUnknownFormatAssertions(executionContext) && this.schemaNode.isString()) { executionContext.addError(error().instanceLocation(instanceLocation).instanceNode(node) - .evaluationPath(executionContext.getEvaluationPath()).messageKey("format.unknown").arguments(schemaNode.textValue()).build()); + .evaluationPath(executionContext.getEvaluationPath()).messageKey("format.unknown").arguments(schemaNode.asString()).build()); } } diff --git a/src/main/java/com/networknt/schema/keyword/IfValidator.java b/src/main/java/com/networknt/schema/keyword/IfValidator.java index 22e5053be..09a7a9749 100644 --- a/src/main/java/com/networknt/schema/keyword/IfValidator.java +++ b/src/main/java/com/networknt/schema/keyword/IfValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/keyword/ItemsLegacyValidator.java b/src/main/java/com/networknt/schema/keyword/ItemsLegacyValidator.java index 5c83a5658..377e837c8 100644 --- a/src/main/java/com/networknt/schema/keyword/ItemsLegacyValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ItemsLegacyValidator.java @@ -20,8 +20,8 @@ import java.util.Collections; import java.util.List; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ArrayNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaContext; diff --git a/src/main/java/com/networknt/schema/keyword/ItemsValidator.java b/src/main/java/com/networknt/schema/keyword/ItemsValidator.java index 5938a247c..b77c3a2cd 100644 --- a/src/main/java/com/networknt/schema/keyword/ItemsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ItemsValidator.java @@ -16,8 +16,8 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ArrayNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaRef; diff --git a/src/main/java/com/networknt/schema/keyword/Keyword.java b/src/main/java/com/networknt/schema/keyword/Keyword.java index 596c7ea62..5298dac84 100644 --- a/src/main/java/com/networknt/schema/keyword/Keyword.java +++ b/src/main/java/com/networknt/schema/keyword/Keyword.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Schema; import com.networknt.schema.SchemaException; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/KeywordType.java b/src/main/java/com/networknt/schema/keyword/KeywordType.java index a199cde1b..ca205db09 100644 --- a/src/main/java/com/networknt/schema/keyword/KeywordType.java +++ b/src/main/java/com/networknt/schema/keyword/KeywordType.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; import com.networknt.schema.SpecificationVersion; diff --git a/src/main/java/com/networknt/schema/keyword/MaxItemsValidator.java b/src/main/java/com/networknt/schema/keyword/MaxItemsValidator.java index 049101155..b87ac16d2 100644 --- a/src/main/java/com/networknt/schema/keyword/MaxItemsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MaxItemsValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/MaxLengthValidator.java b/src/main/java/com/networknt/schema/keyword/MaxLengthValidator.java index 0e1cda817..af172513d 100644 --- a/src/main/java/com/networknt/schema/keyword/MaxLengthValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MaxLengthValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -48,7 +48,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode // ignore no-string typs return; } - if (node.textValue().codePointCount(0, node.textValue().length()) > this.maxLength) { + if (node.asString().codePointCount(0, node.asString().length()) > this.maxLength) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()) .arguments(this.maxLength).build()); diff --git a/src/main/java/com/networknt/schema/keyword/MaxPropertiesValidator.java b/src/main/java/com/networknt/schema/keyword/MaxPropertiesValidator.java index edef1cd95..8c8391c6d 100644 --- a/src/main/java/com/networknt/schema/keyword/MaxPropertiesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MaxPropertiesValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/MaximumValidator.java b/src/main/java/com/networknt/schema/keyword/MaximumValidator.java index 8b5db4096..2d38e2f08 100644 --- a/src/main/java/com/networknt/schema/keyword/MaximumValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MaximumValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaException; @@ -53,7 +53,7 @@ public MaximumValidator(SchemaLocation schemaLocation, final JsonNode schemaNode this.excludeEqual = false; } - final String maximumText = schemaNode.asText(); + final String maximumText = schemaNode.asString(); if ((schemaNode.isLong() || schemaNode.isInt()) && (JsonType.INTEGER.toString().equals(getNodeFieldType()))) { // "integer", and within long range final long lm = schemaNode.asLong(); @@ -62,12 +62,12 @@ public MaximumValidator(SchemaLocation schemaLocation, final JsonNode schemaNode public boolean crossesThreshold(JsonNode node) { if (node.isBigInteger()) { //node.isBigInteger is not trustable, the type BigInteger doesn't mean it is a big number. - int compare = node.bigIntegerValue().compareTo(new BigInteger(schemaNode.asText())); + int compare = node.bigIntegerValue().compareTo(new BigInteger(schemaNode.asString())); return compare > 0 || (excludeEqual && compare == 0); - } else if (node.isTextual()) { + } else if (node.isString()) { BigDecimal max = new BigDecimal(maximumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || (excludeEqual && compare == 0); } @@ -97,7 +97,7 @@ public boolean crossesThreshold(JsonNode node) { return true; } final BigDecimal max = new BigDecimal(maximumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || (excludeEqual && compare == 0); } diff --git a/src/main/java/com/networknt/schema/keyword/MinItemsValidator.java b/src/main/java/com/networknt/schema/keyword/MinItemsValidator.java index 64a1b8aae..12be3fa8e 100644 --- a/src/main/java/com/networknt/schema/keyword/MinItemsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MinItemsValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/MinLengthValidator.java b/src/main/java/com/networknt/schema/keyword/MinLengthValidator.java index c19f70709..111ef34e0 100644 --- a/src/main/java/com/networknt/schema/keyword/MinLengthValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MinLengthValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -48,7 +48,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode return; } - if (node.textValue().codePointCount(0, node.textValue().length()) < minLength) { + if (node.asString().codePointCount(0, node.asString().length()) < minLength) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()) .arguments(minLength).build()); diff --git a/src/main/java/com/networknt/schema/keyword/MinMaxContainsValidator.java b/src/main/java/com/networknt/schema/keyword/MinMaxContainsValidator.java index 2ba469004..2f11fcf70 100644 --- a/src/main/java/com/networknt/schema/keyword/MinMaxContainsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MinMaxContainsValidator.java @@ -1,6 +1,6 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/MinPropertiesValidator.java b/src/main/java/com/networknt/schema/keyword/MinPropertiesValidator.java index 69fea4e8a..68d34526b 100644 --- a/src/main/java/com/networknt/schema/keyword/MinPropertiesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MinPropertiesValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/MinimumValidator.java b/src/main/java/com/networknt/schema/keyword/MinimumValidator.java index 627b6895c..25012b7da 100644 --- a/src/main/java/com/networknt/schema/keyword/MinimumValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MinimumValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaException; @@ -57,7 +57,7 @@ public MinimumValidator(SchemaLocation schemaLocation, final JsonNode schemaNode this.excludeEqual = false; } - final String minimumText = schemaNode.asText(); + final String minimumText = schemaNode.asString(); if ((schemaNode.isLong() || schemaNode.isInt()) && JsonType.INTEGER.toString().equals(getNodeFieldType())) { // "integer", and within long range final long lmin = schemaNode.asLong(); @@ -69,9 +69,9 @@ public boolean crossesThreshold(JsonNode node) { int compare = node.bigIntegerValue().compareTo(new BigInteger(minimumText)); return compare < 0 || (excludeEqual && compare == 0); - } else if (node.isTextual()) { + } else if (node.isString()) { BigDecimal min = new BigDecimal(minimumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(min); return compare < 0 || (excludeEqual && compare == 0); @@ -104,7 +104,7 @@ public boolean crossesThreshold(JsonNode node) { return false; } final BigDecimal min = new BigDecimal(minimumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(min); return compare < 0 || (excludeEqual && compare == 0); } diff --git a/src/main/java/com/networknt/schema/keyword/MultipleOfValidator.java b/src/main/java/com/networknt/schema/keyword/MultipleOfValidator.java index edf72be06..275e4703d 100644 --- a/src/main/java/com/networknt/schema/keyword/MultipleOfValidator.java +++ b/src/main/java/com/networknt/schema/keyword/MultipleOfValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -86,7 +86,7 @@ protected BigDecimal getDividend(JsonNode node) { } else if (this.schemaContext.getSchemaRegistryConfig().isTypeLoose() && JsonNodeTypes.isNumber(node, this.schemaContext.getSchemaRegistryConfig())) { // handling for type loose - return new BigDecimal(node.textValue()); + return new BigDecimal(node.asString()); } return null; } diff --git a/src/main/java/com/networknt/schema/keyword/NonValidationKeyword.java b/src/main/java/com/networknt/schema/keyword/NonValidationKeyword.java index e49236084..679020e41 100644 --- a/src/main/java/com/networknt/schema/keyword/NonValidationKeyword.java +++ b/src/main/java/com/networknt/schema/keyword/NonValidationKeyword.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -43,7 +43,7 @@ public Validator(SchemaLocation schemaLocation, JsonNode schemaNode, schemaContext.newSchema(schemaLocation, schemaNode, parentSchema); } if ("$defs".equals(keyword.getValue()) || "definitions".equals(keyword.getValue())) { - for (Iterator> field = schemaNode.fields(); field.hasNext(); ) { + for (Iterator> field = schemaNode.properties().iterator(); field.hasNext(); ) { Entry property = field.next(); SchemaLocation location = schemaLocation.append(property.getKey()); Schema schema = schemaContext.newSchema(location, diff --git a/src/main/java/com/networknt/schema/keyword/NotAllowedValidator.java b/src/main/java/com/networknt/schema/keyword/NotAllowedValidator.java index 7f09b7382..3509ec028 100644 --- a/src/main/java/com/networknt/schema/keyword/NotAllowedValidator.java +++ b/src/main/java/com/networknt/schema/keyword/NotAllowedValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -37,7 +37,7 @@ public NotAllowedValidator(SchemaLocation schemaLocation, JsonNode schemaNode, S int size = schemaNode.size(); this.fieldNames = new ArrayList<>(size); for (int i = 0; i < size; i++) { - fieldNames.add(schemaNode.get(i).asText()); + fieldNames.add(schemaNode.get(i).asString()); } } else { this.fieldNames = Collections.emptyList(); diff --git a/src/main/java/com/networknt/schema/keyword/NotValidator.java b/src/main/java/com/networknt/schema/keyword/NotValidator.java index a183c7636..170fcaf0c 100644 --- a/src/main/java/com/networknt/schema/keyword/NotValidator.java +++ b/src/main/java/com/networknt/schema/keyword/NotValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/keyword/OneOfValidator.java b/src/main/java/com/networknt/schema/keyword/OneOfValidator.java index 4358daadf..a93632085 100644 --- a/src/main/java/com/networknt/schema/keyword/OneOfValidator.java +++ b/src/main/java/com/networknt/schema/keyword/OneOfValidator.java @@ -19,7 +19,7 @@ import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; @@ -117,7 +117,7 @@ protected void validate(ExecutionContext executionContext, JsonNode node, JsonNo DiscriminatorState discriminator = executionContext.getDiscriminatorMapping().get(instanceLocation); JsonNode refNode = schema.getSchemaNode().get("$ref"); if (discriminator != null && refNode != null && discriminator.hasDiscriminatingValue()) { - discriminatorMatchFound = discriminator.matches(refNode.asText()); + discriminatorMatchFound = discriminator.matches(refNode.asString()); if (discriminatorMatchFound) { /* * Note that discriminator cannot change the outcome of the evaluation but can diff --git a/src/main/java/com/networknt/schema/keyword/PatternPropertiesValidator.java b/src/main/java/com/networknt/schema/keyword/PatternPropertiesValidator.java index 6dc0355bc..c1ebcd8fa 100644 --- a/src/main/java/com/networknt/schema/keyword/PatternPropertiesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/PatternPropertiesValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaException; @@ -41,7 +41,7 @@ public PatternPropertiesValidator(SchemaLocation schemaLocation, JsonNode schema if (!schemaNode.isObject()) { throw new SchemaException("patternProperties must be an object node"); } - Iterator names = schemaNode.fieldNames(); + Iterator names = schemaNode.propertyNames().iterator(); while (names.hasNext()) { String name = names.next(); RegularExpression pattern = RegularExpression.compile(name, schemaContext); @@ -57,7 +57,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode return; } Set matchedInstancePropertyNames = null; - Iterator> fields = node.fields(); + Iterator> fields = node.properties().iterator(); boolean collectAnnotations = hasUnevaluatedPropertiesInEvaluationPath(executionContext) || collectAnnotations(executionContext); while (fields.hasNext()) { Entry field = fields.next(); diff --git a/src/main/java/com/networknt/schema/keyword/PatternValidator.java b/src/main/java/com/networknt/schema/keyword/PatternValidator.java index b5fcc51b1..1b7d01bec 100644 --- a/src/main/java/com/networknt/schema/keyword/PatternValidator.java +++ b/src/main/java/com/networknt/schema/keyword/PatternValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.FailFastAssertionException; import com.networknt.schema.Schema; @@ -41,7 +41,7 @@ public class PatternValidator extends BaseKeywordValidator { public PatternValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.PATTERN, schemaNode, schemaLocation, parentSchema, schemaContext); - this.pattern = Optional.ofNullable(schemaNode).filter(JsonNode::isTextual).map(JsonNode::textValue).orElse(null); + this.pattern = Optional.ofNullable(schemaNode).filter(JsonNode::isString).map(JsonNode::asString).orElse(null); try { this.compiledPattern = RegularExpression.compile(this.pattern, schemaContext); } catch (RuntimeException e) { @@ -65,7 +65,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode } try { - if (!matches(node.asText())) { + if (!matches(node.asString())) { executionContext.addError(error().instanceNode(node).instanceLocation(instanceLocation) .evaluationPath(executionContext.getEvaluationPath()).locale(executionContext.getExecutionConfig().getLocale()) .arguments(this.pattern).build()); diff --git a/src/main/java/com/networknt/schema/keyword/PrefixItemsValidator.java b/src/main/java/com/networknt/schema/keyword/PrefixItemsValidator.java index 0d443b3f4..2ec6e86e4 100644 --- a/src/main/java/com/networknt/schema/keyword/PrefixItemsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/PrefixItemsValidator.java @@ -16,8 +16,8 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ArrayNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaRef; diff --git a/src/main/java/com/networknt/schema/keyword/PropertiesValidator.java b/src/main/java/com/networknt/schema/keyword/PropertiesValidator.java index c31439d72..05e51cc84 100644 --- a/src/main/java/com/networknt/schema/keyword/PropertiesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/PropertiesValidator.java @@ -16,10 +16,10 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeType; -import com.fasterxml.jackson.databind.node.MissingNode; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.JsonNodeType; +import tools.jackson.databind.node.MissingNode; +import tools.jackson.databind.node.ObjectNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaRef; @@ -46,7 +46,7 @@ public class PropertiesValidator extends BaseKeywordValidator { public PropertiesValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.PROPERTIES, schemaNode, schemaLocation, parentSchema, schemaContext); - for (Iterator> it = schemaNode.fields(); it.hasNext();) { + for (Iterator> it = schemaNode.properties().iterator(); it.hasNext();) { Entry entry = it.next(); String pname = entry.getKey(); this.schemas.put(pname, schemaContext.newSchema(schemaLocation.append(pname), diff --git a/src/main/java/com/networknt/schema/keyword/PropertyDependenciesValidator.java b/src/main/java/com/networknt/schema/keyword/PropertyDependenciesValidator.java index fc257ec49..2d9ee517f 100644 --- a/src/main/java/com/networknt/schema/keyword/PropertyDependenciesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/PropertyDependenciesValidator.java @@ -21,7 +21,7 @@ import java.util.Map.Entry; import java.util.Set; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaContext; @@ -69,7 +69,7 @@ protected void validate(ExecutionContext executionContext, JsonNode node, JsonNo Set> properties = node.properties(); for (Entry property : properties) { String propertyName = property.getKey(); - String propertyValue = property.getValue().asText(); + String propertyValue = property.getValue().asString(); if (propertyValue != null) { Map propertySchemas = this.propertyDependencies.get(propertyName); if (propertySchemas != null) { diff --git a/src/main/java/com/networknt/schema/keyword/PropertyNamesValidator.java b/src/main/java/com/networknt/schema/keyword/PropertyNamesValidator.java index df64c28ca..2bdefd6d1 100644 --- a/src/main/java/com/networknt/schema/keyword/PropertyNamesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/PropertyNamesValidator.java @@ -19,8 +19,8 @@ import java.util.Iterator; import java.util.List; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.TextNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.StringNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; @@ -41,9 +41,9 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode List existingErrors = executionContext.getErrors(); List schemaErrors = new ArrayList<>(); executionContext.setErrors(schemaErrors); - for (Iterator it = node.fieldNames(); it.hasNext(); ) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext(); ) { final String pname = it.next(); - final TextNode pnameText = TextNode.valueOf(pname); + final StringNode pnameText = StringNode.valueOf(pname); innerSchema.validate(executionContext, pnameText, node, instanceLocation.append(pname)); for (final Error schemaError : schemaErrors) { existingErrors.add( diff --git a/src/main/java/com/networknt/schema/keyword/ReadOnlyValidator.java b/src/main/java/com/networknt/schema/keyword/ReadOnlyValidator.java index cd83d4679..351c2177c 100644 --- a/src/main/java/com/networknt/schema/keyword/ReadOnlyValidator.java +++ b/src/main/java/com/networknt/schema/keyword/ReadOnlyValidator.java @@ -19,7 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/RecursiveRefValidator.java b/src/main/java/com/networknt/schema/keyword/RecursiveRefValidator.java index 158528755..5351d794a 100644 --- a/src/main/java/com/networknt/schema/keyword/RecursiveRefValidator.java +++ b/src/main/java/com/networknt/schema/keyword/RecursiveRefValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.InvalidSchemaRefException; @@ -37,7 +37,7 @@ public class RecursiveRefValidator extends BaseKeywordValidator { public RecursiveRefValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.RECURSIVE_REF, schemaNode, schemaLocation, parentSchema, schemaContext); - String refValue = schemaNode.asText(); + String refValue = schemaNode.asString(schemaNode.toString()); if (!"#".equals(refValue)) { Error error = error() .keyword(KeywordType.RECURSIVE_REF.getValue()).messageKey("internal.invalidRecursiveRef") @@ -82,7 +82,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode Error error = error().keyword(KeywordType.RECURSIVE_REF.getValue()) .messageKey("internal.unresolvedRef").message("Reference {0} cannot be resolved") .instanceLocation(instanceLocation).evaluationPath(executionContext.getEvaluationPath()) - .arguments(schemaNode.asText()).build(); + .arguments(schemaNode.toString()).build(); throw new InvalidSchemaRefException(error); } refSchema.validate(executionContext, node, rootNode, instanceLocation); @@ -99,7 +99,7 @@ public void walk(ExecutionContext executionContext, JsonNode node, JsonNode root Error error = error().keyword(KeywordType.RECURSIVE_REF.getValue()) .messageKey("internal.unresolvedRef").message("Reference {0} cannot be resolved") .instanceLocation(instanceLocation).evaluationPath(executionContext.getEvaluationPath()) - .arguments(schemaNode.asText()).build(); + .arguments(schemaNode.toString()).build(); throw new InvalidSchemaRefException(error); } if (node == null) { diff --git a/src/main/java/com/networknt/schema/keyword/RefValidator.java b/src/main/java/com/networknt/schema/keyword/RefValidator.java index e691fd8bc..a769399a0 100644 --- a/src/main/java/com/networknt/schema/keyword/RefValidator.java +++ b/src/main/java/com/networknt/schema/keyword/RefValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.InvalidSchemaRefException; @@ -42,7 +42,7 @@ public class RefValidator extends BaseKeywordValidator { public RefValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Schema parentSchema, SchemaContext schemaContext) { super(KeywordType.REF, schemaNode, schemaLocation, parentSchema, schemaContext); - String refValue = schemaNode.asText(); + String refValue = schemaNode.asString(); this.schema = getRefSchema(parentSchema, schemaContext, refValue); } @@ -188,7 +188,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode Error error = error().keyword(KeywordType.REF.getValue()) .messageKey("internal.unresolvedRef").message("Reference {0} cannot be resolved") .instanceLocation(instanceLocation).evaluationPath(executionContext.getEvaluationPath()) - .arguments(schemaNode.asText()).build(); + .arguments(schemaNode.asString()).build(); throw new InvalidSchemaRefException(error); } refSchema.validate(executionContext, node, rootNode, instanceLocation); @@ -205,7 +205,7 @@ public void walk(ExecutionContext executionContext, JsonNode node, JsonNode root Error error = error().keyword(KeywordType.REF.getValue()) .messageKey("internal.unresolvedRef").message("Reference {0} cannot be resolved") .instanceLocation(instanceLocation).evaluationPath(executionContext.getEvaluationPath()) - .arguments(schemaNode.asText()).build(); + .arguments(schemaNode.asString()).build(); throw new InvalidSchemaRefException(error); } if (node == null) { diff --git a/src/main/java/com/networknt/schema/keyword/RequiredValidator.java b/src/main/java/com/networknt/schema/keyword/RequiredValidator.java index 7f4dde24e..0b662a828 100644 --- a/src/main/java/com/networknt/schema/keyword/RequiredValidator.java +++ b/src/main/java/com/networknt/schema/keyword/RequiredValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -36,7 +36,7 @@ public RequiredValidator(SchemaLocation schemaLocation, JsonNode schemaNode, Sch if (schemaNode.isArray()) { this.fieldNames = new ArrayList<>(schemaNode.size()); for (JsonNode fieldNme : schemaNode) { - fieldNames.add(fieldNme.asText()); + fieldNames.add(fieldNme.asString()); } } else { this.fieldNames = Collections.emptyList(); diff --git a/src/main/java/com/networknt/schema/keyword/ThresholdMixin.java b/src/main/java/com/networknt/schema/keyword/ThresholdMixin.java index de67ea498..697cee770 100644 --- a/src/main/java/com/networknt/schema/keyword/ThresholdMixin.java +++ b/src/main/java/com/networknt/schema/keyword/ThresholdMixin.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; public interface ThresholdMixin { boolean crossesThreshold(JsonNode node); diff --git a/src/main/java/com/networknt/schema/keyword/TrueValidator.java b/src/main/java/com/networknt/schema/keyword/TrueValidator.java index fad0d0573..c374ba034 100644 --- a/src/main/java/com/networknt/schema/keyword/TrueValidator.java +++ b/src/main/java/com/networknt/schema/keyword/TrueValidator.java @@ -15,7 +15,7 @@ */ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/TypeValidator.java b/src/main/java/com/networknt/schema/keyword/TypeValidator.java index 70abe92e6..caead2720 100644 --- a/src/main/java/com/networknt/schema/keyword/TypeValidator.java +++ b/src/main/java/com/networknt/schema/keyword/TypeValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/UnevaluatedItemsValidator.java b/src/main/java/com/networknt/schema/keyword/UnevaluatedItemsValidator.java index ddeedd319..311125759 100644 --- a/src/main/java/com/networknt/schema/keyword/UnevaluatedItemsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/UnevaluatedItemsValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/UnevaluatedPropertiesValidator.java b/src/main/java/com/networknt/schema/keyword/UnevaluatedPropertiesValidator.java index f92f15dd5..cc5deb766 100644 --- a/src/main/java/com/networknt/schema/keyword/UnevaluatedPropertiesValidator.java +++ b/src/main/java/com/networknt/schema/keyword/UnevaluatedPropertiesValidator.java @@ -24,7 +24,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; @@ -115,7 +115,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode boolean failFast = executionContext.isFailFast(); try { executionContext.setFailFast(false); - for (Iterator it = node.fieldNames(); it.hasNext();) { + for (Iterator it = node.propertyNames().iterator(); it.hasNext();) { String fieldName = it.next(); if (!existingEvaluatedProperties.contains(fieldName)) { evaluatedProperties.add(fieldName); diff --git a/src/main/java/com/networknt/schema/keyword/UnionTypeValidator.java b/src/main/java/com/networknt/schema/keyword/UnionTypeValidator.java index be4f29429..79a877f22 100644 --- a/src/main/java/com/networknt/schema/keyword/UnionTypeValidator.java +++ b/src/main/java/com/networknt/schema/keyword/UnionTypeValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/keyword/UniqueItemsValidator.java b/src/main/java/com/networknt/schema/keyword/UniqueItemsValidator.java index 05f5bc080..5ed31ab51 100644 --- a/src/main/java/com/networknt/schema/keyword/UniqueItemsValidator.java +++ b/src/main/java/com/networknt/schema/keyword/UniqueItemsValidator.java @@ -16,7 +16,7 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/keyword/WriteOnlyValidator.java b/src/main/java/com/networknt/schema/keyword/WriteOnlyValidator.java index 3537395d6..d9d634144 100644 --- a/src/main/java/com/networknt/schema/keyword/WriteOnlyValidator.java +++ b/src/main/java/com/networknt/schema/keyword/WriteOnlyValidator.java @@ -3,7 +3,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaLocation; diff --git a/src/main/java/com/networknt/schema/output/OutputFlag.java b/src/main/java/com/networknt/schema/output/OutputFlag.java index 413bce06d..14a5093ea 100644 --- a/src/main/java/com/networknt/schema/output/OutputFlag.java +++ b/src/main/java/com/networknt/schema/output/OutputFlag.java @@ -2,7 +2,7 @@ import java.util.Objects; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import com.networknt.schema.serialization.JsonMapperFactory; /** @@ -40,7 +40,7 @@ public boolean equals(Object obj) { public String toString() { try { return JsonMapperFactory.getInstance().writerWithDefaultPrettyPrinter().writeValueAsString(this); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return "OutputFlag [valid=" + valid + "]"; } } diff --git a/src/main/java/com/networknt/schema/output/OutputUnit.java b/src/main/java/com/networknt/schema/output/OutputUnit.java index e85a05b54..61a8df8c1 100644 --- a/src/main/java/com/networknt/schema/output/OutputUnit.java +++ b/src/main/java/com/networknt/schema/output/OutputUnit.java @@ -23,7 +23,7 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.networknt.schema.serialization.JsonMapperFactory; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; /** * Represents an output unit. @@ -141,7 +141,7 @@ public boolean equals(Object obj) { public String toString() { try { return JsonMapperFactory.getInstance().writerWithDefaultPrettyPrinter().writeValueAsString(this); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return "OutputUnit [valid=" + valid + ", evaluationPath=" + evaluationPath + ", schemaLocation=" + schemaLocation + ", instanceLocation=" + instanceLocation + ", errors=" + errors + ", annotations=" + annotations + ", droppedAnnotations=" + droppedAnnotations + ", details=" diff --git a/src/main/java/com/networknt/schema/output/OutputUnitKey.java b/src/main/java/com/networknt/schema/output/OutputUnitKey.java index b5b23ebc5..d726d0cf9 100644 --- a/src/main/java/com/networknt/schema/output/OutputUnitKey.java +++ b/src/main/java/com/networknt/schema/output/OutputUnitKey.java @@ -17,9 +17,9 @@ import java.util.Objects; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.annotation.JsonSerialize; +import tools.jackson.databind.ser.std.ToStringSerializer; import com.networknt.schema.SchemaLocation; import com.networknt.schema.path.NodePath; import com.networknt.schema.serialization.JsonMapperFactory; @@ -77,7 +77,7 @@ public boolean equals(Object obj) { public String toString() { try { return JsonMapperFactory.getInstance().writerWithDefaultPrettyPrinter().writeValueAsString(this); - } catch (JsonProcessingException e) { + } catch (JacksonException e) { return "OutputUnitKey [evaluationPath=" + evaluationPath + ", schemaLocation=" + schemaLocation + ", instanceLocation=" + instanceLocation + "]"; } diff --git a/src/main/java/com/networknt/schema/serialization/BasicNodeReader.java b/src/main/java/com/networknt/schema/serialization/BasicNodeReader.java index 08d8c106a..33e982e17 100644 --- a/src/main/java/com/networknt/schema/serialization/BasicNodeReader.java +++ b/src/main/java/com/networknt/schema/serialization/BasicNodeReader.java @@ -19,8 +19,8 @@ import java.io.IOException; import java.io.InputStream; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.InputFormat; /** diff --git a/src/main/java/com/networknt/schema/serialization/DefaultNodeReader.java b/src/main/java/com/networknt/schema/serialization/DefaultNodeReader.java index 242887fd5..dc2e7da43 100644 --- a/src/main/java/com/networknt/schema/serialization/DefaultNodeReader.java +++ b/src/main/java/com/networknt/schema/serialization/DefaultNodeReader.java @@ -3,8 +3,8 @@ import java.io.IOException; import java.io.InputStream; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.InputFormat; import com.networknt.schema.serialization.node.JsonNodeFactoryFactory; import com.networknt.schema.serialization.node.LocationJsonNodeFactoryFactory; diff --git a/src/main/java/com/networknt/schema/serialization/JsonMapperFactory.java b/src/main/java/com/networknt/schema/serialization/JsonMapperFactory.java index 7a24e2939..5259e984e 100644 --- a/src/main/java/com/networknt/schema/serialization/JsonMapperFactory.java +++ b/src/main/java/com/networknt/schema/serialization/JsonMapperFactory.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.json.JsonMapper; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Json Mapper Factory. @@ -27,7 +27,7 @@ public class JsonMapperFactory { * The holder defers the classloading until it is used. */ private static class Holder { - private static final ObjectMapper INSTANCE = JsonMapper.builder().build(); + private static final ObjectMapper INSTANCE = JsonMapper.shared(); } /** diff --git a/src/main/java/com/networknt/schema/serialization/NodeReader.java b/src/main/java/com/networknt/schema/serialization/NodeReader.java index 39cff35d1..2e1615275 100644 --- a/src/main/java/com/networknt/schema/serialization/NodeReader.java +++ b/src/main/java/com/networknt/schema/serialization/NodeReader.java @@ -18,7 +18,7 @@ import java.io.IOException; import java.io.InputStream; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.InputFormat; /** diff --git a/src/main/java/com/networknt/schema/serialization/YamlMapperFactory.java b/src/main/java/com/networknt/schema/serialization/YamlMapperFactory.java index ea0b7a2df..577e0c59e 100644 --- a/src/main/java/com/networknt/schema/serialization/YamlMapperFactory.java +++ b/src/main/java/com/networknt/schema/serialization/YamlMapperFactory.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.dataformat.yaml.YAMLMapper; /** * YAML Mapper Factory. @@ -27,7 +27,7 @@ public class YamlMapperFactory { * The holder defers the classloading until it is used. */ private static class Holder { - private static final ObjectMapper INSTANCE = YAMLMapper.builder().build(); + private static final ObjectMapper INSTANCE = YAMLMapper.shared(); } /** diff --git a/src/main/java/com/networknt/schema/serialization/node/JsonNodeFactoryFactory.java b/src/main/java/com/networknt/schema/serialization/node/JsonNodeFactoryFactory.java index cfaf6e5ee..52dc840fe 100644 --- a/src/main/java/com/networknt/schema/serialization/node/JsonNodeFactoryFactory.java +++ b/src/main/java/com/networknt/schema/serialization/node/JsonNodeFactoryFactory.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import tools.jackson.core.JsonParser; +import tools.jackson.databind.node.JsonNodeFactory; /** * Factory that produces a {@link JsonNodeFactory}. diff --git a/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactory.java b/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactory.java index 87fa9ec75..e4e666112 100644 --- a/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactory.java +++ b/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactory.java @@ -18,18 +18,18 @@ import java.math.BigDecimal; import java.math.BigInteger; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.BinaryNode; -import com.fasterxml.jackson.databind.node.BooleanNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.NullNode; -import com.fasterxml.jackson.databind.node.NumericNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.databind.node.TextNode; -import com.fasterxml.jackson.databind.node.ValueNode; -import com.fasterxml.jackson.databind.util.RawValue; +import tools.jackson.core.JsonParser; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ArrayNode; +import tools.jackson.databind.node.BinaryNode; +import tools.jackson.databind.node.BooleanNode; +import tools.jackson.databind.node.JsonNodeFactory; +import tools.jackson.databind.node.NullNode; +import tools.jackson.databind.node.NumericNode; +import tools.jackson.databind.node.ObjectNode; +import tools.jackson.databind.node.StringNode; +import tools.jackson.databind.node.ValueNode; +import tools.jackson.databind.util.RawValue; /** * {@link JsonNodeFactory} that creates {@link TokenStreamLocationAware} nodes. @@ -141,8 +141,8 @@ public ValueNode numberNode(BigDecimal v) { } @Override - public TextNode textNode(String text) { - return new TokenStreamLocationAwareTextNode(text, this.jsonParser.currentTokenLocation()); + public StringNode stringNode(String text) { + return new TokenStreamLocationAwareStringNode(text, this.jsonParser.currentTokenLocation()); } @Override diff --git a/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactoryFactory.java b/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactoryFactory.java index 2adee508a..83b1137d8 100644 --- a/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactoryFactory.java +++ b/src/main/java/com/networknt/schema/serialization/node/LocationJsonNodeFactoryFactory.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import tools.jackson.core.JsonParser; +import tools.jackson.databind.node.JsonNodeFactory; /** * {@link JsonNodeFactoryFactory} that produces {@link LocationJsonNodeFactory}. diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAware.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAware.java index 073970292..9d2add0d6 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAware.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAware.java @@ -15,7 +15,7 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; +import tools.jackson.core.TokenStreamLocation; /** * JsonNodes that are aware of the token location will implement this interface. @@ -26,5 +26,5 @@ public interface TokenStreamLocationAware { * * @return the token location */ - JsonLocation tokenStreamLocation(); + TokenStreamLocation tokenStreamLocation(); } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareArrayNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareArrayNode.java index cfa6569d2..367217541 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareArrayNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareArrayNode.java @@ -17,10 +17,10 @@ import java.util.List; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.ArrayNode; +import tools.jackson.databind.node.JsonNodeFactory; /** * {@link ArrayNode} that is {@link TokenStreamLocationAware}. @@ -30,25 +30,25 @@ public class TokenStreamLocationAwareArrayNode extends ArrayNode implements Toke * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareArrayNode(JsonNodeFactory nf, int capacity, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareArrayNode(JsonNodeFactory nf, int capacity, TokenStreamLocation tokenStreamLocation) { super(nf, capacity); this.tokenStreamLocation = tokenStreamLocation; } - public TokenStreamLocationAwareArrayNode(JsonNodeFactory nf, List children, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareArrayNode(JsonNodeFactory nf, List children, TokenStreamLocation tokenStreamLocation) { super(nf, children); this.tokenStreamLocation = tokenStreamLocation; } - public TokenStreamLocationAwareArrayNode(JsonNodeFactory nf, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareArrayNode(JsonNodeFactory nf, TokenStreamLocation tokenStreamLocation) { super(nf); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBigIntegerNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBigIntegerNode.java index c3b621a98..67ff84349 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBigIntegerNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBigIntegerNode.java @@ -17,8 +17,8 @@ import java.math.BigInteger; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.BigIntegerNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.BigIntegerNode; /** * {@link BigIntegerNode} that is {@link TokenStreamLocationAware}. @@ -28,15 +28,15 @@ public class TokenStreamLocationAwareBigIntegerNode extends BigIntegerNode imple * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareBigIntegerNode(BigInteger v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareBigIntegerNode(BigInteger v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBinaryNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBinaryNode.java index dc0e46019..cc08b45aa 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBinaryNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBinaryNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.BinaryNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.BinaryNode; /** * {@link BinaryNode} that is {@link TokenStreamLocationAware}. @@ -26,21 +26,21 @@ public class TokenStreamLocationAwareBinaryNode extends BinaryNode implements To * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareBinaryNode(byte[] data, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareBinaryNode(byte[] data, TokenStreamLocation tokenStreamLocation) { super(data); this.tokenStreamLocation = tokenStreamLocation; } - public TokenStreamLocationAwareBinaryNode(byte[] data, int offset, int length, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareBinaryNode(byte[] data, int offset, int length, TokenStreamLocation tokenStreamLocation) { super(data, offset, length); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBooleanNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBooleanNode.java index 867d38445..7c3680b93 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBooleanNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareBooleanNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.BooleanNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.BooleanNode; /** * {@link BooleanNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareBooleanNode extends BooleanNode implements * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareBooleanNode(boolean v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareBooleanNode(boolean v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDecimalNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDecimalNode.java index 5da546b1c..a97b4138b 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDecimalNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDecimalNode.java @@ -17,8 +17,8 @@ import java.math.BigDecimal; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.DecimalNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.DecimalNode; /** * {@link DecimalNode} that is {@link TokenStreamLocationAware}. @@ -28,15 +28,15 @@ public class TokenStreamLocationAwareDecimalNode extends DecimalNode implements * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareDecimalNode(BigDecimal v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareDecimalNode(BigDecimal v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDoubleNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDoubleNode.java index 5c07ef536..1e7c790cd 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDoubleNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareDoubleNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.DoubleNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.DoubleNode; /** * {@link DoubleNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareDoubleNode extends DoubleNode implements To * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareDoubleNode(double v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareDoubleNode(double v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareFloatNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareFloatNode.java index 654d5d0bb..21806fc7e 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareFloatNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareFloatNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.FloatNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.FloatNode; /** * {@link FloatNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareFloatNode extends FloatNode implements Toke * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareFloatNode(float v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareFloatNode(float v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } -} +} \ No newline at end of file diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareIntNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareIntNode.java index 5c5e29b9d..ff90ba727 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareIntNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareIntNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.IntNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.IntNode; /** * {@link IntNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareIntNode extends IntNode implements TokenStr * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareIntNode(int v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareIntNode(int v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } -} +} \ No newline at end of file diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareLongNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareLongNode.java index 5d107717f..4f655adf8 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareLongNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareLongNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.LongNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.LongNode; /** * {@link LongNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareLongNode extends LongNode implements TokenS * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareLongNode(long v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareLongNode(long v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } -} +} \ No newline at end of file diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareNullNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareNullNode.java index 329ebab3c..89577abfd 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareNullNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareNullNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.NullNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.NullNode; /** * {@link NullNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareNullNode extends NullNode implements TokenS * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareNullNode(JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareNullNode(TokenStreamLocation tokenStreamLocation) { super(); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareObjectNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareObjectNode.java index b33c04741..875e4cfc0 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareObjectNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareObjectNode.java @@ -17,10 +17,10 @@ import java.util.Map; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.JsonNodeFactory; +import tools.jackson.databind.node.ObjectNode; /** * {@link ObjectNode} that is {@link TokenStreamLocationAware}. @@ -30,20 +30,20 @@ public class TokenStreamLocationAwareObjectNode extends ObjectNode implements To * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareObjectNode(JsonNodeFactory nc, Map children, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareObjectNode(JsonNodeFactory nc, Map children, TokenStreamLocation tokenStreamLocation) { super(nc, children); this.tokenStreamLocation = tokenStreamLocation; } - public TokenStreamLocationAwareObjectNode(JsonNodeFactory nc, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareObjectNode(JsonNodeFactory nc, TokenStreamLocation tokenStreamLocation) { super(nc); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwarePOJONode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwarePOJONode.java index 5d4c89cdb..35a720bf1 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwarePOJONode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwarePOJONode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.POJONode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.POJONode; /** * {@link POJONode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwarePOJONode extends POJONode implements TokenS * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwarePOJONode(Object v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwarePOJONode(Object v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } -} +} \ No newline at end of file diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareShortNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareShortNode.java index 64c7ad886..5c9f95079 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareShortNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareShortNode.java @@ -15,8 +15,8 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.ShortNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.ShortNode; /** * {@link ShortNode} that is {@link TokenStreamLocationAware}. @@ -26,15 +26,15 @@ public class TokenStreamLocationAwareShortNode extends ShortNode implements Toke * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareShortNode(short v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareShortNode(short v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareTextNode.java b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareStringNode.java similarity index 63% rename from src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareTextNode.java rename to src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareStringNode.java index 32ebea8c1..4f6f1efae 100644 --- a/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareTextNode.java +++ b/src/main/java/com/networknt/schema/serialization/node/TokenStreamLocationAwareStringNode.java @@ -15,26 +15,26 @@ */ package com.networknt.schema.serialization.node; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.databind.node.TextNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.node.StringNode; /** - * {@link TextNode} that is {@link TokenStreamLocationAware}. + * {@link StringNode} that is {@link TokenStreamLocationAware}. */ -public class TokenStreamLocationAwareTextNode extends TextNode implements TokenStreamLocationAware { +public class TokenStreamLocationAwareStringNode extends StringNode implements TokenStreamLocationAware { /** * */ private static final long serialVersionUID = 1L; - private final JsonLocation tokenStreamLocation; + private final TokenStreamLocation tokenStreamLocation; - public TokenStreamLocationAwareTextNode(String v, JsonLocation tokenStreamLocation) { + public TokenStreamLocationAwareStringNode(String v, TokenStreamLocation tokenStreamLocation) { super(v); this.tokenStreamLocation = tokenStreamLocation; } @Override - public JsonLocation tokenStreamLocation() { + public TokenStreamLocation tokenStreamLocation() { return this.tokenStreamLocation; } } diff --git a/src/main/java/com/networknt/schema/utils/JsonNodeTypes.java b/src/main/java/com/networknt/schema/utils/JsonNodeTypes.java index d30f93a8d..51be22b37 100644 --- a/src/main/java/com/networknt/schema/utils/JsonNodeTypes.java +++ b/src/main/java/com/networknt/schema/utils/JsonNodeTypes.java @@ -1,6 +1,6 @@ package com.networknt.schema.utils; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.SchemaContext; @@ -17,7 +17,7 @@ public class JsonNodeTypes { public static boolean isNodeNullable(JsonNode schema){ JsonNode nullable = schema.get(NULLABLE); - return nullable != null && nullable.asBoolean(); + return nullable != null && nullable.asBoolean(); } public static boolean equalsToSchemaType(JsonNode node, JsonType schemaType, Schema parentSchema, SchemaContext schemaContext, ExecutionContext executionContext) { @@ -27,6 +27,7 @@ public static boolean equalsToSchemaType(JsonNode node, JsonType schemaType, Sch // same type of schema. In REST API, query parameters, path parameters and headers are all // string type and we must convert, otherwise, all schema validations will fail. if (nodeType != schemaType) { + if (schemaType == JsonType.NUMBER && nodeType == JsonType.INTEGER) { return true; } @@ -49,24 +50,26 @@ public static boolean equalsToSchemaType(JsonNode node, JsonType schemaType, Sch if (!config.isStrict("type", Boolean.TRUE) && isEnumObjectSchema(parentSchema, executionContext)) { return true; } - if (config.isTypeLoose()) { + if (config != null && config.isTypeLoose()) { // if typeLoose is true, everything can be a size 1 array if (schemaType == JsonType.ARRAY) { return true; } if (nodeType == JsonType.STRING) { if (schemaType == JsonType.INTEGER) { - return Strings.isInteger(node.textValue()); + return Strings.isInteger(node.asString()); } else if (schemaType == JsonType.BOOLEAN) { - return Strings.isBoolean(node.textValue()); + return Strings.isBoolean(node.asString()); } else if (schemaType == JsonType.NUMBER) { - return Strings.isNumeric(node.textValue()); + return Strings.isNumeric(node.asString()); } } } + if (schemaType == JsonType.ANY) { return true; } + return false; } return true; @@ -89,7 +92,7 @@ public static boolean isNumber(JsonNode node, SchemaRegistryConfig config) { return true; } else if (config.isTypeLoose()) { if (TypeFactory.getValueNodeType(node, config) == JsonType.STRING) { - return Strings.isNumeric(node.textValue()); + return Strings.isNumeric(node.asString()); } } return false; diff --git a/src/main/java/com/networknt/schema/utils/JsonNodes.java b/src/main/java/com/networknt/schema/utils/JsonNodes.java index e0e76d17c..aa254da48 100644 --- a/src/main/java/com/networknt/schema/utils/JsonNodes.java +++ b/src/main/java/com/networknt/schema/utils/JsonNodes.java @@ -15,16 +15,15 @@ */ package com.networknt.schema.utils; -import java.io.IOException; import java.io.InputStream; -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectReader; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import tools.jackson.core.JacksonException; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.core.JsonParser; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectReader; +import tools.jackson.databind.node.JsonNodeFactory; import com.networknt.schema.path.NodePath; import com.networknt.schema.serialization.node.TokenStreamLocationAware; import com.networknt.schema.serialization.node.JsonNodeFactoryFactory; @@ -85,13 +84,12 @@ public static T get(JsonNode node, Object propertyOrIndex) */ public static JsonNode readTree(ObjectMapper objectMapper, String content, JsonNodeFactoryFactory jsonNodeFactoryFactory) { - JsonFactory factory = objectMapper.getFactory(); - try (JsonParser parser = factory.createParser(content)) { + try (JsonParser parser = objectMapper.createParser(content)) { JsonNodeFactory nodeFactory = jsonNodeFactoryFactory.getJsonNodeFactory(parser); ObjectReader reader = objectMapper.reader(nodeFactory); JsonNode result = reader.readTree(parser); return (result != null) ? result : nodeFactory.missingNode(); - } catch (IOException e) { + } catch (JacksonException e) { throw new IllegalArgumentException("Invalid input", e); } } @@ -106,13 +104,12 @@ public static JsonNode readTree(ObjectMapper objectMapper, String content, */ public static JsonNode readTree(ObjectMapper objectMapper, InputStream inputStream, JsonNodeFactoryFactory jsonNodeFactoryFactory) { - JsonFactory factory = objectMapper.getFactory(); - try (JsonParser parser = factory.createParser(inputStream)) { + try (JsonParser parser = objectMapper.createParser(inputStream)) { JsonNodeFactory nodeFactory = jsonNodeFactoryFactory.getJsonNodeFactory(parser); ObjectReader reader = objectMapper.reader(nodeFactory); JsonNode result = reader.readTree(parser); return (result != null) ? result : nodeFactory.missingNode(); - } catch (IOException e) { + } catch (JacksonException e) { throw new IllegalArgumentException("Invalid input", e); } } @@ -121,9 +118,9 @@ public static JsonNode readTree(ObjectMapper objectMapper, InputStream inputStre * Gets the token location of the {@link JsonNode} that implements {@link TokenStreamLocationAware}. * * @param jsonNode the node - * @return the JsonLocation + * @return the TokenStreamLocation */ - public static JsonLocation tokenStreamLocationOf(JsonNode jsonNode) { + public static TokenStreamLocation tokenStreamLocationOf(JsonNode jsonNode) { if (jsonNode instanceof TokenStreamLocationAware) { return ((TokenStreamLocationAware) jsonNode).tokenStreamLocation(); } diff --git a/src/main/java/com/networknt/schema/utils/TypeFactory.java b/src/main/java/com/networknt/schema/utils/TypeFactory.java index ffb1c4f35..c4156e1ab 100644 --- a/src/main/java/com/networknt/schema/utils/TypeFactory.java +++ b/src/main/java/com/networknt/schema/utils/TypeFactory.java @@ -16,8 +16,8 @@ package com.networknt.schema.utils; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeType; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.JsonNodeType; import com.networknt.schema.SchemaRegistryConfig; /** @@ -32,8 +32,8 @@ public class TypeFactory { */ public static JsonType getSchemaNodeType(JsonNode node) { //Single Type Definition - if (node.isTextual()) { - String type = node.textValue(); + if (node.isString()) { + String type = node.asString(); if ("object".equals(type)) { return JsonType.OBJECT; } @@ -89,6 +89,12 @@ public static JsonType getValueNodeType(JsonNode node, SchemaRegistryConfig conf return JsonType.ARRAY; case STRING: case BINARY: + case POJO: + /* + * In Jackson 3 binary data is converted to POJO not BINARY. + * BINARY and POJO are currently interpreted as STRING due to issue 650. + * In reality though, a base64 encoded string should be stored as a STRING. + */ return JsonType.STRING; case NUMBER: if (node.isIntegralNumber()) { diff --git a/src/main/java/com/networknt/schema/walk/AbstractWalkHandler.java b/src/main/java/com/networknt/schema/walk/AbstractWalkHandler.java index cc901e635..58d3650d5 100644 --- a/src/main/java/com/networknt/schema/walk/AbstractWalkHandler.java +++ b/src/main/java/com/networknt/schema/walk/AbstractWalkHandler.java @@ -1,6 +1,6 @@ package com.networknt.schema.walk; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.keyword.KeywordValidator; diff --git a/src/main/java/com/networknt/schema/walk/ItemWalkHandler.java b/src/main/java/com/networknt/schema/walk/ItemWalkHandler.java index cd022b3ae..5eb94c87c 100644 --- a/src/main/java/com/networknt/schema/walk/ItemWalkHandler.java +++ b/src/main/java/com/networknt/schema/walk/ItemWalkHandler.java @@ -16,7 +16,7 @@ package com.networknt.schema.walk; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.keyword.KeywordValidator; diff --git a/src/main/java/com/networknt/schema/walk/KeywordWalkHandler.java b/src/main/java/com/networknt/schema/walk/KeywordWalkHandler.java index ac0af1897..de7171108 100644 --- a/src/main/java/com/networknt/schema/walk/KeywordWalkHandler.java +++ b/src/main/java/com/networknt/schema/walk/KeywordWalkHandler.java @@ -22,7 +22,7 @@ import java.util.Map; import java.util.function.Consumer; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/walk/PropertyWalkHandler.java b/src/main/java/com/networknt/schema/walk/PropertyWalkHandler.java index 889ddd493..7e5c61365 100644 --- a/src/main/java/com/networknt/schema/walk/PropertyWalkHandler.java +++ b/src/main/java/com/networknt/schema/walk/PropertyWalkHandler.java @@ -16,7 +16,7 @@ package com.networknt.schema.walk; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.keyword.KeywordValidator; diff --git a/src/main/java/com/networknt/schema/walk/WalkConfig.java b/src/main/java/com/networknt/schema/walk/WalkConfig.java index 813ac0b9b..0c0ffb4f8 100644 --- a/src/main/java/com/networknt/schema/walk/WalkConfig.java +++ b/src/main/java/com/networknt/schema/walk/WalkConfig.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.function.Consumer; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Error; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; diff --git a/src/main/java/com/networknt/schema/walk/WalkEvent.java b/src/main/java/com/networknt/schema/walk/WalkEvent.java index 6f5a5b38f..bef3cfa5a 100644 --- a/src/main/java/com/networknt/schema/walk/WalkEvent.java +++ b/src/main/java/com/networknt/schema/walk/WalkEvent.java @@ -1,6 +1,6 @@ package com.networknt.schema.walk; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.keyword.KeywordValidator; diff --git a/src/main/java/com/networknt/schema/walk/WalkHandler.java b/src/main/java/com/networknt/schema/walk/WalkHandler.java index 67ee2525e..3da9ac1c9 100644 --- a/src/main/java/com/networknt/schema/walk/WalkHandler.java +++ b/src/main/java/com/networknt/schema/walk/WalkHandler.java @@ -1,10 +1,12 @@ package com.networknt.schema.walk; -import com.fasterxml.jackson.databind.JsonNode; import com.networknt.schema.ExecutionContext; import com.networknt.schema.Schema; import com.networknt.schema.keyword.KeywordValidator; import com.networknt.schema.path.NodePath; + +import tools.jackson.databind.JsonNode; + import com.networknt.schema.Error; import java.util.List; diff --git a/src/main/java/com/networknt/schema/walk/Walker.java b/src/main/java/com/networknt/schema/walk/Walker.java index bb250d426..4b13dda67 100644 --- a/src/main/java/com/networknt/schema/walk/Walker.java +++ b/src/main/java/com/networknt/schema/walk/Walker.java @@ -1,6 +1,6 @@ package com.networknt.schema.walk; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.Validator; import com.networknt.schema.path.NodePath; import com.networknt.schema.ExecutionContext; diff --git a/src/test/java/com/networknt/schema/AbstractJsonSchemaTest.java b/src/test/java/com/networknt/schema/AbstractJsonSchemaTest.java index 2c1a92e96..334d37a90 100644 --- a/src/test/java/com/networknt/schema/AbstractJsonSchemaTest.java +++ b/src/test/java/com/networknt/schema/AbstractJsonSchemaTest.java @@ -1,11 +1,10 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.keyword.KeywordType; import com.networknt.schema.serialization.JsonMapperFactory; -import java.io.IOException; import java.io.InputStream; import java.text.MessageFormat; import java.util.List; @@ -42,7 +41,7 @@ protected void assertValidatorType(String filename, KeywordType validatorTypeCod private Schema getJsonSchemaFromDataNode(JsonNode dataNode) { return Optional.ofNullable(dataNode.get(SCHEMA)) - .map(JsonNode::textValue) + .map(JsonNode::asString) .map(this::getJsonNodeFromPath) .map(this::getJsonSchema) .orElseThrow(() -> new IllegalArgumentException("No schema found on document to test")); @@ -51,11 +50,7 @@ private Schema getJsonSchemaFromDataNode(JsonNode dataNode) { private JsonNode getJsonNodeFromPath(String dataPath) { InputStream dataInputStream = getClass().getResourceAsStream(dataPath); ObjectMapper mapper = JsonMapperFactory.getInstance(); - try { - return mapper.readTree(dataInputStream); - } catch(IOException e) { - throw new RuntimeException(e); - } + return mapper.readTree(dataInputStream); } private Schema getJsonSchema(JsonNode schemaNode) { diff --git a/src/test/java/com/networknt/schema/AbstractJsonSchemaTestSuite.java b/src/test/java/com/networknt/schema/AbstractJsonSchemaTestSuite.java index 9bb76ed27..946502788 100644 --- a/src/test/java/com/networknt/schema/AbstractJsonSchemaTestSuite.java +++ b/src/test/java/com/networknt/schema/AbstractJsonSchemaTestSuite.java @@ -137,7 +137,7 @@ private static void executeTest(Schema schema, TestSpec testSpec) { private static Iterable unsupportedMetaSchema(TestCase testCase) { return Collections.singleton( dynamicTest("Detected an unsupported schema", () -> { - String schema = testCase.getSchema().asText(); + String schema = testCase.getSchema().asString(); AssertionFailedError t = AssertionFailureBuilder.assertionFailure() .message("Detected an unsupported schema: " + schema) .reason("Future and custom meta-schemas are not supported") diff --git a/src/test/java/com/networknt/schema/BaseJsonSchemaValidatorTest.java b/src/test/java/com/networknt/schema/BaseJsonSchemaValidatorTest.java index d02924de5..a3313861d 100644 --- a/src/test/java/com/networknt/schema/BaseJsonSchemaValidatorTest.java +++ b/src/test/java/com/networknt/schema/BaseJsonSchemaValidatorTest.java @@ -16,8 +16,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.serialization.JsonMapperFactory; import java.io.IOException; @@ -43,7 +43,9 @@ public static JsonNode getJsonNodeFromStringContent(String content) throws IOExc } public static JsonNode getJsonNodeFromUrl(String url) throws IOException { - return mapper.readTree(new URL(url)); + try (InputStream inputStream = new URL(url).openStream()) { + return mapper.readTree(inputStream); + } } public static Schema getJsonSchemaFromClasspath(String name) { diff --git a/src/test/java/com/networknt/schema/CollectorContextTest.java b/src/test/java/com/networknt/schema/CollectorContextTest.java index 0d5ada6e2..e19f32862 100644 --- a/src/test/java/com/networknt/schema/CollectorContextTest.java +++ b/src/test/java/com/networknt/schema/CollectorContextTest.java @@ -15,10 +15,8 @@ */ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.format.Format; @@ -65,12 +63,12 @@ void setup() throws Exception { void testCollectorContextWithKeyword() throws Exception { Result validationResult = validate("{\"test-property1\":\"sample1\",\"test-property2\":\"sample2\"}"); Assertions.assertEquals(0, validationResult.getErrors().size()); - List contextValues = validationResult.getCollectorContext().get(Data.SAMPLE_COLLECTOR); - contextValues.sort(null); + List conasStrings = validationResult.getCollectorContext().get(Data.SAMPLE_COLLECTOR); + conasStrings.sort(null); Assertions.assertEquals(0, validationResult.getErrors().size()); - Assertions.assertEquals(2, contextValues.size()); - Assertions.assertEquals(contextValues.get(0), "actual_value_added_to_context1"); - Assertions.assertEquals(contextValues.get(1), "actual_value_added_to_context2"); + Assertions.assertEquals(2, conasStrings.size()); + Assertions.assertEquals(conasStrings.get(0), "actual_value_added_to_context1"); + Assertions.assertEquals(conasStrings.get(1), "actual_value_added_to_context2"); } @Test @@ -103,13 +101,13 @@ void testCollectorContextWithMultipleThreads() throws Exception { Assertions.assertEquals(0, validationResult2.getErrors().size()); Assertions.assertEquals(0, validationResult3.getErrors().size()); - List contextValue1 = validationResult1.getCollectorContext().get(Data.SAMPLE_COLLECTOR); - List contextValue2 = validationResult2.getCollectorContext().get(Data.SAMPLE_COLLECTOR); - List contextValue3 = validationResult3.getCollectorContext().get(Data.SAMPLE_COLLECTOR); + List conasString1 = validationResult1.getCollectorContext().get(Data.SAMPLE_COLLECTOR); + List conasString2 = validationResult2.getCollectorContext().get(Data.SAMPLE_COLLECTOR); + List conasString3 = validationResult3.getCollectorContext().get(Data.SAMPLE_COLLECTOR); - Assertions.assertEquals(contextValue1.get(0), "actual_value_added_to_context1"); - Assertions.assertEquals(contextValue2.get(0), "actual_value_added_to_context2"); - Assertions.assertEquals(contextValue3.get(0), "actual_value_added_to_context3"); + Assertions.assertEquals(conasString1.get(0), "actual_value_added_to_context1"); + Assertions.assertEquals(conasString2.get(0), "actual_value_added_to_context2"); + Assertions.assertEquals(conasString3.get(0), "actual_value_added_to_context3"); } @Test @@ -229,10 +227,6 @@ private class ValidationThread implements Runnable { public void run() { try { this.validationResult = validate(data); - } catch (JsonMappingException e) { - e.printStackTrace(); - } catch (JsonProcessingException e) { - e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } @@ -315,7 +309,7 @@ public Supplier> supplier() { public BiConsumer, JsonNode> accumulator() { return (returnList, instanceNode) -> { synchronized (returnList) { - returnList.add(referenceMap.get(instanceNode.textValue())); + returnList.add(referenceMap.get(instanceNode.asString())); } }; } @@ -381,7 +375,7 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode List returnList = collectorContext.computeIfAbsent(Data.SAMPLE_COLLECTOR_OTHER, key -> new ArrayList()); synchronized (returnList) { - returnList.add(node.textValue()); + returnList.add(node.asString()); } } diff --git a/src/test/java/com/networknt/schema/ContentSchemaValidatorTest.java b/src/test/java/com/networknt/schema/ContentSchemaValidatorTest.java index 929c0cd1a..3a666e58f 100644 --- a/src/test/java/com/networknt/schema/ContentSchemaValidatorTest.java +++ b/src/test/java/com/networknt/schema/ContentSchemaValidatorTest.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import com.networknt.schema.output.OutputUnit; import com.networknt.schema.serialization.JsonMapperFactory; @@ -28,7 +28,7 @@ */ class ContentSchemaValidatorTest { @Test - void annotationCollection() throws JsonProcessingException { + void annotationCollection() throws JacksonException { String schemaData = "{\r\n" + " \"type\": \"string\",\r\n" + " \"contentMediaType\": \"application/jwt\",\r\n" diff --git a/src/test/java/com/networknt/schema/CustomMetaSchemaTest.java b/src/test/java/com/networknt/schema/CustomMetaSchemaTest.java index 50fde8bac..5ce7a237c 100644 --- a/src/test/java/com/networknt/schema/CustomMetaSchemaTest.java +++ b/src/test/java/com/networknt/schema/CustomMetaSchemaTest.java @@ -16,8 +16,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.keyword.AbstractKeyword; @@ -65,7 +65,7 @@ private Validator(SchemaLocation schemaLocation, String keyword, @Override public void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation) { - String value = node.asText(); + String value = node.asString(); int idx = enumValues.indexOf(value); if (idx < 0) { throw new IllegalArgumentException("value not found in enum. value: " + value + " enum: " + enumValues); @@ -110,7 +110,7 @@ private List readStringList(JsonNode node) { } ArrayList result = new ArrayList(node.size()); for (JsonNode child : node) { - result.add(child.asText()); + result.add(child.asString()); } return result; } diff --git a/src/test/java/com/networknt/schema/CustomUriTest.java b/src/test/java/com/networknt/schema/CustomUriTest.java index c5790c077..118c9b4d1 100644 --- a/src/test/java/com/networknt/schema/CustomUriTest.java +++ b/src/test/java/com/networknt/schema/CustomUriTest.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.resource.InputStreamSource; import com.networknt.schema.resource.ResourceLoader; diff --git a/src/test/java/com/networknt/schema/CyclicDependencyTest.java b/src/test/java/com/networknt/schema/CyclicDependencyTest.java index 3ac6a8910..c3c4a9155 100644 --- a/src/test/java/com/networknt/schema/CyclicDependencyTest.java +++ b/src/test/java/com/networknt/schema/CyclicDependencyTest.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/com/networknt/schema/DateTimeDSTTest.java b/src/test/java/com/networknt/schema/DateTimeDSTTest.java index f98ed0ffb..66b52d8cd 100644 --- a/src/test/java/com/networknt/schema/DateTimeDSTTest.java +++ b/src/test/java/com/networknt/schema/DateTimeDSTTest.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/DependentRequiredTest.java b/src/test/java/com/networknt/schema/DependentRequiredTest.java index 4a5e327a6..55a68b35e 100644 --- a/src/test/java/com/networknt/schema/DependentRequiredTest.java +++ b/src/test/java/com/networknt/schema/DependentRequiredTest.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import java.io.IOException; @@ -51,7 +51,7 @@ void shouldReturnErrorMessageForObjectWithoutDependentRequiredField() throws IOE } @Test - void shouldReturnNoErrorMessagesForObjectWithOptionalAndDependentRequiredFieldSet() throws JsonProcessingException { + void shouldReturnNoErrorMessagesForObjectWithOptionalAndDependentRequiredFieldSet() throws JacksonException { List messages = whenValidate("{ \"optional\": \"present\", \"requiredWhenOptionalPresent\": \"present\" }"); @@ -59,7 +59,7 @@ void shouldReturnNoErrorMessagesForObjectWithOptionalAndDependentRequiredFieldSe assertThat(messages, empty()); } - private static List whenValidate(String content) throws JsonProcessingException { + private static List whenValidate(String content) throws JacksonException { return schema.validate(mapper.readTree(content)); } diff --git a/src/test/java/com/networknt/schema/DurationFormatValidatorTest.java b/src/test/java/com/networknt/schema/DurationFormatValidatorTest.java index e71e00539..d10ac7743 100644 --- a/src/test/java/com/networknt/schema/DurationFormatValidatorTest.java +++ b/src/test/java/com/networknt/schema/DurationFormatValidatorTest.java @@ -16,8 +16,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import java.io.IOException; diff --git a/src/test/java/com/networknt/schema/ErrorTest.java b/src/test/java/com/networknt/schema/ErrorTest.java index a24746c4f..93ac32706 100644 --- a/src/test/java/com/networknt/schema/ErrorTest.java +++ b/src/test/java/com/networknt/schema/ErrorTest.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import com.networknt.schema.serialization.JsonMapperFactory; /** @@ -27,7 +27,7 @@ */ class ErrorTest { @Test - void testSerialization() throws JsonProcessingException { + void testSerialization() throws JacksonException { String value = JsonMapperFactory.getInstance() .writeValueAsString(Error.builder().messageSupplier(() -> "hello") .schemaLocation(SchemaLocation.of("https://www.example.com/#defs/definition")).build()); diff --git a/src/test/java/com/networknt/schema/FormatKeywordFactoryTest.java b/src/test/java/com/networknt/schema/FormatKeywordFactoryTest.java index cbdc6e260..2fafd42e0 100644 --- a/src/test/java/com/networknt/schema/FormatKeywordFactoryTest.java +++ b/src/test/java/com/networknt/schema/FormatKeywordFactoryTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.format.Format; diff --git a/src/test/java/com/networknt/schema/FormatValidatorTest.java b/src/test/java/com/networknt/schema/FormatValidatorTest.java index 37a80e6ca..9dd83591a 100644 --- a/src/test/java/com/networknt/schema/FormatValidatorTest.java +++ b/src/test/java/com/networknt/schema/FormatValidatorTest.java @@ -27,7 +27,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.format.Format; diff --git a/src/test/java/com/networknt/schema/Issue255Test.java b/src/test/java/com/networknt/schema/Issue255Test.java index dc6dbba81..c2f1eb15e 100644 --- a/src/test/java/com/networknt/schema/Issue255Test.java +++ b/src/test/java/com/networknt/schema/Issue255Test.java @@ -15,8 +15,8 @@ */ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue285Test.java b/src/test/java/com/networknt/schema/Issue285Test.java index ca2a87ce8..b4e4b290c 100644 --- a/src/test/java/com/networknt/schema/Issue285Test.java +++ b/src/test/java/com/networknt/schema/Issue285Test.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue295Test.java b/src/test/java/com/networknt/schema/Issue295Test.java index 27e6d9a36..dc8c45681 100644 --- a/src/test/java/com/networknt/schema/Issue295Test.java +++ b/src/test/java/com/networknt/schema/Issue295Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue313Test.java b/src/test/java/com/networknt/schema/Issue313Test.java index 430f9d44b..b1e1ecc17 100644 --- a/src/test/java/com/networknt/schema/Issue313Test.java +++ b/src/test/java/com/networknt/schema/Issue313Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue327Test.java b/src/test/java/com/networknt/schema/Issue327Test.java index 2c80e418e..6a88eb4ba 100644 --- a/src/test/java/com/networknt/schema/Issue327Test.java +++ b/src/test/java/com/networknt/schema/Issue327Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue342Test.java b/src/test/java/com/networknt/schema/Issue342Test.java index 94ef7e0a5..582b52a00 100644 --- a/src/test/java/com/networknt/schema/Issue342Test.java +++ b/src/test/java/com/networknt/schema/Issue342Test.java @@ -6,8 +6,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; class Issue342Test { protected Schema getJsonSchemaFromStreamContentV7(InputStream schemaContent) { diff --git a/src/test/java/com/networknt/schema/Issue366FailFastTest.java b/src/test/java/com/networknt/schema/Issue366FailFastTest.java index 7c41e4693..0fbdf88ab 100644 --- a/src/test/java/com/networknt/schema/Issue366FailFastTest.java +++ b/src/test/java/com/networknt/schema/Issue366FailFastTest.java @@ -3,8 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import java.io.IOException; import java.io.InputStream; import java.util.List; diff --git a/src/test/java/com/networknt/schema/Issue366FailSlowTest.java b/src/test/java/com/networknt/schema/Issue366FailSlowTest.java index bd00d2558..3133a5912 100644 --- a/src/test/java/com/networknt/schema/Issue366FailSlowTest.java +++ b/src/test/java/com/networknt/schema/Issue366FailSlowTest.java @@ -4,8 +4,8 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import java.io.IOException; import java.io.InputStream; import java.util.List; diff --git a/src/test/java/com/networknt/schema/Issue375Test.java b/src/test/java/com/networknt/schema/Issue375Test.java index 4974513f3..b4222ed36 100644 --- a/src/test/java/com/networknt/schema/Issue375Test.java +++ b/src/test/java/com/networknt/schema/Issue375Test.java @@ -15,8 +15,8 @@ */ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/test/java/com/networknt/schema/Issue383Test.java b/src/test/java/com/networknt/schema/Issue383Test.java index 3fdf85f32..3c5dfed00 100644 --- a/src/test/java/com/networknt/schema/Issue383Test.java +++ b/src/test/java/com/networknt/schema/Issue383Test.java @@ -6,8 +6,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; class Issue383Test { protected Schema getJsonSchemaFromStreamContentV7(InputStream schemaContent) { diff --git a/src/test/java/com/networknt/schema/Issue396Test.java b/src/test/java/com/networknt/schema/Issue396Test.java index e625cdde9..829459f99 100644 --- a/src/test/java/com/networknt/schema/Issue396Test.java +++ b/src/test/java/com/networknt/schema/Issue396Test.java @@ -9,8 +9,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; class Issue396Test { protected Schema getJsonSchemaFromStreamContentV7(InputStream schemaContent) { @@ -34,7 +34,7 @@ void testComplexPropertyNamesV7() throws Exception { JsonNode node = getJsonNodeFromStreamContent(dataInputStream); final Set expected = new HashSet<>(); - node.fields().forEachRemaining(entry -> { + node.properties().iterator().forEachRemaining(entry -> { if (!entry.getValue().asBoolean()) expected.add(entry.getKey()); }); diff --git a/src/test/java/com/networknt/schema/Issue404Test.java b/src/test/java/com/networknt/schema/Issue404Test.java index f9b560ebe..dd8f804df 100644 --- a/src/test/java/com/networknt/schema/Issue404Test.java +++ b/src/test/java/com/networknt/schema/Issue404Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue426Test.java b/src/test/java/com/networknt/schema/Issue426Test.java index a3b27e0fa..e22ce3ac8 100644 --- a/src/test/java/com/networknt/schema/Issue426Test.java +++ b/src/test/java/com/networknt/schema/Issue426Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -36,7 +36,7 @@ void shouldWorkV7() throws Exception { final JsonNode message = schema.schemaNode.get("message"); for(Error error : errors) { //validating custom message - Assertions.assertEquals(message.get(error.getKeyword()).asText(), error.getMessage()); + Assertions.assertEquals(message.get(error.getKeyword()).asString(), error.getMessage()); } } } diff --git a/src/test/java/com/networknt/schema/Issue428Test.java b/src/test/java/com/networknt/schema/Issue428Test.java index 166ddc96c..f1a205e27 100644 --- a/src/test/java/com/networknt/schema/Issue428Test.java +++ b/src/test/java/com/networknt/schema/Issue428Test.java @@ -1,8 +1,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.ArrayNode; import org.junit.jupiter.api.Test; import java.io.InputStream; diff --git a/src/test/java/com/networknt/schema/Issue451Test.java b/src/test/java/com/networknt/schema/Issue451Test.java index ee4e093c1..d6bd81126 100644 --- a/src/test/java/com/networknt/schema/Issue451Test.java +++ b/src/test/java/com/networknt/schema/Issue451Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.walk.WalkListener; import com.networknt.schema.walk.PropertyWalkHandler; import com.networknt.schema.walk.WalkConfig; diff --git a/src/test/java/com/networknt/schema/Issue456Test.java b/src/test/java/com/networknt/schema/Issue456Test.java index 7dc2566be..c433dd4af 100644 --- a/src/test/java/com/networknt/schema/Issue456Test.java +++ b/src/test/java/com/networknt/schema/Issue456Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue461Test.java b/src/test/java/com/networknt/schema/Issue461Test.java index 7c28a00ad..0efb8c81f 100644 --- a/src/test/java/com/networknt/schema/Issue461Test.java +++ b/src/test/java/com/networknt/schema/Issue461Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.keyword.KeywordType; import com.networknt.schema.serialization.JsonMapperFactory; import com.networknt.schema.walk.WalkListener; @@ -33,7 +33,7 @@ void shouldWalkWithValidation() throws IOException { .build(); Schema schema = getJsonSchemaFromStreamContentV7(SchemaLocation.of("resource:/draft-07/schema#")); - JsonNode data = mapper.readTree(Issue461Test.class.getResource("/data/issue461-v7.json")); + JsonNode data = mapper.readTree(Issue461Test.class.getResourceAsStream("/data/issue461-v7.json")); Result result = schema.walk(data, true, executionContext -> executionContext.setWalkConfig(walkConfig)); Assertions.assertTrue(result.getErrors().isEmpty()); } diff --git a/src/test/java/com/networknt/schema/Issue467Test.java b/src/test/java/com/networknt/schema/Issue467Test.java index df9b6dc39..2fa039f6a 100644 --- a/src/test/java/com/networknt/schema/Issue467Test.java +++ b/src/test/java/com/networknt/schema/Issue467Test.java @@ -29,8 +29,8 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.keyword.KeywordType; import com.networknt.schema.path.NodePath; import com.networknt.schema.walk.WalkListener; @@ -67,7 +67,7 @@ public void onWalkEnd(WalkEvent walkEvent, List set) { .build(); SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_7); Schema schema = factory.getSchema(schemaInputStream); - JsonNode data = mapper.readTree(Issue467Test.class.getResource("/data/issue467.json")); + JsonNode data = mapper.readTree(Issue467Test.class.getResourceAsStream("/data/issue467.json")); Result result = schema.walk(data, true, executionContext -> executionContext.setWalkConfig(walkConfig)); assertEquals(new HashSet<>(Arrays.asList("/properties", "/properties/tags/items/0/properties")), properties.stream().map(Object::toString).collect(Collectors.toSet())); @@ -96,7 +96,7 @@ public void onWalkEnd(WalkEvent walkEvent, List set) { .build(); SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_7); Schema schema = factory.getSchema(schemaInputStream); - JsonNode data = mapper.readTree(Issue467Test.class.getResource("/data/issue467.json")); + JsonNode data = mapper.readTree(Issue467Test.class.getResourceAsStream("/data/issue467.json")); Result result = schema.walk(data, true, executionContext -> executionContext.setWalkConfig(walkConfig)); assertEquals( new HashSet<>(Arrays.asList("/properties/tags", "/properties/tags/items/0/properties/category", "/properties/tags/items/0/properties/value")), diff --git a/src/test/java/com/networknt/schema/Issue471Test.java b/src/test/java/com/networknt/schema/Issue471Test.java index 903a493a8..d17b8e966 100644 --- a/src/test/java/com/networknt/schema/Issue471Test.java +++ b/src/test/java/com/networknt/schema/Issue471Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue493Test.java b/src/test/java/com/networknt/schema/Issue493Test.java index d0926d9bc..e35ccfc60 100644 --- a/src/test/java/com/networknt/schema/Issue493Test.java +++ b/src/test/java/com/networknt/schema/Issue493Test.java @@ -12,8 +12,8 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; class Issue493Test { diff --git a/src/test/java/com/networknt/schema/Issue550Test.java b/src/test/java/com/networknt/schema/Issue550Test.java index 4c65f08b8..d683b28b8 100644 --- a/src/test/java/com/networknt/schema/Issue550Test.java +++ b/src/test/java/com/networknt/schema/Issue550Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue575Test.java b/src/test/java/com/networknt/schema/Issue575Test.java index e54e05ae7..658235ceb 100644 --- a/src/test/java/com/networknt/schema/Issue575Test.java +++ b/src/test/java/com/networknt/schema/Issue575Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.params.ParameterizedTest; @@ -78,7 +78,7 @@ static Stream validTimeZoneOffsets() { */ @ParameterizedTest @MethodSource("validTimeZoneOffsets") - void testValidTimeZoneOffsets(String jsonObject) throws JsonProcessingException { + void testValidTimeZoneOffsets(String jsonObject) throws JacksonException { List errors = schema.validate(new ObjectMapper().readTree(jsonObject)); Assertions.assertTrue(errors.isEmpty()); } @@ -120,7 +120,7 @@ static Stream invalidTimeRepresentations() { */ @ParameterizedTest @MethodSource("invalidTimeRepresentations") - void testInvalidTimeRepresentations(String jsonObject) throws JsonProcessingException { + void testInvalidTimeRepresentations(String jsonObject) throws JacksonException { List errors = schema.validate(new ObjectMapper().readTree(jsonObject), OutputFormat.DEFAULT, (executionContext, schemaContext) -> { executionContext.executionConfig(executionConfig -> executionConfig.formatAssertionsEnabled(true)); }); diff --git a/src/test/java/com/networknt/schema/Issue604Test.java b/src/test/java/com/networknt/schema/Issue604Test.java index 60872c733..290894219 100644 --- a/src/test/java/com/networknt/schema/Issue604Test.java +++ b/src/test/java/com/networknt/schema/Issue604Test.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.walk.ApplyDefaultsStrategy; import com.networknt.schema.walk.WalkConfig; diff --git a/src/test/java/com/networknt/schema/Issue606Test.java b/src/test/java/com/networknt/schema/Issue606Test.java index 14ef4eee3..04c84fe33 100644 --- a/src/test/java/com/networknt/schema/Issue606Test.java +++ b/src/test/java/com/networknt/schema/Issue606Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue619Test.java b/src/test/java/com/networknt/schema/Issue619Test.java index 97f569974..6f46bf4c3 100644 --- a/src/test/java/com/networknt/schema/Issue619Test.java +++ b/src/test/java/com/networknt/schema/Issue619Test.java @@ -15,7 +15,7 @@ */ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.resource.ResourceLoader; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/com/networknt/schema/Issue650Test.java b/src/test/java/com/networknt/schema/Issue650Test.java index fdd15a33d..256c91f3d 100644 --- a/src/test/java/com/networknt/schema/Issue650Test.java +++ b/src/test/java/com/networknt/schema/Issue650Test.java @@ -5,11 +5,11 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.databind.node.BinaryNode; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.SerializationFeature; +import tools.jackson.databind.node.BinaryNode; /** * @@ -30,10 +30,11 @@ class Issue650Test { */ @Test void testBinaryNode() throws Exception { - final ObjectMapper mapper = new ObjectMapper(); - mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + final ObjectMapper mapper = new ObjectMapper().rebuild() + .changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_EMPTY)) + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) + .build(); // schema with data property of type string: InputStream schemaInputStream = getClass().getResourceAsStream("/draft7/issue650.json"); diff --git a/src/test/java/com/networknt/schema/Issue662Test.java b/src/test/java/com/networknt/schema/Issue662Test.java index 5241d4378..99f42f0cd 100644 --- a/src/test/java/com/networknt/schema/Issue662Test.java +++ b/src/test/java/com/networknt/schema/Issue662Test.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue664Test.java b/src/test/java/com/networknt/schema/Issue664Test.java index 738e08665..5779d01bf 100644 --- a/src/test/java/com/networknt/schema/Issue664Test.java +++ b/src/test/java/com/networknt/schema/Issue664Test.java @@ -9,8 +9,8 @@ import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; class Issue664Test { protected Schema getJsonSchemaFromStreamContentV7(InputStream schemaContent) { diff --git a/src/test/java/com/networknt/schema/Issue668Test.java b/src/test/java/com/networknt/schema/Issue668Test.java index 040b65286..6bf2e0e0f 100644 --- a/src/test/java/com/networknt/schema/Issue668Test.java +++ b/src/test/java/com/networknt/schema/Issue668Test.java @@ -1,8 +1,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.dataformat.yaml.YAMLMapper; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue686Test.java b/src/test/java/com/networknt/schema/Issue686Test.java index c0f49d187..924410dfd 100644 --- a/src/test/java/com/networknt/schema/Issue686Test.java +++ b/src/test/java/com/networknt/schema/Issue686Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.i18n.DefaultMessageSource; import com.networknt.schema.i18n.ResourceBundleMessageSource; @@ -23,7 +23,7 @@ void testDefaults() { } @Test - void testValidationWithDefaultBundleAndLocale() throws JsonProcessingException { + void testValidationWithDefaultBundleAndLocale() throws JacksonException { SchemaRegistryConfig config = SchemaRegistryConfig.builder().build(); ResourceBundle resourceBundle = ResourceBundle.getBundle(DefaultMessageSource.BUNDLE_BASE_NAME, Locale.getDefault()); String expectedMessage = new MessageFormat(resourceBundle.getString("type")).format(new String[] {"integer", "string"}); @@ -31,13 +31,13 @@ void testValidationWithDefaultBundleAndLocale() throws JsonProcessingException { } @Test - void testValidationWithDefaultBundleAndCustomLocale() throws JsonProcessingException { + void testValidationWithDefaultBundleAndCustomLocale() throws JacksonException { SchemaRegistryConfig config = SchemaRegistryConfig.builder().locale(Locale.ITALIAN).build(); verify(config, "/foo: integer trovato, string previsto"); } @Test - void testValidationWithCustomBundle() throws JsonProcessingException { + void testValidationWithCustomBundle() throws JacksonException { SchemaRegistryConfig config = SchemaRegistryConfig.builder() .messageSource(new ResourceBundleMessageSource("issue686/translations")) .locale(Locale.FRENCH) @@ -46,7 +46,7 @@ void testValidationWithCustomBundle() throws JsonProcessingException { } @Test - void testLocaleSwitch() throws JsonProcessingException { + void testLocaleSwitch() throws JacksonException { SchemaRegistryConfig config = SchemaRegistryConfig.builder().locale(Locale.ITALIAN).build(); verify(config, "/foo: integer trovato, string previsto"); SchemaRegistryConfig config2 = SchemaRegistryConfig.builder().locale(Locale.FRENCH).build(); @@ -55,10 +55,10 @@ void testLocaleSwitch() throws JsonProcessingException { private Schema getSchema(SchemaRegistryConfig config) { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2019_09, builder -> builder.schemaRegistryConfig(config)); - return factory.getSchema("{ \"$schema\": \"https://json-schema.org/draft/2019-09/schema\", \"$id\": \"https://json-schema.org/draft/2019-09/schema\", \"type\": \"object\", \"properties\": { \"foo\": { \"type\": \"string\" } } } }"); + return factory.getSchema("{ \"$schema\": \"https://json-schema.org/draft/2019-09/schema\", \"$id\": \"https://json-schema.org/draft/2019-09/schema\", \"type\": \"object\", \"properties\": { \"foo\": { \"type\": \"string\" } } }"); } - private void verify(SchemaRegistryConfig config, String expectedMessage) throws JsonProcessingException { + private void verify(SchemaRegistryConfig config, String expectedMessage) throws JacksonException { List messages = getSchema(config).validate(new ObjectMapper().readTree(" { \"foo\": 123 } ")); assertEquals(1, messages.size()); assertEquals(expectedMessage, messages.iterator().next().toString()); diff --git a/src/test/java/com/networknt/schema/Issue687Test.java b/src/test/java/com/networknt/schema/Issue687Test.java index 8995df5bd..318a33767 100644 --- a/src/test/java/com/networknt/schema/Issue687Test.java +++ b/src/test/java/com/networknt/schema/Issue687Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.path.PathType; import org.junit.jupiter.api.Test; @@ -87,7 +87,7 @@ void testAppendIndex(PathType pathType, String currentPath, Integer index, Strin @ParameterizedTest @MethodSource("errors") - void testError(PathType pathType, String schemaPath, String content, String[] expectedMessagePaths) throws JsonProcessingException { + void testError(PathType pathType, String schemaPath, String content, String[] expectedMessagePaths) throws JacksonException { SchemaRegistryConfig config = SchemaRegistryConfig.builder().pathType(pathType).build(); SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2019_09, builder -> builder.schemaRegistryConfig(config)); Schema schema = factory.getSchema(Issue687Test.class.getResourceAsStream(schemaPath)); @@ -119,7 +119,7 @@ static Stream specialCharacterTests() { @ParameterizedTest @MethodSource("specialCharacterTests") - void testSpecialCharacters(PathType pathType, String propertyName, String expectedPath) throws JsonProcessingException { + void testSpecialCharacters(PathType pathType, String propertyName, String expectedPath) throws JacksonException { ObjectMapper mapper = new ObjectMapper(); SchemaRegistryConfig schemaValidatorsConfig = SchemaRegistryConfig.builder().pathType(pathType).build(); Schema schema = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2019_09, builder -> builder.schemaRegistryConfig(schemaValidatorsConfig)) diff --git a/src/test/java/com/networknt/schema/Issue724Test.java b/src/test/java/com/networknt/schema/Issue724Test.java index 26bc62504..2312a95db 100644 --- a/src/test/java/com/networknt/schema/Issue724Test.java +++ b/src/test/java/com/networknt/schema/Issue724Test.java @@ -9,9 +9,9 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.walk.WalkListener; import com.networknt.schema.walk.KeywordWalkHandler; import com.networknt.schema.walk.WalkConfig; @@ -21,7 +21,7 @@ class Issue724Test { @Test - void test() throws JsonProcessingException { + void test() throws JacksonException { StringCollector stringCollector = new StringCollector(); KeywordWalkHandler keywordWalkHandler = KeywordWalkHandler.builder().keywordWalkListener(stringCollector).build(); @@ -68,12 +68,12 @@ public WalkFlow onWalkStart(WalkEvent walkEvent) { boolean isString = Optional.of(walkEvent.getSchema().getSchemaNode()) .map(jsonNode -> jsonNode.get("type")) - .map(JsonNode::asText) + .map(JsonNode::asString) .map(type -> type.equals("string")) .orElse(false); if (isString) { - this.strings.add(walkEvent.getInstanceNode().asText()); + this.strings.add(walkEvent.getInstanceNode().asString()); } return WalkFlow.CONTINUE; diff --git a/src/test/java/com/networknt/schema/Issue784Test.java b/src/test/java/com/networknt/schema/Issue784Test.java index da483abe1..6ddb4100b 100644 --- a/src/test/java/com/networknt/schema/Issue784Test.java +++ b/src/test/java/com/networknt/schema/Issue784Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.format.Format; @@ -54,7 +54,7 @@ void useDefaultValidatorIfNotOverriden() throws IOException { } - private List validate(Schema jsonSchema, String myDateTimeContent) throws JsonProcessingException { + private List validate(Schema jsonSchema, String myDateTimeContent) throws JacksonException { return jsonSchema.validate(new ObjectMapper().readTree(" { \"my-date-time\": \"" + myDateTimeContent + "\" } ")); } diff --git a/src/test/java/com/networknt/schema/Issue792.java b/src/test/java/com/networknt/schema/Issue792.java index b2302017c..0c7fc640e 100644 --- a/src/test/java/com/networknt/schema/Issue792.java +++ b/src/test/java/com/networknt/schema/Issue792.java @@ -1,8 +1,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -11,7 +11,7 @@ class Issue792 { @Test - void test() throws JsonProcessingException { + void test() throws JacksonException { SchemaRegistryConfig config = SchemaRegistryConfig.builder().typeLoose(false).failFast(true).build(); SchemaRegistry schemaFactory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_7, builder -> builder.schemaRegistryConfig(config)); diff --git a/src/test/java/com/networknt/schema/Issue824Test.java b/src/test/java/com/networknt/schema/Issue824Test.java index 8ad539afc..a0fe1dbb4 100644 --- a/src/test/java/com/networknt/schema/Issue824Test.java +++ b/src/test/java/com/networknt/schema/Issue824Test.java @@ -6,14 +6,14 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.Dialects; class Issue824Test { @Test - void validate() throws JsonProcessingException { + void validate() throws JacksonException { final Schema v201909SpecSchema = SchemaRegistry .builder(SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2019_09)) .schemaIdResolvers(schemaIdResolvers -> { diff --git a/src/test/java/com/networknt/schema/Issue832Test.java b/src/test/java/com/networknt/schema/Issue832Test.java index 9065decdf..b499af440 100644 --- a/src/test/java/com/networknt/schema/Issue832Test.java +++ b/src/test/java/com/networknt/schema/Issue832Test.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.format.Format; diff --git a/src/test/java/com/networknt/schema/Issue898Test.java b/src/test/java/com/networknt/schema/Issue898Test.java index 45ee0ea23..cd619e60b 100644 --- a/src/test/java/com/networknt/schema/Issue898Test.java +++ b/src/test/java/com/networknt/schema/Issue898Test.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue927Test.java b/src/test/java/com/networknt/schema/Issue927Test.java index 0d1270375..2bfd7a115 100644 --- a/src/test/java/com/networknt/schema/Issue927Test.java +++ b/src/test/java/com/networknt/schema/Issue927Test.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import com.networknt.schema.serialization.JsonMapperFactory; /** @@ -29,7 +29,7 @@ */ class Issue927Test { @Test - void test() throws JsonProcessingException { + void test() throws JacksonException { String schema = "{\r\n" + " \"$schema\": \"http://json-schema.org/draft-07/schema#\",\r\n" + " \"$id\": \"id\",\r\n" diff --git a/src/test/java/com/networknt/schema/Issue928Test.java b/src/test/java/com/networknt/schema/Issue928Test.java index 7bbe0f1e9..b065205a5 100644 --- a/src/test/java/com/networknt/schema/Issue928Test.java +++ b/src/test/java/com/networknt/schema/Issue928Test.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/Issue994Test.java b/src/test/java/com/networknt/schema/Issue994Test.java index f1c4156fe..7aee9dad8 100644 --- a/src/test/java/com/networknt/schema/Issue994Test.java +++ b/src/test/java/com/networknt/schema/Issue994Test.java @@ -20,8 +20,8 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.serialization.JsonMapperFactory; @@ -29,12 +29,12 @@ class Issue994Test { @Test - void test() throws JsonProcessingException { + void test() throws JacksonException { String schemaData = "{\r\n" + " \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\r\n" + " \"type\": \"object\",\r\n" + " \"properties\": {\r\n" - + " \"textValue\": {\r\n" + + " \"asString\": {\r\n" + " \"type\": [\r\n" + " \"string\",\r\n" + " \"null\"\r\n" @@ -50,7 +50,7 @@ void test() throws JsonProcessingException { Schema schema = SchemaRegistry .withDialect(dialect).getSchema(schemaNode); String inputData = "{\r\n" - + " \"textValue\": \"hello\"\r\n" + + " \"asString\": \"hello\"\r\n" + "}"; assertTrue(schema.validate(inputData, InputFormat.JSON, OutputFormat.BOOLEAN)); } diff --git a/src/test/java/com/networknt/schema/ItemsLegacyValidatorTest.java b/src/test/java/com/networknt/schema/ItemsLegacyValidatorTest.java index 10af40ea9..2be75503d 100644 --- a/src/test/java/com/networknt/schema/ItemsLegacyValidatorTest.java +++ b/src/test/java/com/networknt/schema/ItemsLegacyValidatorTest.java @@ -25,8 +25,8 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; import com.networknt.schema.path.NodePath; import com.networknt.schema.serialization.JsonMapperFactory; import com.networknt.schema.walk.ApplyDefaultsStrategy; @@ -244,7 +244,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void walkTupleItemsAdditional() throws JsonProcessingException { + void walkTupleItemsAdditional() throws JacksonException { String schemaData = "{\r\n" + " \"items\": [\r\n" + " {\r\n" @@ -288,7 +288,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { assertEquals(3, items.size()); assertEquals("/0", items.get(0).getInstanceLocation().toString()); assertEquals("items", items.get(0).getKeyword()); - assertEquals("hello", items.get(0).getInstanceNode().textValue()); + assertEquals("hello", items.get(0).getInstanceNode().asString()); assertEquals("/1", items.get(1).getInstanceLocation().toString()); assertEquals("items", items.get(1).getKeyword()); assertNull(items.get(1).getInstanceNode()); @@ -298,7 +298,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void walkTupleItemsAdditionalDefaults() throws JsonProcessingException { + void walkTupleItemsAdditionalDefaults() throws JacksonException { String schemaData = "{\r\n" + " \"items\": [\r\n" + " {\r\n" @@ -344,15 +344,15 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { assertEquals(4, items.size()); assertEquals("/0", items.get(0).getInstanceLocation().toString()); assertEquals("items", items.get(0).getKeyword()); - assertEquals("1", items.get(0).getInstanceNode().textValue()); + assertEquals("1", items.get(0).getInstanceNode().asString()); assertEquals("/1", items.get(1).getInstanceLocation().toString()); assertEquals("items", items.get(1).getKeyword()); assertEquals(2, items.get(1).getInstanceNode().intValue()); assertEquals("/2", items.get(2).getInstanceLocation().toString()); assertEquals("additionalItems", items.get(2).getKeyword()); - assertEquals("additional", items.get(2).getInstanceNode().asText()); + assertEquals("additional", items.get(2).getInstanceNode().asString()); assertEquals("/3", items.get(3).getInstanceLocation().toString()); assertEquals("additionalItems", items.get(3).getKeyword()); - assertEquals("additional", items.get(3).getInstanceNode().asText()); + assertEquals("additional", items.get(3).getInstanceNode().asString()); } } diff --git a/src/test/java/com/networknt/schema/JsonSchemaFactoryUriCacheTest.java b/src/test/java/com/networknt/schema/JsonSchemaFactoryUriCacheTest.java index 99fd3a603..b6fc3a66e 100644 --- a/src/test/java/com/networknt/schema/JsonSchemaFactoryUriCacheTest.java +++ b/src/test/java/com/networknt/schema/JsonSchemaFactoryUriCacheTest.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.BasicDialectRegistry; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.resource.InputStreamSource; @@ -22,16 +22,16 @@ class JsonSchemaFactoryUriCacheTest { private final ObjectMapper objectMapper = new ObjectMapper(); @Test - void cacheEnabled() throws JsonProcessingException { + void cacheEnabled() throws JacksonException { runCacheTest(true); } @Test - void cacheDisabled() throws JsonProcessingException { + void cacheDisabled() throws JacksonException { runCacheTest(false); } - private void runCacheTest(boolean enableCache) throws JsonProcessingException { + private void runCacheTest(boolean enableCache) throws JacksonException { CustomURIFetcher fetcher = new CustomURIFetcher(); SchemaRegistry factory = buildJsonSchemaFactory(fetcher, enableCache); SchemaLocation schemaUri = SchemaLocation.of("cache:uri_mapping/schema1.json"); diff --git a/src/test/java/com/networknt/schema/JsonWalkApplyDefaultsTest.java b/src/test/java/com/networknt/schema/JsonWalkApplyDefaultsTest.java index e3c4d81da..8da8d0135 100644 --- a/src/test/java/com/networknt/schema/JsonWalkApplyDefaultsTest.java +++ b/src/test/java/com/networknt/schema/JsonWalkApplyDefaultsTest.java @@ -4,8 +4,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.walk.ApplyDefaultsStrategy; import com.networknt.schema.walk.WalkConfig; diff --git a/src/test/java/com/networknt/schema/JsonWalkTest.java b/src/test/java/com/networknt/schema/JsonWalkTest.java index 772810f35..2114236e4 100644 --- a/src/test/java/com/networknt/schema/JsonWalkTest.java +++ b/src/test/java/com/networknt/schema/JsonWalkTest.java @@ -1,9 +1,9 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.MissingNode; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.MissingNode; +import tools.jackson.databind.node.ObjectNode; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.keyword.AbstractKeywordValidator; @@ -210,8 +210,8 @@ public WalkFlow onWalkStart(WalkEvent keywordWalkEvent) { } if (keyWordName.equals(CUSTOM_KEYWORD) && schemaNode.get(CUSTOM_KEYWORD).isArray()) { ObjectNode objectNode = (ObjectNode) collectorContext.get(SAMPLE_WALK_COLLECTOR_TYPE); - objectNode.put(keywordWalkEvent.getSchema().getSchemaNode().get("title").textValue().toUpperCase(), - keywordWalkEvent.getInstanceNode().textValue()); + objectNode.put(keywordWalkEvent.getSchema().getSchemaNode().get("title").asString().toUpperCase(), + keywordWalkEvent.getInstanceNode().asString()); } return WalkFlow.CONTINUE; } @@ -232,7 +232,7 @@ public WalkFlow onWalkStart(WalkEvent keywordWalkEvent) { collectorContext.put(SAMPLE_WALK_COLLECTOR_TYPE, mapper.createObjectNode()); } ObjectNode objectNode = (ObjectNode) collectorContext.get(SAMPLE_WALK_COLLECTOR_TYPE); - objectNode.set(keywordWalkEvent.getSchema().getSchemaNode().get("title").textValue().toLowerCase(), + objectNode.set(keywordWalkEvent.getSchema().getSchemaNode().get("title").asString().toLowerCase(), keywordWalkEvent.getInstanceNode()); return WalkFlow.SKIP; } @@ -248,7 +248,7 @@ private static class PropertiesKeywordListener implements WalkListener { @Override public WalkFlow onWalkStart(WalkEvent keywordWalkEvent) { JsonNode schemaNode = keywordWalkEvent.getSchema().getSchemaNode(); - if (schemaNode.get("title").textValue().equals("Property3")) { + if (schemaNode.get("title").asString().equals("Property3")) { return WalkFlow.SKIP; } return WalkFlow.CONTINUE; diff --git a/src/test/java/com/networknt/schema/LocaleTest.java b/src/test/java/com/networknt/schema/LocaleTest.java index 863ea0ed7..5fef29077 100644 --- a/src/test/java/com/networknt/schema/LocaleTest.java +++ b/src/test/java/com/networknt/schema/LocaleTest.java @@ -24,10 +24,9 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.i18n.Locales; import com.networknt.schema.serialization.JsonMapperFactory; @@ -35,7 +34,7 @@ class LocaleTest { private Schema getSchema(SchemaRegistryConfig config) { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2019_09, builder -> builder.schemaRegistryConfig(config)); return factory.getSchema( - "{ \"$schema\": \"https://json-schema.org/draft/2019-09/schema\", \"$id\": \"https://json-schema.org/draft/2019-09/schema\", \"type\": \"object\", \"properties\": { \"foo\": { \"type\": \"string\" } } } }" + "{ \"$schema\": \"https://json-schema.org/draft/2019-09/schema\", \"$id\": \"https://json-schema.org/draft/2019-09/schema\", \"type\": \"object\", \"properties\": { \"foo\": { \"type\": \"string\" } } }" ); } @@ -44,10 +43,10 @@ private Schema getSchema(SchemaRegistryConfig config) { * context locale. * * @throws JsonMappingException the error - * @throws JsonProcessingException the error + * @throws JacksonException the error */ @Test - void executionContextLocale() throws JsonMappingException, JsonProcessingException { + void executionContextLocale() throws JacksonException { JsonNode rootNode = new ObjectMapper().readTree(" { \"foo\": 123 } "); SchemaRegistryConfig config = SchemaRegistryConfig.builder().build(); Schema jsonSchema = getSchema(config); @@ -73,10 +72,10 @@ void executionContextLocale() throws JsonMappingException, JsonProcessingExcepti * Locale.ENGLISH should work despite Locale.getDefault setting. * * @throws JsonMappingException the exception - * @throws JsonProcessingException the exception + * @throws JacksonException the exception */ @Test - void englishLocale() throws JsonMappingException, JsonProcessingException { + void englishLocale() throws JacksonException { Locale locale = Locale.getDefault(); try { Locale.setDefault(Locale.GERMAN); diff --git a/src/test/java/com/networknt/schema/MaximumValidatorTest.java b/src/test/java/com/networknt/schema/MaximumValidatorTest.java index 634945fca..ada7c642a 100644 --- a/src/test/java/com/networknt/schema/MaximumValidatorTest.java +++ b/src/test/java/com/networknt/schema/MaximumValidatorTest.java @@ -16,9 +16,9 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import java.io.IOException; @@ -40,8 +40,8 @@ class MaximumValidatorTest extends BaseJsonSchemaValidatorTest { // due to a jackson bug, a float number which is larger than Double.POSITIVE_INFINITY cannot be convert to BigDecimal correctly // https://github.com/FasterXML/jackson-databind/issues/1770 // https://github.com/FasterXML/jackson-databind/issues/2087 - private static final ObjectMapper bigDecimalMapper = new ObjectMapper().enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); - private static final ObjectMapper bigIntegerMapper = new ObjectMapper().enable(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS); + private static final ObjectMapper bigDecimalMapper = new ObjectMapper().rebuild().enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS).build(); + private static final ObjectMapper bigIntegerMapper = new ObjectMapper().rebuild().enable(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS).build(); static String[][] augmentWithQuotes(String[][] values) { for (int i = 0; i < values.length; i++) { diff --git a/src/test/java/com/networknt/schema/MessageTest.java b/src/test/java/com/networknt/schema/MessageTest.java index 5a5e5da1a..b8e8d3667 100644 --- a/src/test/java/com/networknt/schema/MessageTest.java +++ b/src/test/java/com/networknt/schema/MessageTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.keyword.BaseKeywordValidator; @@ -40,13 +40,13 @@ static class EqualsValidator extends BaseKeywordValidator { Schema parentSchema, Keyword keyword, SchemaContext schemaContext) { super(keyword, schemaNode, schemaLocation, parentSchema, schemaContext); - this.value = schemaNode.textValue(); + this.value = schemaNode.asString(); } @Override public void validate(ExecutionContext executionContext, JsonNode node, JsonNode rootNode, NodePath instanceLocation) { - if (!node.asText().equals(value)) { + if (!node.asString().equals(value)) { executionContext.addError(error().message("must be equal to ''{0}''") .arguments(value) .instanceLocation(instanceLocation).instanceNode(node).evaluationPath(executionContext.getEvaluationPath()).build()); diff --git a/src/test/java/com/networknt/schema/MetaSchemaValidationTest.java b/src/test/java/com/networknt/schema/MetaSchemaValidationTest.java index 6768a04f5..1d85a397d 100644 --- a/src/test/java/com/networknt/schema/MetaSchemaValidationTest.java +++ b/src/test/java/com/networknt/schema/MetaSchemaValidationTest.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.serialization.JsonMapperFactory; /** diff --git a/src/test/java/com/networknt/schema/MinimumValidatorTest.java b/src/test/java/com/networknt/schema/MinimumValidatorTest.java index b4888358c..55f63351d 100644 --- a/src/test/java/com/networknt/schema/MinimumValidatorTest.java +++ b/src/test/java/com/networknt/schema/MinimumValidatorTest.java @@ -28,9 +28,9 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; class MinimumValidatorTest { private static final String NUMBER = "{ \"$schema\":\"http://json-schema.org/draft-04/schema#\", \"type\": \"number\", \"minimum\": %s }"; @@ -50,8 +50,8 @@ void setUp() { // due to a jackson bug, a float number which is larger than Double.POSITIVE_INFINITY cannot be convert to BigDecimal correctly // https://github.com/FasterXML/jackson-databind/issues/1770 // https://github.com/FasterXML/jackson-databind/issues/2087 - bigDecimalMapper = new ObjectMapper().enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); - bigIntegerMapper = new ObjectMapper().enable(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS); + bigDecimalMapper = new ObjectMapper().rebuild().enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS).build(); + bigIntegerMapper = new ObjectMapper().rebuild().enable(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS).build(); } diff --git a/src/test/java/com/networknt/schema/OpenAPI30JsonSchemaTest.java b/src/test/java/com/networknt/schema/OpenAPI30JsonSchemaTest.java index 09075e756..175a2bce7 100644 --- a/src/test/java/com/networknt/schema/OpenAPI30JsonSchemaTest.java +++ b/src/test/java/com/networknt/schema/OpenAPI30JsonSchemaTest.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.List; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.ArrayNode; import com.networknt.schema.dialect.Dialects; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/OutputFormatTest.java b/src/test/java/com/networknt/schema/OutputFormatTest.java index 4f144f0c6..913f0858a 100644 --- a/src/test/java/com/networknt/schema/OutputFormatTest.java +++ b/src/test/java/com/networknt/schema/OutputFormatTest.java @@ -15,8 +15,8 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.utils.CachingSupplier; class OutputFormatTest { @@ -62,7 +62,7 @@ private Error format(Error message) { if (!value.isObject() && !value.isArray()) { builder.append("with value "); builder.append("'"); - builder.append(value.asText()); + builder.append(value.asString()); builder.append("'"); builder.append(" "); } diff --git a/src/test/java/com/networknt/schema/OutputUnitTest.java b/src/test/java/com/networknt/schema/OutputUnitTest.java index b10e5a58b..33cab6a7a 100644 --- a/src/test/java/com/networknt/schema/OutputUnitTest.java +++ b/src/test/java/com/networknt/schema/OutputUnitTest.java @@ -28,7 +28,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import com.networknt.schema.output.OutputUnit; import com.networknt.schema.serialization.JsonMapperFactory; @@ -93,7 +93,7 @@ class OutputUnitTest { + " \"bar\": { \"bar-prop\": 20 }\r\n" + "}"; @Test - void annotationCollectionList() throws JsonProcessingException { + void annotationCollectionList() throws JacksonException { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12); Schema schema = factory.getSchema(schemaData); @@ -109,7 +109,7 @@ void annotationCollectionList() throws JsonProcessingException { } @Test - void annotationCollectionHierarchical() throws JsonProcessingException { + void annotationCollectionHierarchical() throws JacksonException { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12); Schema schema = factory.getSchema(schemaData); @@ -125,7 +125,7 @@ void annotationCollectionHierarchical() throws JsonProcessingException { } @Test - void annotationCollectionHierarchical2() throws JsonProcessingException { + void annotationCollectionHierarchical2() throws JacksonException { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12); Schema schema = factory.getSchema(schemaData); @@ -222,7 +222,7 @@ void typeUnion() { } @Test - void unevaluatedProperties() throws JsonProcessingException { + void unevaluatedProperties() throws JacksonException { Map external = new HashMap<>(); String externalSchemaData = "{\r\n" @@ -282,10 +282,10 @@ void unevaluatedProperties() throws JsonProcessingException { * * @see anyOf - * @throws JsonProcessingException the exception + * @throws JacksonException the exception */ @Test - void anyOf() throws JsonProcessingException { + void anyOf() throws JacksonException { // Test that any of doesn't short circuit if annotations need to be collected String schemaData = "{\r\n" + " \"type\": \"object\",\r\n" diff --git a/src/test/java/com/networknt/schema/OverrideValidatorTest.java b/src/test/java/com/networknt/schema/OverrideValidatorTest.java index 786beab44..e0496175f 100644 --- a/src/test/java/com/networknt/schema/OverrideValidatorTest.java +++ b/src/test/java/com/networknt/schema/OverrideValidatorTest.java @@ -16,9 +16,9 @@ package com.networknt.schema; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.Dialect; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.format.PatternFormat; @@ -35,7 +35,7 @@ class OverrideValidatorTest { @Test - void overrideDefaultValidator() throws JsonProcessingException, IOException { + void overrideDefaultValidator() throws JacksonException, IOException { ObjectMapper objectMapper = new ObjectMapper(); final String URI = "https://github.com/networknt/json-schema-validator/tests/schemas/example01"; final String schema = "{\n" + diff --git a/src/test/java/com/networknt/schema/OverwritingCustomMessageBugTest.java b/src/test/java/com/networknt/schema/OverwritingCustomMessageBugTest.java index 3b14f3032..f53a1a157 100644 --- a/src/test/java/com/networknt/schema/OverwritingCustomMessageBugTest.java +++ b/src/test/java/com/networknt/schema/OverwritingCustomMessageBugTest.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.path.PathType; import com.networknt.schema.regex.JDKRegularExpressionFactory; diff --git a/src/test/java/com/networknt/schema/PatternPropertiesValidatorTest.java b/src/test/java/com/networknt/schema/PatternPropertiesValidatorTest.java index 22f8d33d7..9ed4c12f4 100644 --- a/src/test/java/com/networknt/schema/PatternPropertiesValidatorTest.java +++ b/src/test/java/com/networknt/schema/PatternPropertiesValidatorTest.java @@ -16,7 +16,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.output.OutputUnit; import com.networknt.schema.regex.JoniRegularExpressionFactory; diff --git a/src/test/java/com/networknt/schema/PrefixItemsValidatorTest.java b/src/test/java/com/networknt/schema/PrefixItemsValidatorTest.java index eb9754e20..0a575f1c1 100644 --- a/src/test/java/com/networknt/schema/PrefixItemsValidatorTest.java +++ b/src/test/java/com/networknt/schema/PrefixItemsValidatorTest.java @@ -4,8 +4,8 @@ import org.junit.jupiter.api.DynamicNode; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.JsonNode; import com.networknt.schema.keyword.PrefixItemsValidator; import com.networknt.schema.path.NodePath; import com.networknt.schema.serialization.JsonMapperFactory; @@ -172,7 +172,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void walkDefaults() throws JsonProcessingException { + void walkDefaults() throws JacksonException { String schemaData = "{\n" + " \"prefixItems\": [\n" + " {\n" diff --git a/src/test/java/com/networknt/schema/QuickStartTest.java b/src/test/java/com/networknt/schema/QuickStartTest.java index 3315ce297..44eff8fdd 100644 --- a/src/test/java/com/networknt/schema/QuickStartTest.java +++ b/src/test/java/com/networknt/schema/QuickStartTest.java @@ -12,9 +12,8 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.JsonNode; import com.networknt.schema.dialect.Dialects; import com.networknt.schema.output.OutputUnit; import com.networknt.schema.regex.JoniRegularExpressionFactory; @@ -197,24 +196,24 @@ void location() { executionContext.executionConfig(executionConfig -> executionConfig.formatAssertionsEnabled(true)); }); Error format = errors.get(0); - JsonLocation formatInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getInstanceNode()); - JsonLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getSchemaNode()); + TokenStreamLocation formatInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getInstanceNode()); + TokenStreamLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getSchemaNode()); Error minLength = errors.get(1); - JsonLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getInstanceNode()); - JsonLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); + TokenStreamLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getInstanceNode()); + TokenStreamLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); assertEquals("format", format.getKeyword()); - assertEquals("date", format.getSchemaNode().asText()); + assertEquals("date", format.getSchemaNode().asString()); assertEquals(5, formatSchemaNodeTokenLocation.getLineNr()); assertEquals(17, formatSchemaNodeTokenLocation.getColumnNr()); - assertEquals("1", format.getInstanceNode().asText()); + assertEquals("1", format.getInstanceNode().asString()); assertEquals(2, formatInstanceNodeTokenLocation.getLineNr()); assertEquals(16, formatInstanceNodeTokenLocation.getColumnNr()); assertEquals("minLength", minLength.getKeyword()); - assertEquals("6", minLength.getSchemaNode().asText()); + assertEquals("6", minLength.getSchemaNode().asString()); assertEquals(6, minLengthSchemaNodeTokenLocation.getLineNr()); assertEquals(20, minLengthSchemaNodeTokenLocation.getColumnNr()); - assertEquals("1", minLength.getInstanceNode().asText()); + assertEquals("1", minLength.getInstanceNode().asString()); assertEquals(2, minLengthInstanceNodeTokenLocation.getLineNr()); assertEquals(16, minLengthInstanceNodeTokenLocation.getColumnNr()); assertEquals(16, minLengthInstanceNodeTokenLocation.getColumnNr()); @@ -319,7 +318,7 @@ void schemaFromString() { } @Test - void schemaFromJsonNode() throws JsonProcessingException { + void schemaFromJsonNode() { SchemaRegistry schemaRegistry = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12); JsonNode schemaNode = JsonMapperFactory.getInstance().readTree( "{\"$schema\": \"http://json-schema.org/draft-06/schema#\", \"properties\": { \"id\": {\"type\": \"number\"}}}"); diff --git a/src/test/java/com/networknt/schema/ReadOnlyValidatorTest.java b/src/test/java/com/networknt/schema/ReadOnlyValidatorTest.java index f9fab9dbb..22374e8fc 100644 --- a/src/test/java/com/networknt/schema/ReadOnlyValidatorTest.java +++ b/src/test/java/com/networknt/schema/ReadOnlyValidatorTest.java @@ -11,8 +11,8 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.ObjectNode; class ReadOnlyValidatorTest { diff --git a/src/test/java/com/networknt/schema/RecursiveReferenceValidatorExceptionTest.java b/src/test/java/com/networknt/schema/RecursiveReferenceValidatorExceptionTest.java index 2b53ac17e..1fbfc147d 100644 --- a/src/test/java/com/networknt/schema/RecursiveReferenceValidatorExceptionTest.java +++ b/src/test/java/com/networknt/schema/RecursiveReferenceValidatorExceptionTest.java @@ -1,6 +1,6 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.keyword.RecursiveRefValidator; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/RefTest.java b/src/test/java/com/networknt/schema/RefTest.java index ddba8bf53..650c7ae06 100644 --- a/src/test/java/com/networknt/schema/RefTest.java +++ b/src/test/java/com/networknt/schema/RefTest.java @@ -6,16 +6,16 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.json.JsonMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; import com.networknt.schema.dialect.DialectId; class RefTest { private static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder().build(); @Test - void shouldLoadRelativeClasspathReference() throws JsonProcessingException { + void shouldLoadRelativeClasspathReference() throws JacksonException { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12); Schema schema = factory.getSchema(SchemaLocation.of("classpath:///schema/ref-main.json")); String input = "{\r\n" @@ -37,7 +37,7 @@ void shouldLoadRelativeClasspathReference() throws JsonProcessingException { } @Test - void shouldLoadSchemaResource() throws JsonProcessingException { + void shouldLoadSchemaResource() throws JacksonException { SchemaRegistry factory = SchemaRegistry.withDefaultDialect(SpecificationVersion.DRAFT_2020_12); Schema schema = factory.getSchema(SchemaLocation.of("classpath:///schema/ref-main-schema-resource.json")); String input = "{\r\n" diff --git a/src/test/java/com/networknt/schema/SharedConfigTest.java b/src/test/java/com/networknt/schema/SharedConfigTest.java index ea4002a7b..c139c2d01 100644 --- a/src/test/java/com/networknt/schema/SharedConfigTest.java +++ b/src/test/java/com/networknt/schema/SharedConfigTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.walk.WalkListener; import com.networknt.schema.walk.KeywordWalkHandler; import com.networknt.schema.walk.WalkConfig; diff --git a/src/test/java/com/networknt/schema/SpecificationVersionDetector.java b/src/test/java/com/networknt/schema/SpecificationVersionDetector.java index 73c89678f..5c1e4c388 100644 --- a/src/test/java/com/networknt/schema/SpecificationVersionDetector.java +++ b/src/test/java/com/networknt/schema/SpecificationVersionDetector.java @@ -16,7 +16,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import java.nio.file.Path; import java.util.HashMap; @@ -73,7 +73,7 @@ public static SpecificationVersion detect(JsonNode jsonNode) { public static Optional detectOptionalVersion(JsonNode jsonNode, boolean throwIfUnsupported) { return Optional.ofNullable(jsonNode.get(SCHEMA_TAG)).map(schemaTag -> { - String schemaTagValue = schemaTag.asText(); + String schemaTagValue = schemaTag.asString(); String schemaUri = SchemaRegistry.normalizeDialectId(schemaTagValue); if (throwIfUnsupported) { diff --git a/src/test/java/com/networknt/schema/SpecificationVersionDetectorTest.java b/src/test/java/com/networknt/schema/SpecificationVersionDetectorTest.java index 2fbdd6324..2d4aa9676 100644 --- a/src/test/java/com/networknt/schema/SpecificationVersionDetectorTest.java +++ b/src/test/java/com/networknt/schema/SpecificationVersionDetectorTest.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; @@ -34,10 +34,10 @@ void detectVersion(String resourceDirectory, SpecificationVersion expectedFlag) } @ParameterizedTest - @CsvSource({ + @CsvSource(value = { "data/schemaTag.json, 'http://json-schema.org/draft-03/schema#' is unrecognizable schema", "data/schemaTagMissing.json, '$schema' tag is not present" - }) + }, quoteCharacter = '"') void detectInvalidSchemaVersion(String schemaPath, String expectedError) throws IOException { InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(schemaPath); JsonNode node = mapper.readTree(in); diff --git a/src/test/java/com/networknt/schema/TypeFactoryTest.java b/src/test/java/com/networknt/schema/TypeFactoryTest.java index 33acd4c33..8b2848ae9 100755 --- a/src/test/java/com/networknt/schema/TypeFactoryTest.java +++ b/src/test/java/com/networknt/schema/TypeFactoryTest.java @@ -25,9 +25,9 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.node.DecimalNode; -import com.fasterxml.jackson.databind.node.MissingNode; -import com.fasterxml.jackson.databind.node.TextNode; +import tools.jackson.databind.node.DecimalNode; +import tools.jackson.databind.node.MissingNode; +import tools.jackson.databind.node.StringNode; import com.networknt.schema.serialization.JsonMapperFactory; import com.networknt.schema.utils.JsonType; @@ -142,7 +142,7 @@ void testBinaryValue() { @Test void testUnknownSchema() { - assertSame(JsonType.UNKNOWN, getSchemaNodeType(TextNode.valueOf("unexpected"))); + assertSame(JsonType.UNKNOWN, getSchemaNodeType(StringNode.valueOf("unexpected"))); } @Test @@ -152,42 +152,42 @@ void testMissingSchema() { @Test void testStringSchema() { - assertSame(JsonType.STRING, getSchemaNodeType(TextNode.valueOf(JsonType.STRING.toString()))); + assertSame(JsonType.STRING, getSchemaNodeType(StringNode.valueOf(JsonType.STRING.toString()))); } @Test void testObjectSchema() { - assertSame(JsonType.OBJECT, getSchemaNodeType(TextNode.valueOf(JsonType.OBJECT.toString()))); + assertSame(JsonType.OBJECT, getSchemaNodeType(StringNode.valueOf(JsonType.OBJECT.toString()))); } @Test void testArraySchema() { - assertSame(JsonType.ARRAY, getSchemaNodeType(TextNode.valueOf(JsonType.ARRAY.toString()))); + assertSame(JsonType.ARRAY, getSchemaNodeType(StringNode.valueOf(JsonType.ARRAY.toString()))); } @Test void testBooleanSchema() { - assertSame(JsonType.BOOLEAN, getSchemaNodeType(TextNode.valueOf(JsonType.BOOLEAN.toString()))); + assertSame(JsonType.BOOLEAN, getSchemaNodeType(StringNode.valueOf(JsonType.BOOLEAN.toString()))); } @Test void testNumberSchema() { - assertSame(JsonType.NUMBER, getSchemaNodeType(TextNode.valueOf(JsonType.NUMBER.toString()))); + assertSame(JsonType.NUMBER, getSchemaNodeType(StringNode.valueOf(JsonType.NUMBER.toString()))); } @Test void testIntegerSchema() { - assertSame(JsonType.INTEGER, getSchemaNodeType(TextNode.valueOf(JsonType.INTEGER.toString()))); + assertSame(JsonType.INTEGER, getSchemaNodeType(StringNode.valueOf(JsonType.INTEGER.toString()))); } @Test void testAnySchema() { - assertSame(JsonType.ANY, getSchemaNodeType(TextNode.valueOf(JsonType.ANY.toString()))); + assertSame(JsonType.ANY, getSchemaNodeType(StringNode.valueOf(JsonType.ANY.toString()))); } @Test void testNullSchema() { - assertSame(JsonType.NULL, getSchemaNodeType(TextNode.valueOf(JsonType.NULL.toString()))); + assertSame(JsonType.NULL, getSchemaNodeType(StringNode.valueOf(JsonType.NULL.toString()))); } @Test diff --git a/src/test/java/com/networknt/schema/UnknownMetaSchemaTest.java b/src/test/java/com/networknt/schema/UnknownMetaSchemaTest.java index 0b21409a2..f6858446c 100644 --- a/src/test/java/com/networknt/schema/UnknownMetaSchemaTest.java +++ b/src/test/java/com/networknt/schema/UnknownMetaSchemaTest.java @@ -1,7 +1,7 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.dialect.DialectId; import org.junit.jupiter.api.Assertions; diff --git a/src/test/java/com/networknt/schema/UriMappingTest.java b/src/test/java/com/networknt/schema/UriMappingTest.java index 47821235d..a768cf622 100644 --- a/src/test/java/com/networknt/schema/UriMappingTest.java +++ b/src/test/java/com/networknt/schema/UriMappingTest.java @@ -20,14 +20,15 @@ import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.io.UncheckedIOException; import java.net.URL; import java.util.HashMap; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.SchemaRegistry.Builder; import com.networknt.schema.dialect.BasicDialectRegistry; import com.networknt.schema.dialect.Dialect; @@ -58,7 +59,9 @@ void testBuilderUriMappingUri() throws IOException { SchemaRegistry instance = builder.build(); Schema schema = instance.getSchema(SchemaLocation.of( "https://raw.githubusercontent.com/networknt/json-schema-validator/master/src/test/resources/draft4/extra/uri_mapping/uri-mapping.schema.json")); - assertEquals(0, schema.validate(mapper.readTree(mappings)).size()); + try (InputStream inputStream = mappings.openStream()){ + assertEquals(0, schema.validate(mapper.readTree(inputStream)).size()); + } } /** @@ -124,7 +127,10 @@ void testValidatorConfigUriMappingUri() throws IOException { .schemaIdResolvers(schemaIdResolvers -> schemaIdResolvers.add(getUriMappingsFromUrl(mappings))).build(); Schema schema = instance.getSchema(SchemaLocation.of( "https://raw.githubusercontent.com/networknt/json-schema-validator/master/src/test/resources/draft4/extra/uri_mapping/uri-mapping.schema.json")); - assertEquals(0, schema.validate(mapper.readTree(mappings)).size()); + try (InputStream inputStream = mappings.openStream()){ + assertEquals(0, schema.validate(mapper.readTree(inputStream)).size()); + } + } /** @@ -186,9 +192,10 @@ void testMappingsForRef() throws IOException { private SchemaIdResolver getUriMappingsFromUrl(URL url) { HashMap map = new HashMap(); try { - for (JsonNode mapping : mapper.readTree(url)) { - map.put(mapping.get("publicURL").asText(), - mapping.get("localURL").asText()); + try (InputStream inputStream = url.openStream()) { + for (JsonNode mapping : mapper.readTree(inputStream)) { + map.put(mapping.get("publicURL").asString(), mapping.get("localURL").asString()); + } } } catch (IOException e) { throw new UncheckedIOException(e); diff --git a/src/test/java/com/networknt/schema/V4JsonSchemaTest.java b/src/test/java/com/networknt/schema/V4JsonSchemaTest.java index cb203ef8a..a31ff88c0 100644 --- a/src/test/java/com/networknt/schema/V4JsonSchemaTest.java +++ b/src/test/java/com/networknt/schema/V4JsonSchemaTest.java @@ -16,8 +16,8 @@ package com.networknt.schema; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/networknt/schema/benchmark/NetworkntBasicRunner.java b/src/test/java/com/networknt/schema/benchmark/NetworkntBasicRunner.java index 48c6b8f21..d919078c3 100644 --- a/src/test/java/com/networknt/schema/benchmark/NetworkntBasicRunner.java +++ b/src/test/java/com/networknt/schema/benchmark/NetworkntBasicRunner.java @@ -1,6 +1,5 @@ package com.networknt.schema.benchmark; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; @@ -8,9 +7,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectReader; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectReader; import com.networknt.schema.Schema; import com.networknt.schema.SchemaRegistry; import com.networknt.schema.SpecificationVersion; @@ -37,9 +36,9 @@ public NetworkntBasicRunner() { schemas = root.get("schemas"); List names = new ArrayList<>(); - schemas.fieldNames().forEachRemaining(names::add); + schemas.propertyNames().iterator().forEachRemaining(names::add); schemaNames = names; - } catch (IOException e) { + } catch (RuntimeException e) { logger.error("Failed to initialize NetworkntBasicRunner", e); } } diff --git a/src/test/java/com/networknt/schema/keyword/PropertiesValidatorTest.java b/src/test/java/com/networknt/schema/keyword/PropertiesValidatorTest.java index 3bbc0d7f9..220ff7896 100644 --- a/src/test/java/com/networknt/schema/keyword/PropertiesValidatorTest.java +++ b/src/test/java/com/networknt/schema/keyword/PropertiesValidatorTest.java @@ -1,6 +1,6 @@ package com.networknt.schema.keyword; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.BaseJsonSchemaValidatorTest; import com.networknt.schema.Error; import com.networknt.schema.InputFormat; diff --git a/src/test/java/com/networknt/schema/keyword/ThresholdMixinPerfTest.java b/src/test/java/com/networknt/schema/keyword/ThresholdMixinPerfTest.java index 014c117e0..9008c0c0e 100644 --- a/src/test/java/com/networknt/schema/keyword/ThresholdMixinPerfTest.java +++ b/src/test/java/com/networknt/schema/keyword/ThresholdMixinPerfTest.java @@ -24,12 +24,12 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.BigIntegerNode; -import com.fasterxml.jackson.databind.node.DecimalNode; -import com.fasterxml.jackson.databind.node.DoubleNode; -import com.fasterxml.jackson.databind.node.LongNode; -import com.fasterxml.jackson.databind.node.TextNode; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.BigIntegerNode; +import tools.jackson.databind.node.DecimalNode; +import tools.jackson.databind.node.DoubleNode; +import tools.jackson.databind.node.LongNode; +import tools.jackson.databind.node.StringNode; @Disabled class ThresholdMixinPerfTest { @@ -52,9 +52,9 @@ class ThresholdMixinPerfTest { private final double value = threshold + 1; private final DoubleNode valueDouble = new DoubleNode(value); private final DecimalNode valueDecimal = new DecimalNode(new BigDecimal(value)); - private final TextNode valueTextual = new TextNode(String.valueOf(value)); + private final StringNode valueTextual = new StringNode(String.valueOf(value)); - private final String maximumText = maximumDouble.asText(); + private final String maximumText = maximumDouble.asString(); private final BigDecimal max = new BigDecimal(maximumText); private final int executeTimes = 200000; @@ -129,10 +129,10 @@ void specificCaseForEachThresholdValue() { double decimalValueAvgTime = getAvgTimeViaMixin(typedThreshold, valueDecimal, executeTimes); out.printf("Typed threshold execution time %f ns, %f times slower%n", decimalValueAvgTime, (decimalValueAvgTime / baseTimeForDouble)); - double textValueAvgTime = getAvgTimeViaMixin(typedThreshold, valueTextual, executeTimes); - out.printf("Typed threshold execution time %f ns, %f times slower%n", textValueAvgTime, (textValueAvgTime / baseTimeForDouble)); + double asStringAvgTime = getAvgTimeViaMixin(typedThreshold, valueTextual, executeTimes); + out.printf("Typed threshold execution time %f ns, %f times slower%n", asStringAvgTime, (asStringAvgTime / baseTimeForDouble)); - out.printf("Cumulative average: %f\n\n%n", (doubleValueAvgTime + decimalValueAvgTime + textValueAvgTime) / 3.0d); + out.printf("Cumulative average: %f\n\n%n", (doubleValueAvgTime + decimalValueAvgTime + asStringAvgTime) / 3.0d); } @Test @@ -144,10 +144,10 @@ void noMixinsFloatingTimeEstimate() { double decimalValueAvgTime = getAvgTimeViaMixin(oneMixinForIntegerAndNumber, valueDecimal, executeTimes); out.printf("No mixins with decimal value time %f ns, %f times slower%n", decimalValueAvgTime, (decimalValueAvgTime / baseTimeForDouble)); - double textValueAvgTime = getAvgTimeViaMixin(oneMixinForIntegerAndNumber, valueTextual, executeTimes); - out.printf("No mixins with text value time %f ns, %f times slower%n", textValueAvgTime, (textValueAvgTime / baseTimeForDouble)); + double asStringAvgTime = getAvgTimeViaMixin(oneMixinForIntegerAndNumber, valueTextual, executeTimes); + out.printf("No mixins with text value time %f ns, %f times slower%n", asStringAvgTime, (asStringAvgTime / baseTimeForDouble)); out.printf("Cumulative average: %f\n\n%n", - (doubleValueAvgTime + decimalValueAvgTime + textValueAvgTime) / 3.0d); + (doubleValueAvgTime + decimalValueAvgTime + asStringAvgTime) / 3.0d); } @Test @@ -158,7 +158,7 @@ void noMixinsIntegralTimeEstimate() { double bigIntValueAvgTime = getAvgTimeViaMixin(oneMixinForIntegerAndNumber, new BigIntegerNode(BigInteger.valueOf((long) value)), executeTimes); out.printf("No mixins with big int value time %f ns, %f times slower%n", bigIntValueAvgTime, (bigIntValueAvgTime / baseTimeForLong)); - double textIntValueAvgTime = getAvgTimeViaMixin(oneMixinForIntegerAndNumber, new TextNode(String.valueOf((long) value)), executeTimes); + double textIntValueAvgTime = getAvgTimeViaMixin(oneMixinForIntegerAndNumber, new StringNode(String.valueOf((long) value)), executeTimes); out.printf("No mixins with text value time %f ns, %f times slower%n", textIntValueAvgTime, (textIntValueAvgTime / baseTimeForLong)); out.printf("Cumulative average: %f\n\n%n", (longValueAvgTime + bigIntValueAvgTime + textIntValueAvgTime) / 3.0d); @@ -176,7 +176,7 @@ public static class AllInOneThreshold implements ThresholdMixin { AllInOneThreshold(JsonNode maximum, boolean exludeEqual) { this.maximum = maximum; this.excludeEqual = exludeEqual; - this.bigDecimalMax = new BigDecimal(maximum.asText()); + this.bigDecimalMax = new BigDecimal(maximum.asString()); } @Override @@ -199,14 +199,14 @@ public boolean crossesThreshold(JsonNode node) { return compare > 0 || (excludeEqual && compare == 0); } - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(bigDecimalMax); return compare > 0 || (excludeEqual && compare == 0); } @Override public String thresholdValue() { - return maximum.asText(); + return maximum.asString(); } } @@ -256,7 +256,7 @@ public boolean crossesThreshold(JsonNode node) { return compare > 0 || (excludeEqual && compare == 0); } - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || (excludeEqual && compare == 0); } @@ -284,7 +284,7 @@ public boolean crossesThreshold(JsonNode node) { return true; } final BigDecimal max = new BigDecimal(maximumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || (excludeEqual && compare == 0); } @@ -313,7 +313,7 @@ public boolean crossesThreshold(JsonNode node) { return true; } final BigDecimal max = new BigDecimal(maximumText); - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || (excludeEqual && compare == 0); } @@ -328,7 +328,7 @@ public String thresholdValue() { @SuppressWarnings("unused") @Override public boolean crossesThreshold(JsonNode node) { - BigDecimal value = new BigDecimal(node.asText()); + BigDecimal value = new BigDecimal(node.asString()); int compare = value.compareTo(max); return compare > 0 || (excludeEqual && compare == 0); } diff --git a/src/test/java/com/networknt/schema/serialization/DefaultNodeReaderTest.java b/src/test/java/com/networknt/schema/serialization/DefaultNodeReaderTest.java index e6a61f0e9..77578e355 100644 --- a/src/test/java/com/networknt/schema/serialization/DefaultNodeReaderTest.java +++ b/src/test/java/com/networknt/schema/serialization/DefaultNodeReaderTest.java @@ -20,9 +20,8 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.JsonNode; import com.networknt.schema.InputFormat; import com.networknt.schema.utils.JsonNodes; @@ -31,7 +30,7 @@ */ class DefaultNodeReaderTest { @Test - void location() throws JsonParseException, IOException { + void location() throws IOException { String schemaData = "{\r\n" + " \"$id\": \"https://schema/myschema\",\r\n" + " \"properties\": {\r\n" @@ -43,7 +42,7 @@ void location() throws JsonParseException, IOException { + "}"; JsonNode jsonNode = NodeReader.builder().locationAware().build().readTree(schemaData, InputFormat.JSON); JsonNode idNode = jsonNode.at("/$id"); - JsonLocation location = JsonNodes.tokenStreamLocationOf(idNode); + TokenStreamLocation location = JsonNodes.tokenStreamLocationOf(idNode); assertEquals(2, location.getLineNr()); assertEquals(10, location.getColumnNr()); @@ -71,8 +70,8 @@ void jsonLocation() throws IOException { + "}"; JsonNode jsonNode = NodeReader.builder().locationAware().build().readTree(schemaData, InputFormat.JSON); - JsonLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/format")); - JsonLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/minLength")); + TokenStreamLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/format")); + TokenStreamLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/minLength")); assertEquals(5, formatSchemaNodeTokenLocation.getLineNr()); assertEquals(17, formatSchemaNodeTokenLocation.getColumnNr()); @@ -91,8 +90,8 @@ void yamlLocation() throws IOException { + " minLength: 6\r\n"; JsonNode jsonNode = NodeReader.builder().locationAware().build().readTree(schemaData, InputFormat.YAML); - JsonLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/format")); - JsonLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/minLength")); + TokenStreamLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/format")); + TokenStreamLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(jsonNode.at("/properties/startDate/minLength")); assertEquals(5, formatSchemaNodeTokenLocation.getLineNr()); assertEquals(13, formatSchemaNodeTokenLocation.getColumnNr()); diff --git a/src/test/java/com/networknt/schema/suite/TestCase.java b/src/test/java/com/networknt/schema/suite/TestCase.java index 9aa19e433..ef72a22bb 100644 --- a/src/test/java/com/networknt/schema/suite/TestCase.java +++ b/src/test/java/com/networknt/schema/suite/TestCase.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import java.nio.file.Path; import java.util.Collections; diff --git a/src/test/java/com/networknt/schema/suite/TestSource.java b/src/test/java/com/networknt/schema/suite/TestSource.java index 29edd248f..b3bb70c96 100644 --- a/src/test/java/com/networknt/schema/suite/TestSource.java +++ b/src/test/java/com/networknt/schema/suite/TestSource.java @@ -9,9 +9,9 @@ import java.util.List; import java.util.Optional; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.exc.MismatchedInputException; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.exc.MismatchedInputException; import com.networknt.schema.serialization.JsonMapperFactory; public class TestSource { diff --git a/src/test/java/com/networknt/schema/suite/TestSpec.java b/src/test/java/com/networknt/schema/suite/TestSpec.java index e06e27f9f..e2397719b 100644 --- a/src/test/java/com/networknt/schema/suite/TestSpec.java +++ b/src/test/java/com/networknt/schema/suite/TestSpec.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.JsonNode; +import tools.jackson.databind.JsonNode; import com.networknt.schema.SchemaRegistryConfig; import java.util.Collections; diff --git a/src/test/java/com/networknt/schema/utils/JsonNodesTest.java b/src/test/java/com/networknt/schema/utils/JsonNodesTest.java index fef8bfc6f..33a96f849 100644 --- a/src/test/java/com/networknt/schema/utils/JsonNodesTest.java +++ b/src/test/java/com/networknt/schema/utils/JsonNodesTest.java @@ -26,11 +26,10 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonLocation; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.TokenStreamLocation; +import tools.jackson.databind.DeserializationFeature; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import com.networknt.schema.InputFormat; import com.networknt.schema.Schema; import com.networknt.schema.SchemaRegistry; @@ -44,7 +43,7 @@ */ class JsonNodesTest { @Test - void location() throws JsonParseException, IOException { + void location() throws IOException { String schemaData = "{\r\n" + " \"$id\": \"https://schema/myschema\",\r\n" + " \"properties\": {\r\n" @@ -57,7 +56,7 @@ void location() throws JsonParseException, IOException { JsonNode jsonNode = JsonNodes.readTree(JsonMapperFactory.getInstance(), schemaData, LocationJsonNodeFactoryFactory.getInstance()); JsonNode idNode = jsonNode.at("/$id"); - JsonLocation location = JsonNodes.tokenStreamLocationOf(idNode); + TokenStreamLocation location = JsonNodes.tokenStreamLocationOf(idNode); assertEquals(2, location.getLineNr()); assertEquals(10, location.getColumnNr()); @@ -94,29 +93,29 @@ void jsonLocation() { }); List list = messages.stream().collect(Collectors.toList()); Error format = list.get(0); - JsonLocation formatInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getInstanceNode()); - JsonLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getSchemaNode()); + TokenStreamLocation formatInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getInstanceNode()); + TokenStreamLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getSchemaNode()); Error minLength = list.get(1); - JsonLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getInstanceNode()); - JsonLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); + TokenStreamLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getInstanceNode()); + TokenStreamLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); assertEquals("format", format.getKeyword()); - assertEquals("date", format.getSchemaNode().asText()); + assertEquals("date", format.getSchemaNode().asString()); assertEquals(5, formatSchemaNodeTokenLocation.getLineNr()); assertEquals(17, formatSchemaNodeTokenLocation.getColumnNr()); - assertEquals("1", format.getInstanceNode().asText()); + assertEquals("1", format.getInstanceNode().asString()); assertEquals(2, formatInstanceNodeTokenLocation.getLineNr()); assertEquals(16, formatInstanceNodeTokenLocation.getColumnNr()); assertEquals("minLength", minLength.getKeyword()); - assertEquals("6", minLength.getSchemaNode().asText()); + assertEquals("6", minLength.getSchemaNode().asString()); assertEquals(6, minLengthSchemaNodeTokenLocation.getLineNr()); assertEquals(20, minLengthSchemaNodeTokenLocation.getColumnNr()); - assertEquals("1", minLength.getInstanceNode().asText()); + assertEquals("1", minLength.getInstanceNode().asString()); assertEquals(2, minLengthInstanceNodeTokenLocation.getLineNr()); assertEquals(16, minLengthInstanceNodeTokenLocation.getColumnNr()); } @@ -139,29 +138,29 @@ void yamlLocation() { }); List list = messages.stream().collect(Collectors.toList()); Error format = list.get(0); - JsonLocation formatInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getInstanceNode()); - JsonLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getSchemaNode()); + TokenStreamLocation formatInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getInstanceNode()); + TokenStreamLocation formatSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(format.getSchemaNode()); Error minLength = list.get(1); - JsonLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getInstanceNode()); - JsonLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); + TokenStreamLocation minLengthInstanceNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getInstanceNode()); + TokenStreamLocation minLengthSchemaNodeTokenLocation = JsonNodes.tokenStreamLocationOf(minLength.getSchemaNode()); assertEquals("format", format.getKeyword()); - assertEquals("date", format.getSchemaNode().asText()); + assertEquals("date", format.getSchemaNode().asString()); assertEquals(5, formatSchemaNodeTokenLocation.getLineNr()); assertEquals(13, formatSchemaNodeTokenLocation.getColumnNr()); - assertEquals("1", format.getInstanceNode().asText()); + assertEquals("1", format.getInstanceNode().asString()); assertEquals(2, formatInstanceNodeTokenLocation.getLineNr()); assertEquals(12, formatInstanceNodeTokenLocation.getColumnNr()); assertEquals("minLength", minLength.getKeyword()); - assertEquals("6", minLength.getSchemaNode().asText()); + assertEquals("6", minLength.getSchemaNode().asString()); assertEquals(6, minLengthSchemaNodeTokenLocation.getLineNr()); assertEquals(16, minLengthSchemaNodeTokenLocation.getColumnNr()); - assertEquals("1", minLength.getInstanceNode().asText()); + assertEquals("1", minLength.getInstanceNode().asString()); assertEquals(2, minLengthInstanceNodeTokenLocation.getLineNr()); assertEquals(12, minLengthInstanceNodeTokenLocation.getColumnNr()); } @@ -187,8 +186,8 @@ void types() { + " }\r\n" + "}"; ObjectMapper objectMapper = JsonMapperFactory.getInstance() - .copy() - .enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); + .rebuild() + .enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS).build(); JsonNode root = JsonNodes.readTree(objectMapper, json, LocationJsonNodeFactoryFactory.getInstance()); JsonNode numberNode = root.at("/properties/number"); assertEquals(3, JsonNodes.tokenStreamLocationOf(numberNode).getLineNr()); diff --git a/src/test/java/com/networknt/schema/walk/WalkListenerTest.java b/src/test/java/com/networknt/schema/walk/WalkListenerTest.java index efc693ccd..6d877dc0d 100644 --- a/src/test/java/com/networknt/schema/walk/WalkListenerTest.java +++ b/src/test/java/com/networknt/schema/walk/WalkListenerTest.java @@ -29,10 +29,6 @@ import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; import com.networknt.schema.InputFormat; import com.networknt.schema.Schema; import com.networknt.schema.SchemaRegistry; @@ -47,6 +43,11 @@ import com.networknt.schema.serialization.JsonMapperFactory; import com.networknt.schema.utils.JsonNodes; import com.networknt.schema.utils.SchemaRefs; + +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.node.JsonNodeFactory; +import tools.jackson.databind.node.ObjectNode; + import com.networknt.schema.Error; import com.networknt.schema.Result; @@ -122,14 +123,14 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { assertEquals("/properties", propertyKeywords.get(0).getEvaluationPath().append(propertyKeywords.get(0).getKeyword()).toString()); assertEquals("/tags/0", propertyKeywords.get(1).getInstanceLocation().toString()); - assertEquals("image", propertyKeywords.get(1).getInstanceNode().get("name").asText()); + assertEquals("image", propertyKeywords.get(1).getInstanceNode().get("name").asString()); assertEquals("/properties/tags/items/$ref", propertyKeywords.get(1).getEvaluationPath().toString()); assertEquals("/properties/tags/items/$ref/properties", propertyKeywords.get(1).getEvaluationPath().append(propertyKeywords.get(1).getKeyword()).toString()); assertEquals("/tags/1", propertyKeywords.get(2).getInstanceLocation().toString()); assertEquals("/properties/tags/items/$ref/properties", propertyKeywords.get(2).getEvaluationPath().append(propertyKeywords.get(2).getKeyword()).toString()); - assertEquals("link", propertyKeywords.get(2).getInstanceNode().get("name").asText()); + assertEquals("link", propertyKeywords.get(2).getInstanceNode().get("name").asString()); } @Test @@ -204,19 +205,19 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { assertEquals("/properties/tags", properties.get(0).getEvaluationPath().toString()); assertEquals("/tags/0/name", properties.get(1).getInstanceLocation().toString()); - assertEquals("image", properties.get(1).getInstanceNode().asText()); + assertEquals("image", properties.get(1).getInstanceNode().asString()); assertEquals("/properties/tags/items/$ref/properties/name", properties.get(1).getEvaluationPath().toString()); assertEquals("/tags/0/description", properties.get(2).getInstanceLocation().toString()); - assertEquals("An image", properties.get(2).getInstanceNode().asText()); + assertEquals("An image", properties.get(2).getInstanceNode().asString()); assertEquals("/properties/tags/items/$ref/properties/description", properties.get(2).getEvaluationPath().toString()); assertEquals("/tags/1/name", properties.get(3).getInstanceLocation().toString()); - assertEquals("link", properties.get(3).getInstanceNode().asText()); + assertEquals("link", properties.get(3).getInstanceNode().asString()); assertEquals("/properties/tags/items/$ref/properties/name", properties.get(3).getEvaluationPath().toString()); assertEquals("/tags/1/description", properties.get(4).getInstanceLocation().toString()); - assertEquals("A link", properties.get(4).getInstanceNode().asText()); + assertEquals("A link", properties.get(4).getInstanceNode().asString()); assertEquals("/properties/tags/items/$ref/properties/description", properties.get(4).getEvaluationPath().toString()); } @@ -528,7 +529,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void applyDefaults() throws JsonProcessingException { + void applyDefaults() { String schemaData = "{\r\n" + " \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\r\n" + " \"title\": \"\",\r\n" @@ -562,7 +563,7 @@ void applyDefaults() throws JsonProcessingException { } @Test - void applyDefaultsWithWalker() throws JsonProcessingException { + void applyDefaultsWithWalker() { String schemaData = "{\r\n" + " \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\r\n" + " \"title\": \"\",\r\n" @@ -622,7 +623,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void applyInvalidDefaultsWithWalker() throws JsonProcessingException { + void applyInvalidDefaultsWithWalker() { String schemaData = "{\r\n" + " \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\r\n" + " \"title\": \"\",\r\n" @@ -687,7 +688,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void missingRequired() throws JsonProcessingException { + void missingRequired() { String schemaData = "{\r\n" + " \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\r\n" + " \"title\": \"\",\r\n" @@ -716,7 +717,7 @@ public WalkFlow onWalkStart(WalkEvent walkEvent) { if (requiredNode != null) { if (requiredNode.isArray()) { for (JsonNode fieldName : requiredNode) { - requiredProperties.add(fieldName.asText()); + requiredProperties.add(fieldName.asString()); } } } @@ -754,7 +755,7 @@ public void onWalkEnd(WalkEvent walkEvent, List errors) { } @Test - void generateDataWithWalker() throws JsonProcessingException { + void generateDataWithWalker() { Map> generators = new HashMap<>(); generators.put("name.findName", () -> "John Doe"); generators.put("internet.email", () -> "john.doe@gmail.com"); @@ -798,9 +799,9 @@ public WalkFlow onWalkStart(WalkEvent walkEvent) { } while (schemaRef != null); JsonNode fakerNode = schema.getSchemaNode().get("faker"); if (fakerNode != null) { - String faker = fakerNode.asText(); + String faker = fakerNode.asString(); String fakeData = generators.get(faker).get(); - JsonNode fakeDataNode = JsonNodeFactory.instance.textNode(fakeData); + JsonNode fakeDataNode = JsonNodeFactory.instance.stringNode(fakeData); ObjectNode parentNode = JsonNodes.get(walkEvent.getRootNode(), walkEvent.getInstanceLocation().getParent()); parentNode.set(walkEvent.getInstanceLocation().getName(-1), fakeDataNode); diff --git a/src/test/resources/draft7/issue386.json b/src/test/resources/draft7/issue386.json index c1281adb1..8444d3d11 100644 --- a/src/test/resources/draft7/issue386.json +++ b/src/test/resources/draft7/issue386.json @@ -77,6 +77,7 @@ }, "tests": [ { + "description": "1", "data": { "street_address": "1600 Pennsylvania Avenue NW", "country": "United States of America", @@ -85,6 +86,7 @@ "valid": true }, { + "description": "2", "data": { "street_address": "1600 Pennsylvania Avenue NW", "postal_code": "20500" @@ -92,6 +94,7 @@ "valid": true }, { + "description": "3", "data": { "street_address": "24 Sussex Drive", "country": "Canada", @@ -100,6 +103,7 @@ "valid": true }, { + "description": "4", "data": { "street_address": "Adriaan Goekooplaan", "country": "Netherlands", @@ -108,6 +112,7 @@ "valid": true }, { + "description": "5", "data": { "street_address": "24 Sussex Drive", "country": "Canada",