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

devonfw / IDEasy / 19679093058

25 Nov 2025 05:52PM UTC coverage: 69.131% (-0.02%) from 69.147%
19679093058

push

github

web-flow
#1593: #1144: #1145: fix json parsing in graalvm (#1610)

3640 of 5775 branches covered (63.03%)

Branch coverage included in aggregate %.

9450 of 13160 relevant lines covered (71.81%)

3.15 hits per line

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

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

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

23
/**
24
 * Simple factory for Jackson {@link ObjectMapper} to read and write JSON with centralized mapping configuration.
25
 */
26
public class JsonMapping {
×
27

28
  /**
29
   * @return a new instance of {@link ObjectMapper} pre-configured for reasonable JSON mapping.
30
   */
31
  public static ObjectMapper create() {
32

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

45
    customModule.addDeserializer(ToolDependency.class, new ToolDependencyDeserializer());
7✔
46
    customModule.addDeserializer(ToolSecurity.class, new ToolSecurityJsonDeserializer());
7✔
47
    customModule.addDeserializer(Cve.class, new CveJsonDeserializer());
7✔
48

49
    customModule.addDeserializer(CustomToolJson.class, new CustomToolJsonDeserializer());
7✔
50
    customModule.addSerializer(CustomToolJson.class, new CustomToolJsonSerializer());
7✔
51
    customModule.addDeserializer(CustomToolsJson.class, new CustomToolsJsonDeserializer());
7✔
52
    customModule.addSerializer(CustomToolsJson.class, new CustomToolsJsonSerializer());
7✔
53
    mapper = mapper.registerModule(customModule);
4✔
54
    return mapper;
2✔
55
  }
56

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