|
1 | 1 | package com.freenow.sauron.plugins.elasticsearch; |
2 | 2 |
|
3 | 3 | import com.fasterxml.jackson.annotation.JsonAnyGetter; |
| 4 | +import com.fasterxml.jackson.annotation.JsonIgnore; |
4 | 5 | import com.fasterxml.jackson.annotation.JsonInclude; |
5 | 6 | import com.fasterxml.jackson.core.JsonProcessingException; |
6 | 7 | import com.fasterxml.jackson.databind.ObjectMapper; |
|
10 | 11 | import com.freenow.sauron.plugins.NormalizeDependencyVersion; |
11 | 12 | import com.freenow.sauron.plugins.ProjectType; |
12 | 13 | import lombok.Data; |
| 14 | +import lombok.extern.slf4j.Slf4j; |
13 | 15 | import org.cyclonedx.model.Component; |
14 | 16 | import org.cyclonedx.model.LicenseChoice; |
15 | 17 |
|
|
19 | 21 | import java.util.HashSet; |
20 | 22 | import java.util.List; |
21 | 23 | import java.util.Map; |
| 24 | +import java.util.Objects; |
22 | 25 | import java.util.Optional; |
23 | 26 | import java.util.Set; |
24 | 27 | import java.util.stream.Collectors; |
25 | 28 |
|
26 | 29 | import static ch.qos.logback.core.CoreConstants.EMPTY_STRING; |
27 | 30 |
|
| 31 | +@Slf4j |
28 | 32 | @Data |
29 | 33 | public class DependenciesModel |
30 | 34 | { |
@@ -62,6 +66,8 @@ public Map<String, Object> getDependencies() { |
62 | 66 | @Data |
63 | 67 | private static class Dependency |
64 | 68 | { |
| 69 | + @JsonIgnore |
| 70 | + private final String name; |
65 | 71 | private final String version; |
66 | 72 | private final String normalizedVersion; |
67 | 73 | private final String license; |
@@ -115,11 +121,18 @@ public static DependenciesModel from(DataSet dataSet, List<Component> dependenci |
115 | 121 | String license = licenses.stream().findFirst().flatMap(l -> Optional.ofNullable(l.getId())).orElse(EMPTY_STRING); |
116 | 122 |
|
117 | 123 | return new Dependency( |
| 124 | + determineKey(projectType, dependency), |
118 | 125 | version, |
119 | 126 | normalizedVersion, |
120 | 127 | license, |
121 | 128 | licenses |
122 | 129 | ); |
| 130 | + }, |
| 131 | + (dependency1, dependency2) -> { |
| 132 | + if (!Objects.equals(dependency1, dependency2)) { |
| 133 | + log.warn("Inconsistent duplicated dependency found: {}, {}", dependency1, dependency2); |
| 134 | + } |
| 135 | + return dependency1; |
123 | 136 | } |
124 | 137 | )) |
125 | 138 | ); |
|
0 commit comments