• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zalando / logbook / 5311

03 Feb 2026 03:00PM UTC coverage: 96.822% (-1.4%) from 98.209%
5311

push

github

web-flow
Move Jackson Support Classes Into Separate Modules (#2197)

754 of 786 branches covered (95.93%)

39 of 99 new or added lines in 11 files covered. (39.39%)

3900 of 4028 relevant lines covered (96.82%)

0.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/logbook-json-jackson2/src/main/java/org/zalando/logbook/json/CompactingJsonBodyFilterJackson2.java
1
package org.zalando.logbook.json;
2

3
import jakarta.annotation.Nullable;
4
import java.io.IOException;
5
import lombok.AllArgsConstructor;
6
import lombok.Generated;
7
import lombok.extern.slf4j.Slf4j;
8
import org.apiguardian.api.API;
9
import org.zalando.logbook.BodyFilter;
10
import org.zalando.logbook.ContentType;
11

12
import static org.apiguardian.api.API.Status.MAINTAINED;
13

14
/**
15
 * @see FastCompactingJsonBodyFilterJackson2
16
 */
17
@Deprecated(since = "4.0.0", forRemoval = true)
18
@API(status = MAINTAINED)
NEW
19
@Slf4j
×
20
@AllArgsConstructor
21
public final class CompactingJsonBodyFilterJackson2 implements BodyFilter {
22

23
    private final JsonCompactorJackson2 compactor;
24

25
    public CompactingJsonBodyFilterJackson2(final JsonGeneratorWrapperJackson2 jsonGeneratorWrapper) {
NEW
26
        this(new ParsingJsonCompactorJackson2(jsonGeneratorWrapper));
×
NEW
27
    }
×
28

29
    @Generated
30
    public CompactingJsonBodyFilterJackson2() {
31
        this(createDefaultCompactor());
32
    }
33

34
    @Generated
35
    private static JsonCompactorJackson2 createDefaultCompactor() {
36
        try {
37
            // If we don't find Jackson 2 on the classpath then return a Noop compactor, as we will initialize the
38
            // Jackson 3 Compactor provided by the logbook-json module
39
            Class.forName("com.fasterxml.jackson.core.JsonFactory");
40
            return new ParsingJsonCompactorJackson2();
41
        } catch (final ClassNotFoundException e) {
42
            return new NoopJsonCompactorJackson2();
43
        }
44

45
    }
46

47
    @Override
48
    public String filter(@Nullable final String contentType, final String body) {
NEW
49
        if (!ContentType.isJsonMediaType(contentType)) {
×
NEW
50
            return body;
×
51
        }
52

53
        try {
NEW
54
            return compactor.compact(body);
×
NEW
55
        } catch (final IOException e) {
×
NEW
56
            log.trace("Unable to compact body, is it a JSON?. Keep it as-is: `{}`", e.getMessage());
×
NEW
57
            return body;
×
58
        }
59
    }
60

61
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc