Skip to content

Commit a94d718

Browse files
committed
Updates based on feedback (thanks!)
1 parent 2c45398 commit a94d718

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

src/main/java/com/fasterxml/jackson/perf/json/JsonArbitraryFieldNameBenchmark.java

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.fasterxml.jackson.perf.json;
22

3-
import com.fasterxml.jackson.annotation.JsonCreator;
43
import com.fasterxml.jackson.annotation.JsonProperty;
54
import com.fasterxml.jackson.core.JsonFactory;
5+
import com.fasterxml.jackson.core.JsonFactoryBuilder;
66
import com.fasterxml.jackson.core.JsonParser;
7+
import com.fasterxml.jackson.core.TSFBuilder;
78
import com.fasterxml.jackson.core.type.TypeReference;
89
import com.fasterxml.jackson.databind.DeserializationFeature;
910
import com.fasterxml.jackson.databind.ObjectMapper;
1011
import com.fasterxml.jackson.databind.ObjectReader;
12+
import com.fasterxml.jackson.databind.json.JsonMapper;
1113
import org.openjdk.jmh.annotations.Benchmark;
1214
import org.openjdk.jmh.annotations.BenchmarkMode;
1315
import org.openjdk.jmh.annotations.Mode;
@@ -34,24 +36,24 @@ public class JsonArbitraryFieldNameBenchmark {
3436
public enum FactoryMode {
3537
DEFAULT() {
3638
@Override
37-
JsonFactory apply(JsonFactory factory) {
39+
<F extends JsonFactory, B extends TSFBuilder<F, B>> B apply(B factory) {
3840
return factory;
3941
}
4042
},
4143
NO_INTERN() {
4244
@Override
43-
JsonFactory apply(JsonFactory factory) {
45+
<F extends JsonFactory, B extends TSFBuilder<F, B>> B apply(B factory) {
4446
return factory.disable(JsonFactory.Feature.INTERN_FIELD_NAMES);
4547
}
4648
},
4749
NO_CANONICALIZE() {
4850
@Override
49-
JsonFactory apply(JsonFactory factory) {
51+
<F extends JsonFactory, B extends TSFBuilder<F, B>> B apply(B factory) {
5052
return factory.disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES);
5153
}
5254
};
5355

54-
abstract JsonFactory apply(JsonFactory factory);
56+
abstract <F extends JsonFactory, B extends TSFBuilder<F, B>> B apply(B factory);
5557
}
5658

5759
/**
@@ -109,10 +111,11 @@ public enum InputShape {
109111

110112
@Setup
111113
public void setup() {
112-
factory = mode.apply(new JsonFactory());
113-
ObjectMapper mapper = new ObjectMapper(factory)
114+
factory = mode.apply(new JsonFactoryBuilder()).build();
115+
ObjectMapper mapper = JsonMapper.builder(factory)
114116
// Use FAIL_ON_UNKNOWN_PROPERTIES to ensure the benchmark inputs are valid
115-
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
117+
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
118+
.build();
116119
reader = mapper.readerFor(shape.typereference);
117120
}
118121

@@ -128,24 +131,13 @@ public Object parse() throws IOException {
128131
* fields to cover a mix of reused and arbitrary json keys.
129132
*/
130133
public static final class SimpleClass {
134+
@JsonProperty("fieldWithMap")
131135
public Map<String, Boolean> fieldWithMap;
132-
136+
@JsonProperty("stringOne")
133137
public String stringOne;
134-
138+
@JsonProperty("stringTwo")
135139
public String stringTwo;
136-
140+
@JsonProperty("stringThree")
137141
public String stringThree;
138-
139-
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
140-
SimpleClass(
141-
@JsonProperty("fieldWithMap") Map<String, Boolean> fieldWithMap,
142-
@JsonProperty("stringOne") String stringOne,
143-
@JsonProperty("stringTwo") String stringTwo,
144-
@JsonProperty("stringThree") String stringThree) {
145-
this.fieldWithMap = fieldWithMap;
146-
this.stringOne = stringOne;
147-
this.stringTwo = stringTwo;
148-
this.stringThree = stringThree;
149-
}
150142
}
151143
}

0 commit comments

Comments
 (0)