Skip to content

Commit

Permalink
Reuse Jackson JsonFactory, as it is thread safe
Browse files Browse the repository at this point in the history
  • Loading branch information
skjolber committed Jun 27, 2019
1 parent 59de5fe commit 22df678
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.zalando.logbook.json;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apiguardian.api.API;
Expand All @@ -23,8 +24,12 @@ public CompactingJsonBodyFilter() {
this(new ObjectMapper());
}

public CompactingJsonBodyFilter(final JsonFactory factory) {
this.compactor = new ParsingJsonCompactor(factory);
}

public CompactingJsonBodyFilter(final ObjectMapper mapper) {
this.compactor = new ParsingJsonCompactor(mapper);
this(mapper.getFactory());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ public class JacksonJsonFieldBodyFilter implements BodyFilter {

private final String replacement;
private final Set<String> fields;
private final ObjectMapper objectMapper;
private final JsonFactory factory;

public JacksonJsonFieldBodyFilter(Collection<String> fieldNames, String replacement, ObjectMapper objectMapper) {
this.fields = new HashSet<>(fieldNames); // thread safe for reading
this.replacement = replacement;
this.objectMapper = objectMapper;
this.factory = objectMapper.getFactory();
}

public JacksonJsonFieldBodyFilter(Collection<String> fieldNames, String replacement) {
Expand All @@ -49,7 +49,6 @@ public String filter(String contentType, String body) {

public String filter(final String body) {
try {
JsonFactory factory = objectMapper.getFactory();
final JsonParser parser = factory.createParser(body);

StringWriter writer = new StringWriter(body.length() * 2); // rough estimate of final size
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@
@AllArgsConstructor
final class ParsingJsonCompactor implements JsonCompactor {

private final ObjectMapper mapper;
private final JsonFactory factory;

@Override
public String compact(final String json) throws IOException {
final StringWriter output = new StringWriter(json.length());
final JsonFactory factory = mapper.getFactory();
final JsonParser parser = factory.createParser(json);

final JsonGenerator generator = factory.createGenerator(output);
Expand Down

0 comments on commit 22df678

Please sign in to comment.