Skip to content

Commit 4e95229

Browse files
authored
Update libraries (#105)
1 parent 0141397 commit 4e95229

File tree

8 files changed

+44
-62
lines changed

8 files changed

+44
-62
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The results here-below were computed on January the 30th, 2024 with the followin
6969
| jodd json | 6.0.3 |
7070
| johnzon | 1.2.21 |
7171
| jakarta | 2.1.3 |
72-
| json-io | 4.40.0 |
72+
| json-io | 4.24.0 |
7373
| simplejson | 1.1.1 |
7474
| json-smart | 2.4.11 |
7575
| logansquare | 1.3.7 |
@@ -194,4 +194,4 @@ Pull requests are welcome.
194194
[graph-users-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=1217359585&format=image
195195
[graph-users-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=296776676&format=image
196196
[graph-clients-deser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=684555912&format=image
197-
[graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=2004244401&format=image
197+
[graph-clients-ser]: https://docs.google.com/spreadsheets/d/e/2PACX-1vQDBLUYgQ9BhFL_yxZidD1dRG-VYn2aFjMAwc2p6pl_J72XME4lopY8LcyHzTdC5QhISqIrSdkL-Vyt/pubchart?oid=2004244401&format=image

build.gradle

+17-17
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ repositories {
1717
}
1818

1919
ext {
20-
avajeJsonVersion = '1.9'
21-
jacksonVersion = '2.16.0'
22-
dslJsonVersion = '1.10.0'
23-
johnzonVersion = '1.2.21'
20+
avajeJsonVersion = '1.11'
21+
jacksonVersion = '2.17.1'
22+
dslJsonVersion = '2.0.2'
23+
johnzonVersion = '2.0.1'
2424
jmhVersion = '1.35'
2525
}
2626

@@ -42,8 +42,8 @@ dependencies {
4242
// boon
4343
implementation group: 'io.fastjson', name: 'boon', version: '0.34'
4444
// DSL-json
45-
implementation group: 'com.dslplatform', name: 'dsl-json-java8', version: "${dslJsonVersion}"
46-
annotationProcessor group: 'com.dslplatform', name: 'dsl-json-java8', version: "${dslJsonVersion}"
45+
implementation group: 'com.dslplatform', name: 'dsl-json', version: "${dslJsonVersion}"
46+
annotationProcessor group: 'com.dslplatform', name: 'dsl-json', version: "${dslJsonVersion}"
4747
// FastJson
4848
implementation group: 'com.alibaba.fastjson2', name: 'fastjson2', version: '2.0.48'
4949
implementation group: 'com.alibaba.fastjson2', name: 'fastjson2-incubator-vector', version: '2.0.48'
@@ -52,7 +52,7 @@ dependencies {
5252
// GENSON
5353
implementation group: 'com.owlike', name: 'genson', version: '1.6'
5454
// GSON
55-
implementation group: 'com.google.code.gson', name: 'gson', version: '2.10.1'
55+
implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0'
5656
// Jackson
5757
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}"
5858
implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-afterburner', version: "${jacksonVersion}"
@@ -61,18 +61,18 @@ dependencies {
6161
// jodd
6262
implementation group: 'org.jodd', name: 'jodd-json', version: '6.0.3'
6363
// johnzon
64-
implementation group: 'org.apache.johnzon', name: 'johnzon-core', classifier: 'jakarta', version: "${johnzonVersion}"
65-
implementation group: 'org.apache.johnzon', name: 'johnzon-mapper', classifier: 'jakarta', version: "${johnzonVersion}"
64+
implementation group: 'org.apache.johnzon', name: 'johnzon-core', version: "${johnzonVersion}"
65+
implementation group: 'org.apache.johnzon', name: 'johnzon-mapper', version: "${johnzonVersion}"
6666
// Jakarta
67-
implementation group: 'jakarta.json.bind', name: 'jakarta.json.bind-api', version: '3.0.0'
67+
implementation group: 'jakarta.json.bind', name: 'jakarta.json.bind-api', version: '3.0.1'
6868
implementation group: 'jakarta.json', name: 'jakarta.json-api', version: '2.1.3'
6969
implementation group: 'org.glassfish', name: 'jakarta.json', version: '2.0.1'
7070
// json-io
71-
implementation group: 'com.cedarsoftware', name: 'json-io', version: '4.14.0'
71+
implementation group: 'com.cedarsoftware', name: 'json-io', version: '4.24.0'
7272
// json-simple
7373
implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
7474
// json-smart
75-
implementation group: 'net.minidev', name: 'json-smart', version: '2.4.11'
75+
implementation group: 'net.minidev', name: 'json-smart', version: '2.5.1'
7676
// LoganSquare
7777
implementation group: 'com.bluelinelabs', name: 'logansquare', version: '1.3.7'
7878
annotationProcessor group: 'com.bluelinelabs', name: 'logansquare-compiler', version: '1.3.7'
@@ -81,19 +81,19 @@ dependencies {
8181
// mjson
8282
implementation group: 'org.sharegov', name: 'mjson', version: '1.4.1'
8383
// moshi
84-
implementation group: 'com.squareup.moshi', name: 'moshi', version: '1.15.0'
84+
implementation group: 'com.squareup.moshi', name: 'moshi', version: '1.15.1'
8585
// nanojson
86-
implementation group: 'com.grack', name: 'nanojson', version: '1.8'
86+
implementation group: 'com.grack', name: 'nanojson', version: '1.9'
8787
// org.json
88-
implementation group: 'org.json', name: 'json', version: '20231013'
88+
implementation group: 'org.json', name: 'json', version: '20240303'
8989
// purejson
9090
implementation group: 'io.github.senthilganeshs', name: 'purejson', version: '1.0.1'
9191
// qson
9292
implementation group: 'io.quarkus.qson', name: 'qson-generator', version: '1.1.1.Final'
9393
// tapestry
94-
implementation group: 'org.apache.tapestry', name: 'tapestry-json', version: '5.8.3'
94+
implementation group: 'org.apache.tapestry', name: 'tapestry-json', version: '5.8.6'
9595
// underscore-java
96-
implementation group: 'com.github.javadev', name: 'underscore', version: '1.97'
96+
implementation group: 'com.github.javadev', name: 'underscore', version: '1.101'
9797
// yasson
9898
implementation group: 'org.eclipse', name: 'yasson', version: '3.0.3'
9999
// QuickBuffers

src/main/java/com/github/fabienrenaud/jjb/provider/ClientsJsonProvider.java

+3-17
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.github.fabienrenaud.jjb.provider;
22

3-
import com.cedarsoftware.util.io.JsonReader;
4-
import com.cedarsoftware.util.io.JsonWriter;
53
import com.dslplatform.json.DslJson;
64
import com.dslplatform.json.runtime.Settings;
75
import com.fasterxml.jackson.core.JsonFactory;
@@ -46,8 +44,6 @@
4644
import java.time.LocalDate;
4745
import java.time.OffsetDateTime;
4846
import java.util.Collections;
49-
import java.util.HashMap;
50-
import java.util.Map;
5147
import java.util.UUID;
5248

5349
public class ClientsJsonProvider implements JsonProvider<Clients> {
@@ -158,20 +154,15 @@ public void toJson(com.squareup.moshi.JsonWriter writer, @Nullable OffsetDateTim
158154
private final DslJson<Object> dsljson_reflection = new DslJson<>(Settings.withRuntime());//don't include generated classes
159155

160156
private final io.avaje.jsonb.JsonType<Clients> avajeJsonb_jackson = io.avaje.jsonb.Jsonb
161-
.newBuilder()
157+
.builder()
162158
.adapter(new JacksonAdapter(/* serializeNulls */ true, /* serializeEmpty */ true, /* failOnUnknown */ false)).build().type(Clients.class);
163159
private final io.avaje.jsonb.JsonType<Clients> avajeJsonb_default = io.avaje.jsonb.Jsonb
164-
.newBuilder()
160+
.builder()
165161
.adapter(new JsonStream(/* serializeNulls */ true, /* serializeEmpty */ true, /* failOnUnknown */ false)).build().type(Clients.class);
166162

167-
private final Map<String, Object> jsonioStreamOptions = new HashMap<>();
168-
169163
public ClientsJsonProvider() {
170164

171-
jsonioStreamOptions.put(JsonReader.USE_MAPS, true);
172-
jsonioStreamOptions.put(JsonWriter.TYPE, false);
173-
174-
// set johnson JsonReader (default is `JsonProvider.provider()`)
165+
// set johnzon JsonReader (default is `JsonProvider.provider()`)
175166
jakarta.json.spi.JsonProvider johnzonProvider = new JsonProviderImpl();
176167
johnzon = new org.apache.johnzon.mapper.MapperBuilder()
177168
.setReaderFactory(johnzonProvider.createReaderFactory(Collections.emptyMap()))
@@ -243,11 +234,6 @@ public Mapper johnzon() {
243234
return johnzon;
244235
}
245236

246-
@Override
247-
public Map<String, Object> jsonioStreamOptions() {
248-
return jsonioStreamOptions;
249-
}
250-
251237
@Override
252238
public DslJson<Object> dsljson() {
253239
return dsljson;

src/main/java/com/github/fabienrenaud/jjb/provider/JsonProvider.java

-4
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import us.hebi.quickbuf.JsonSink;
1515
import us.hebi.quickbuf.ProtoMessage;
1616

17-
import java.util.Map;
18-
1917
public interface JsonProvider<T> {
2018

2119
Gson gson();
@@ -42,8 +40,6 @@ public interface JsonProvider<T> {
4240

4341
Mapper johnzon();
4442

45-
Map<String, Object> jsonioStreamOptions();
46-
4743
DslJson<Object> dsljson();
4844

4945
DslJson<Object> dsljson_reflection();

src/main/java/com/github/fabienrenaud/jjb/provider/UsersJsonProvider.java

+3-16
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.github.fabienrenaud.jjb.provider;
22

3-
import com.cedarsoftware.util.io.JsonReader;
4-
import com.cedarsoftware.util.io.JsonWriter;
53
import com.dslplatform.json.DslJson;
64
import com.dslplatform.json.runtime.Settings;
75
import com.fasterxml.jackson.core.JsonFactory;
@@ -24,8 +22,6 @@
2422
import org.eclipse.yasson.JsonBindingProvider;
2523

2624
import java.util.Collections;
27-
import java.util.HashMap;
28-
import java.util.Map;
2925

3026
import jakarta.json.bind.Jsonb;
3127
import us.hebi.quickbuf.JsonSink;
@@ -57,16 +53,12 @@ public class UsersJsonProvider implements JsonProvider<Users> {
5753
private final DslJson<Object> dsljson = new DslJson<>(Settings.withRuntime().includeServiceLoader());
5854
private final DslJson<Object> dsljson_reflection = new DslJson<>(Settings.withRuntime());//don't include generated classes
5955

60-
private final Map<String, Object> jsonioStreamOptions = new HashMap<>();
61-
62-
private final JsonType<Users> avajeJsonb_jackson = io.avaje.jsonb.Jsonb.newBuilder().adapter(new JacksonAdapter(/* serializeNulls */ true, /* serializeEmpty */ true, /* failOnUnknown */ false)).build().type(Users.class);
63-
private final JsonType<Users> avajeJsonb_default = io.avaje.jsonb.Jsonb.newBuilder().adapter(new JsonStream(/* serializeNulls */ true, /* serializeEmpty */ true, /* failOnUnknown */ false)).build().type(Users.class);
56+
private final JsonType<Users> avajeJsonb_jackson = io.avaje.jsonb.Jsonb.builder().adapter(new JacksonAdapter(/* serializeNulls */ true, /* serializeEmpty */ true, /* failOnUnknown */ false)).build().type(Users.class);
57+
private final JsonType<Users> avajeJsonb_default = io.avaje.jsonb.Jsonb.builder().adapter(new JsonStream(/* serializeNulls */ true, /* serializeEmpty */ true, /* failOnUnknown */ false)).build().type(Users.class);
6458

6559
public UsersJsonProvider() {
66-
jsonioStreamOptions.put(JsonReader.USE_MAPS, true);
67-
jsonioStreamOptions.put(JsonWriter.TYPE, false);
6860

69-
// set johnson JsonReader (default is `JsonProvider.provider()`)
61+
// set johnzon JsonReader (default is `JsonProvider.provider()`)
7062
jakarta.json.spi.JsonProvider johnzonProvider = new JsonProviderImpl();
7163
johnzon = new org.apache.johnzon.mapper.MapperBuilder()
7264
.setReaderFactory(johnzonProvider.createReaderFactory(Collections.emptyMap()))
@@ -132,11 +124,6 @@ public Mapper johnzon() {
132124
return johnzon;
133125
}
134126

135-
@Override
136-
public Map<String, Object> jsonioStreamOptions() {
137-
return jsonioStreamOptions;
138-
}
139-
140127
@Override
141128
public DslJson<Object> dsljson() {
142129
return dsljson;

src/main/java/com/github/fabienrenaud/jjb/stream/Deserialization.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.concurrent.atomic.AtomicBoolean;
1313
import java.util.concurrent.atomic.AtomicReference;
1414

15+
import com.cedarsoftware.io.JsonIo;
16+
import com.cedarsoftware.io.ReadOptionsBuilder;
1517
import org.json.JSONException;
1618
import org.json.JSONObject;
1719
import org.openjdk.jmh.annotations.Benchmark;
@@ -90,8 +92,14 @@ public Object genson() throws Exception {
9092

9193
@Benchmark
9294
@Override
93-
public Object jsonio() throws Exception {
94-
return com.cedarsoftware.util.io.JsonReader.jsonToJava(JSON_SOURCE().nextInputStream(), JSON_SOURCE().provider().jsonioStreamOptions());
95+
public Object jsonio() {
96+
97+
// returnAsNativeJsonObjects maps to old JsonWriter.USE_MAPS=true behavior,
98+
// see {@link JsonIo#getReadOptionsBuilder(java.util.Map)} and
99+
// <a href="https://github.com/jdereg/json-io/blob/4.19.1/changelog.md">the v4.19 changelog</a>
100+
return JsonIo.toObjects(
101+
JSON_SOURCE().nextInputStream(), new ReadOptionsBuilder().returnAsNativeJsonObjects().build(), null
102+
);
95103
}
96104

97105
@Benchmark

src/main/java/com/github/fabienrenaud/jjb/stream/Serialization.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.io.OutputStreamWriter;
55
import java.io.Writer;
66

7+
import com.cedarsoftware.io.JsonIo;
8+
import com.cedarsoftware.io.WriteOptionsBuilder;
79
import org.openjdk.jmh.annotations.Benchmark;
810

911
import com.fasterxml.jackson.core.JsonGenerator;
@@ -93,8 +95,10 @@ public Object genson() throws Exception {
9395

9496
@Benchmark
9597
@Override
96-
public Object jsonio() throws Exception {
97-
return com.cedarsoftware.util.io.JsonWriter.objectToJson(JSON_SOURCE().nextPojo(), JSON_SOURCE().provider().jsonioStreamOptions());
98+
public Object jsonio() {
99+
100+
// showTypeInfoNever maps to old TYPE=false behavior see {@link JsonIo#getWriteOptionsBuilder(java.util.Map)}
101+
return JsonIo.toJson(JSON_SOURCE().nextPojo(), new WriteOptionsBuilder().showTypeInfoNever().build());
98102
}
99103

100104
@Benchmark

src/test/java/com/github/fabienrenaud/jjb/JsonBenchmark.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.fabienrenaud.jjb;
22

3+
import com.cedarsoftware.io.WriteOptionsBuilder;
34
import com.github.fabienrenaud.jjb.model.Clients;
45
import com.github.fabienrenaud.jjb.model.Users;
56
import com.github.fabienrenaud.jjb.support.Api;
@@ -34,8 +35,8 @@ protected void test(Library lib, Object o) {
3435

3536
if (o instanceof Users || o instanceof Clients) {
3637
testPojo((T) o);
37-
} else if (o instanceof com.cedarsoftware.util.io.JsonObject) {
38-
String v = com.cedarsoftware.util.io.JsonWriter.objectToJson(o, BENCH.JSON_SOURCE().provider().jsonioStreamOptions());
38+
} else if (o instanceof com.cedarsoftware.io.JsonObject) {
39+
String v = com.cedarsoftware.io.JsonIo.toJson(o, new WriteOptionsBuilder().showTypeInfoNever().build());
3940
testString(v);
4041
} else if (o instanceof com.grack.nanojson.JsonObject) {
4142
String v = com.grack.nanojson.JsonWriter.string(o);

0 commit comments

Comments
 (0)