Skip to content

Commit 8a01d67

Browse files
committed
Revert "Revert "Merge pull request fabienrenaud#14 from mhyeon-lee/add/yasson-for-jsonb""
This reverts commit 407fca3.
1 parent 2c9f6a9 commit 8a01d67

File tree

9 files changed

+46
-0
lines changed

9 files changed

+46
-0
lines changed

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ dependencies {
3333
// JSONP
3434
compile group: 'javax.json', name: 'javax.json-api', version: '1.1.2'
3535
compile group: 'org.glassfish', name: 'javax.json', version: '1.1.2'
36+
// JSONB
37+
compile group: 'javax.json.bind', name: 'javax.json.bind-api', version: '1.0'
38+
compile group: 'org.eclipse', name: 'yasson', version: '1.0.1'
3639
// GENSON
3740
compile group: 'com.owlike', name: 'genson', version: '1.4'
3841
// FlexJson

src/main/java/com/github/fabienrenaud/jjb/JsonBench.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public Object genson() throws Exception {
3030
return null;
3131
}
3232

33+
public Object yasson() throws Exception {
34+
return null;
35+
}
36+
3337
public Object javaxjson() throws Exception {
3438
return null;
3539
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ public Object genson() throws JsonSyntaxException {
3939
return JSON_SOURCE.provider().genson().deserialize(JSON_SOURCE.nextByteArray(), JSON_SOURCE.pojoType());
4040
}
4141

42+
@Benchmark
43+
@Override
44+
public Object yasson() throws JsonSyntaxException {
45+
return JSON_SOURCE.provider().yasson().fromJson(JSON_SOURCE.nextReader(), JSON_SOURCE.pojoType());
46+
}
47+
4248
@Benchmark
4349
@Override
4450
public Object fastjson() {

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ public Object genson() {
5050
return baos;
5151
}
5252

53+
@Benchmark
54+
@Override
55+
public Object yasson() {
56+
ByteArrayOutputStream baos = JsonUtils.byteArrayOutputStream();
57+
JSON_SOURCE.provider().yasson().toJson(JSON_SOURCE.nextPojo(), baos);
58+
return baos;
59+
}
60+
5361
@Benchmark
5462
@Override
5563
public Object fastjson() throws Exception {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import flexjson.JSONSerializer;
1010
import org.apache.johnzon.mapper.Mapper;
1111

12+
import javax.json.bind.Jsonb;
13+
1214
import java.util.Map;
1315

1416
/**
@@ -26,6 +28,8 @@ public interface JsonProvider<T> {
2628

2729
Genson genson();
2830

31+
Jsonb yasson();
32+
2933
JSONDeserializer<T> flexjsonDeser();
3034

3135
JSONSerializer flexjsonSer();

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@
1616
import flexjson.JSONSerializer;
1717
import org.apache.johnzon.core.JsonProviderImpl;
1818
import org.apache.johnzon.mapper.Mapper;
19+
import org.eclipse.yasson.JsonBindingProvider;
20+
import org.glassfish.json.JsonProviderImpl;
1921

2022
import java.util.Collections;
2123
import java.util.HashMap;
2224
import java.util.Map;
2325

26+
import javax.json.bind.Jsonb;
27+
2428
/**
2529
* Created by frenaud on 7/24/16.
2630
*/
@@ -31,6 +35,9 @@ public class UsersJsonProvider implements JsonProvider<Users> {
3135
private final ObjectMapper jacksonAfterburner = new ObjectMapper();
3236
private final JsonFactory jacksonFactory = new JsonFactory();
3337
private final Genson genson = new Genson();
38+
private final Jsonb yasson = new JsonBindingProvider().create()
39+
.withProvider(new JsonProviderImpl())
40+
.build();
3441
private final JSONDeserializer<Users> flexjsonDeser = new JSONDeserializer<>();
3542
private final org.boon.json.ObjectMapper boon = org.boon.json.JsonFactory.create();
3643
private final org.apache.johnzon.mapper.Mapper johnzon;
@@ -86,6 +93,11 @@ public Genson genson() {
8693
return genson;
8794
}
8895

96+
@Override
97+
public Jsonb yasson() {
98+
return yasson;
99+
}
100+
89101
public JSONDeserializer<Users> flexjsonDeser() {
90102
return flexjsonDeser;
91103
}

src/main/java/com/github/fabienrenaud/jjb/support/BenchSupport.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public enum BenchSupport {
1515
new Libapi(Library.JACKSON_AFTERBURNER, Api.DATABIND),
1616
new Libapi(Library.ORGJSON, Api.STREAM),
1717
new Libapi(Library.GENSON, Api.DATABIND, Api.STREAM),
18+
new Libapi(Library.YASSON, Api.DATABIND),
1819
new Libapi(Library.JAVAXJSON, Api.STREAM),
1920
new Libapi(Library.FLEXJSON, Api.DATABIND),
2021
new Libapi(Library.FASTJSON, Api.DATABIND),

src/main/java/com/github/fabienrenaud/jjb/support/Library.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public enum Library {
1212
JACKSON,
1313
JACKSON_AFTERBURNER,
1414
ORGJSON,
15+
YASSON,
1516
GENSON, JAVAXJSON,
1617
FLEXJSON,
1718
FASTJSON,

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,13 @@ public void genson() throws Exception {
9393
}
9494
}
9595

96+
@Test
97+
public void yasson() throws Exception {
98+
for (int i = 0; i < ITERATIONS; i++) {
99+
test(Library.YASSON, BENCH.yasson());
100+
}
101+
}
102+
96103
@Test
97104
public void javaxjson() throws Exception {
98105
for (int i = 0; i < ITERATIONS; i++) {

0 commit comments

Comments
 (0)