• 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

50.0
/logbook-json-jackson2/src/main/java/org/zalando/logbook/json/JsonBodyFiltersJackson2.java
1
package org.zalando.logbook.json;
2

3
import java.util.HashSet;
4
import java.util.List;
5
import java.util.Set;
6
import java.util.function.BiFunction;
7
import java.util.function.Predicate;
8
import org.apiguardian.api.API;
9
import org.zalando.logbook.BodyFilter;
10

11
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
12
import static org.apiguardian.api.API.Status.MAINTAINED;
13
import static org.zalando.logbook.json.PrimitiveJsonPropertyBodyFilterJackson2.replaceNumber;
14
import static org.zalando.logbook.json.PrimitiveJsonPropertyBodyFilterJackson2.replacePrimitive;
15
import static org.zalando.logbook.json.PrimitiveJsonPropertyBodyFilterJackson2.replaceString;
16

17
@Deprecated(since = "4.0.0", forRemoval = true)
18
public final class JsonBodyFiltersJackson2 {
19

20
    private JsonBodyFiltersJackson2() {
21

22
    }
23

24
    @API(status = MAINTAINED)
25
    public static BodyFilter accessToken() {
26
        final Set<String> properties = new HashSet<>(List.of(
1✔
27
                "access_token", "refresh_token", "open_id", "id_token"));
28
        return replaceJsonStringProperty(properties, "XXX");
1✔
29
    }
30

31
    /**
32
     * Creates a {@link BodyFilter} that replaces the properties in the json response with the replacement passed as argument.
33
     * This {@link BodyFilter} works on all levels inside the json tree and it only works with string values<br><br>
34
     * Example from {@link AccessTokenBodyFilterJackson2} method:<br>
35
     * <pre>{@code
36
     * Set<String> properties = new HashSet<>();
37
     * properties.add("access_token");
38
     * properties.add("open_id");
39
     * properties.add("id_token");
40
     * return replaceJsonStringProperty(properties, "XXX");
41
     * }</pre>
42
     *
43
     * @param properties  JSON properties to replace
44
     * @param replacement String to replace the properties values
45
     * @return BodyFilter generated
46
     */
47
    @API(status = MAINTAINED)
48
    public static BodyFilter replaceJsonStringProperty(
49
            final Set<String> properties, final String replacement) {
50

51
        return replaceJsonStringProperty(properties::contains, replacement);
1✔
52
    }
53

54
    @API(status = EXPERIMENTAL)
55
    public static BodyFilter replaceJsonStringProperty(
56
            final Predicate<String> predicate, final String replacement) {
57

58
        return replaceString(predicate, replacement);
1✔
59
    }
60

61
    @API(status = EXPERIMENTAL)
62
    public static BodyFilter replaceJsonNumberProperty(
63
            final Set<String> properties, final Number replacement) {
64

NEW
65
        return replaceJsonNumberProperty(properties::contains, replacement);
×
66
    }
67

68
    @API(status = EXPERIMENTAL)
69
    public static BodyFilter replaceJsonNumberProperty(
70
            final Predicate<String> predicate, final Number replacement) {
71

NEW
72
        return replaceNumber(predicate, replacement);
×
73
    }
74

75
    @API(status = EXPERIMENTAL)
76
    public static BodyFilter replacePrimitiveJsonProperty(
77
            final Predicate<String> predicate, final String replacement) {
78

NEW
79
        return replacePrimitive(predicate, replacement);
×
80
    }
81

82
    @API(status = API.Status.EXPERIMENTAL)
83
    public static BodyFilter replacePrimitiveJsonProperty(
84
            final Predicate<String> predicate, final BiFunction<String, String, String> replacement) {
85

NEW
86
        return replacePrimitive(predicate, replacement);
×
87
    }
88
}
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