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

devonfw / IDEasy / 19791492645

30 Nov 2025 12:40AM UTC coverage: 69.529% (+0.1%) from 69.41%
19791492645

push

github

web-flow
cleanup: link parameters + test and additionalInstallation  (#1620)

3707 of 5861 branches covered (63.25%)

Branch coverage included in aggregate %.

9637 of 13331 relevant lines covered (72.29%)

3.15 hits per line

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

86.21
cli/src/main/java/com/devonfw/tools/ide/json/JsonMapping.java
1
package com.devonfw.tools.ide.json;
2

3
import java.io.IOException;
4

5
import com.devonfw.tools.ide.tool.repository.CustomToolJson;
6
import com.devonfw.tools.ide.tool.repository.CustomToolJsonDeserializer;
7
import com.devonfw.tools.ide.tool.repository.CustomToolJsonSerializer;
8
import com.devonfw.tools.ide.tool.repository.CustomToolsJson;
9
import com.devonfw.tools.ide.tool.repository.CustomToolsJsonDeserializer;
10
import com.devonfw.tools.ide.tool.repository.CustomToolsJsonSerializer;
11
import com.devonfw.tools.ide.url.model.file.json.Cve;
12
import com.devonfw.tools.ide.url.model.file.json.CveJsonDeserializer;
13
import com.devonfw.tools.ide.url.model.file.json.ToolDependency;
14
import com.devonfw.tools.ide.url.model.file.json.ToolSecurity;
15
import com.devonfw.tools.ide.url.model.file.json.ToolSecurityJsonDeserializer;
16
import com.devonfw.tools.ide.version.VersionIdentifier;
17
import com.devonfw.tools.ide.version.VersionRange;
18
import com.fasterxml.jackson.annotation.JsonInclude;
19
import com.fasterxml.jackson.core.JsonParser;
20
import com.fasterxml.jackson.core.JsonToken;
21
import com.fasterxml.jackson.databind.DeserializationFeature;
22
import com.fasterxml.jackson.databind.ObjectMapper;
23
import com.fasterxml.jackson.databind.SerializationFeature;
24
import com.fasterxml.jackson.databind.module.SimpleModule;
25
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
26

27
/**
28
 * Simple factory for Jackson {@link ObjectMapper} to read and write JSON with centralized mapping configuration.
29
 */
30
public class JsonMapping {
×
31

32
  /**
33
   * @return a new instance of {@link ObjectMapper} pre-configured for reasonable JSON mapping.
34
   */
35
  public static ObjectMapper create() {
36

37
    ObjectMapper mapper = new ObjectMapper();
4✔
38
    mapper = mapper.registerModule(new JavaTimeModule());
6✔
39
    mapper = mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
5✔
40
    mapper = mapper.enable(SerializationFeature.INDENT_OUTPUT);
4✔
41
    mapper = mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
4✔
42
    mapper = mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
5✔
43
    SimpleModule customModule = new SimpleModule();
4✔
44
    customModule.addDeserializer(VersionIdentifier.class, new VersionIdentifierDeserializer());
7✔
45
    customModule.addDeserializer(VersionRange.class, new VersionRangeDeserializer());
7✔
46
    customModule.addSerializer(VersionRange.class, new VersionRangeSerializer());
7✔
47
    customModule.addKeyDeserializer(VersionRange.class, new VersionRangeKeyDeserializer());
7✔
48

49
    customModule.addDeserializer(ToolDependency.class, new ToolDependencyDeserializer());
7✔
50
    customModule.addDeserializer(ToolSecurity.class, new ToolSecurityJsonDeserializer());
7✔
51
    customModule.addDeserializer(Cve.class, new CveJsonDeserializer());
7✔
52

53
    customModule.addDeserializer(CustomToolJson.class, new CustomToolJsonDeserializer());
7✔
54
    customModule.addSerializer(CustomToolJson.class, new CustomToolJsonSerializer());
7✔
55
    customModule.addDeserializer(CustomToolsJson.class, new CustomToolsJsonDeserializer());
7✔
56
    customModule.addSerializer(CustomToolsJson.class, new CustomToolsJsonSerializer());
7✔
57
    mapper = mapper.registerModule(customModule);
4✔
58
    return mapper;
2✔
59
  }
60

61
  /**
62
   * @param p the {@link JsonParser}.
63
   * @throws IOException in case of an error.
64
   */
65
  public static void skipCurrentField(JsonParser p) throws IOException {
66

67
    JsonToken jsonToken = p.nextToken();
3✔
68
    if ((jsonToken == JsonToken.START_OBJECT) || (jsonToken == JsonToken.START_ARRAY)) {
6!
69
      p.skipChildren();
×
70
    }
71
  }
1✔
72

73
}
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