Skip to content

Commit f7d3fa2

Browse files
committed
Revert "Merge pull request #197 from harrel56/feature/kotlinx-json-provider"
This reverts commit 57174dd, reversing changes made to 38706c6.
1 parent f2eec35 commit f7d3fa2

File tree

8 files changed

+17
-273
lines changed

8 files changed

+17
-273
lines changed

README.md

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ Supported JSON providers:
7878
- `com.fasterxml.jackson.core:jackson-databind` (default),
7979
- `com.google.code.gson:gson`,
8080
- `jakarta.json:jakarta.json-api`,
81-
- `org.jetbrains.kotlinx:kotlinx-serialization-json`,
8281
- `org.json:json`,
8382
- `new.minidev:json-smart`,
8483
- `org.codehouse.jettison:jettison`.
@@ -94,16 +93,15 @@ All adapter classes for JSON provider libs can be found in this [package](https:
9493

9594
### Changing JSON/YAML provider
9695

97-
| Provider | Factory class | Provider node class |
98-
|--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
99-
| com.fasterxml.jackson.core:jackson-databind | [JacksonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JacksonNode.Factory.html) | com.fasterxml.jackson.databind.JsonNode |
100-
| com.google.code.gson:gson | [GsonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/GsonNode.Factory.html) | com.google.gson.JsonElement |
101-
| jakarta.json:jakarta.json-api | [JakartaJsonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JakartaJsonNode.Factory.html) | jakarta.json.JsonValue |
102-
| org.jetbrains.kotlinx:kotlinx-serialization-json | [KotlinxJsonFactory.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/KotlinxJson.Factory.html) | kotlinx.serialization.json.JsonElement |
103-
| org.json:json | [OrgJsonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/OrgJsonNode.Factory.html) | <ul><li>org.json.JSONObject,</li><li>org.json.JSONArray,</li><li>[literal types](#provider-literal-types).</li></ul> |
104-
| new.minidev:json-smart | [JsonSmartNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JsonSmartNode.Factory.html) | <ul><li>net.minidev.json.JSONObject,</li><li>net.minidev.json.JSONArray,</li><li>[literal types](#provider-literal-types).</li></ul> |
105-
| org.codehouse.jettison:jettison | [JettisonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JettisonNode.Factory.html) | <ul><li>org.codehaus.jettison.json.JSONObject,</li><li>org.codehaus.jettison.json.JSONArray,</li><li>[literal types](#provider-literal-types).</li></ul> |
106-
| org.yaml:snakeyaml | [SnakeYamlNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/SnakeYamlNode.Factory.html) | org.yaml.snakeyaml.nodes.Node |
96+
| Provider | Factory class | Provider node class |
97+
|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
98+
| com.fasterxml.jackson.core:jackson-databind | [JacksonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JacksonNode.Factory.html) | com.fasterxml.jackson.databind.JsonNode |
99+
| com.google.code.gson:gson | [GsonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/GsonNode.Factory.html) | com.google.gson.JsonElement |
100+
| jakarta.json:jakarta.json-api | [JakartaJsonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JakartaJsonNode.Factory.html) | jakarta.json.JsonValue |
101+
| org.json:json | [OrgJsonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/OrgJsonNode.Factory.html) | <ul><li>org.json.JSONObject,</li><li>org.json.JSONArray,</li><li>[literal types](#provider-literal-types).</li></ul> |
102+
| new.minidev:json-smart | [JsonSmartNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JsonSmartNode.Factory.html) | <ul><li>net.minidev.json.JSONObject,</li><li>net.minidev.json.JSONArray,</li><li>[literal types](#provider-literal-types).</li></ul> |
103+
| org.codehouse.jettison:jettison | [JettisonNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/JettisonNode.Factory.html) | <ul><li>org.codehaus.jettison.json.JSONObject,</li><li>org.codehaus.jettison.json.JSONArray,</li><li>[literal types](#provider-literal-types).</li></ul> |
104+
| org.yaml:snakeyaml | [SnakeYamlNode.Factory](https://javadoc.io/doc/dev.harrel/json-schema/latest/dev/harrel/jsonschema/providers/SnakeYamlNode.Factory.html) | org.yaml.snakeyaml.nodes.Node |
107105

108106
#### com.fasterxml.jackson.core:jackson-databind
109107
```java
@@ -122,11 +120,6 @@ Although, it was tested with newest `jakarta.json-api` version, it should be com
122120
new ValidatorFactory().withJsonNodeFactory(new JakartaJsonNode.Factory());
123121
```
124122

125-
#### org.jetbrains.kotlinx:kotlinx-serialization-json
126-
```java
127-
new ValidatorFactory().withJsonNodeFactory(new KotlinxJsonNode.Factory());
128-
```
129-
130123
#### org.json:json
131124
```java
132125
new ValidatorFactory().withJsonNodeFactory(new OrgJsonNode.Factory());

build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@ def jsonProviders = [
3939
jackson : 'com.fasterxml.jackson.core:jackson-databind:2.17.1',
4040
gson : 'com.google.code.gson:gson:2.11.0',
4141
orgJson : 'org.json:json:20240303',
42-
kotlinxJson: 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3',
43-
jakartaJson: 'jakarta.json:jakarta.json-api:2.1.3',
4442
jettison : 'org.codehaus.jettison:jettison:1.5.4',
43+
jakartaJson: 'jakarta.json:jakarta.json-api:2.1.3',
4544
jsonSmart : 'net.minidev:json-smart:2.5.1',
4645
snakeYaml : 'org.yaml:snakeyaml:2.2'
4746
]

src/main/java/dev/harrel/jsonschema/providers/AbstractJsonNode.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import dev.harrel.jsonschema.JsonNode;
44
import dev.harrel.jsonschema.SimpleType;
55

6-
import java.math.BigDecimal;
76
import java.util.List;
87
import java.util.Map;
98
import java.util.Objects;
@@ -55,8 +54,4 @@ public final Map<String, JsonNode> asObject() {
5554
abstract List<JsonNode> createArray();
5655
abstract Map<String, JsonNode> createObject();
5756
abstract SimpleType computeNodeType(T node);
58-
59-
static boolean canConvertToInteger(BigDecimal bigDecimal) {
60-
return bigDecimal.scale() <= 0 || bigDecimal.stripTrailingZeros().scale() <= 0;
61-
}
6257
}

src/main/java/dev/harrel/jsonschema/providers/GsonNode.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
import java.util.*;
1313

1414
public final class GsonNode extends AbstractJsonNode<JsonElement> {
15-
private BigDecimal asNumber;
16-
1715
private GsonNode(JsonElement node, String jsonPointer) {
1816
super(Objects.requireNonNull(node), jsonPointer);
1917
}
@@ -34,12 +32,12 @@ public String asString() {
3432

3533
@Override
3634
public BigInteger asInteger() {
37-
return asNumber.toBigInteger();
35+
return node.getAsBigDecimal().toBigInteger();
3836
}
3937

4038
@Override
4139
public BigDecimal asNumber() {
42-
return asNumber;
40+
return node.getAsBigDecimal();
4341
}
4442

4543
@Override
@@ -86,8 +84,8 @@ SimpleType computeNodeType(JsonElement node) {
8684
} else if (jsonPrimitive.isString()) {
8785
return SimpleType.STRING;
8886
} else {
89-
asNumber = jsonPrimitive.getAsBigDecimal();
90-
if (canConvertToInteger(asNumber)) {
87+
BigDecimal bigDecimal = jsonPrimitive.getAsBigDecimal();
88+
if (bigDecimal.scale() <= 0 || bigDecimal.stripTrailingZeros().scale() <= 0) {
9189
return SimpleType.INTEGER;
9290
} else {
9391
return SimpleType.NUMBER;

src/main/java/dev/harrel/jsonschema/providers/JakartaJsonNode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ SimpleType computeNodeType(JsonValue node) {
7676
case FALSE:
7777
return SimpleType.BOOLEAN;
7878
case NUMBER:
79-
if (canConvertToInteger(((JsonNumber) node).bigDecimalValue())) {
79+
JsonNumber jsonNumber = (JsonNumber) node;
80+
if (jsonNumber.isIntegral() || jsonNumber.bigDecimalValue().stripTrailingZeros().scale() <= 0) {
8081
return SimpleType.INTEGER;
8182
} else {
8283
return SimpleType.NUMBER;

src/main/java/dev/harrel/jsonschema/providers/KotlinxJsonNode.java

Lines changed: 0 additions & 118 deletions
This file was deleted.

src/main/java/dev/harrel/jsonschema/providers/SnakeYamlNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ SimpleType computeNodeType(Node node) {
9191
return SimpleType.STRING;
9292
}
9393
asNumber = floatToBigDecimal(node);
94-
if (canConvertToInteger(asNumber)) {
94+
if (asNumber.scale() <= 0 || asNumber.stripTrailingZeros().scale() <= 0) {
9595
return SimpleType.INTEGER;
9696
} else {
9797
return SimpleType.NUMBER;

src/test/java/dev/harrel/jsonschema/providers/KotlinxJsonTest.java

Lines changed: 0 additions & 124 deletions
This file was deleted.

0 commit comments

Comments
 (0)