|
19 | 19 | package org.springdoc.core;
|
20 | 20 |
|
21 | 21 | import java.net.URL;
|
22 |
| -import java.util.ArrayList; |
23 | 22 | import java.util.Comparator;
|
| 23 | +import java.util.HashSet; |
24 | 24 | import java.util.List;
|
25 | 25 | import java.util.Map;
|
| 26 | +import java.util.Objects; |
| 27 | +import java.util.Set; |
26 | 28 | import java.util.TreeMap;
|
27 | 29 | import java.util.stream.Collectors;
|
28 | 30 |
|
@@ -51,7 +53,7 @@ public class SwaggerUiConfigProperties {
|
51 | 53 |
|
52 | 54 | public static final String CONFIG_URL_PROPERTY = "configUrl";
|
53 | 55 |
|
54 |
| - private static List<SwaggerUrl> swaggerUrls = new ArrayList<>(); |
| 56 | + private static Set<SwaggerUrl> swaggerUrls = new HashSet<>(); |
55 | 57 |
|
56 | 58 | /**
|
57 | 59 | * The path for the Swagger UI pages to load. Will redirect to the springdoc.webjars.prefix property.
|
@@ -165,11 +167,11 @@ public static void addGroup(String group, String url) {
|
165 | 167 | swaggerUrls.add(swaggerUrl);
|
166 | 168 | }
|
167 | 169 |
|
168 |
| - public static List<SwaggerUrl> getSwaggerUrls() { |
| 170 | + public static Set<SwaggerUrl> getSwaggerUrls() { |
169 | 171 | return swaggerUrls;
|
170 | 172 | }
|
171 | 173 |
|
172 |
| - public static void setSwaggerUrls(List<SwaggerUrl> swaggerUrls) { |
| 174 | + public static void setSwaggerUrls(Set<SwaggerUrl> swaggerUrls) { |
173 | 175 | SwaggerUiConfigProperties.swaggerUrls = swaggerUrls;
|
174 | 176 | }
|
175 | 177 |
|
@@ -374,14 +376,14 @@ public boolean isValidUrl(String url) {
|
374 | 376 | }
|
375 | 377 | }
|
376 | 378 |
|
377 |
| - private void put(String urls, List<SwaggerUrl> swaggerUrls, Map<String, Object> params) { |
| 379 | + private void put(String urls, Set<SwaggerUrl> swaggerUrls, Map<String, Object> params) { |
378 | 380 | Comparator<SwaggerUrl> swaggerUrlComparator;
|
379 | 381 | if (groupsOrder.isAscending())
|
380 | 382 | swaggerUrlComparator = (h1, h2) -> h1.getName().compareTo(h2.getName());
|
381 | 383 | else
|
382 | 384 | swaggerUrlComparator = (h1, h2) -> h2.getName().compareTo(h1.getName());
|
383 | 385 |
|
384 |
| - swaggerUrls = swaggerUrls.stream().sorted(swaggerUrlComparator).filter(elt -> StringUtils.isNotEmpty(elt.getUrl())).collect(Collectors.toList()); |
| 386 | + swaggerUrls = swaggerUrls.stream().sorted(swaggerUrlComparator).filter(elt -> StringUtils.isNotEmpty(elt.getUrl())).collect(Collectors.toSet()); |
385 | 387 | if (!CollectionUtils.isEmpty(swaggerUrls)) {
|
386 | 388 | params.put(urls, swaggerUrls);
|
387 | 389 | }
|
@@ -416,6 +418,19 @@ public String getName() {
|
416 | 418 | public void setName(String name) {
|
417 | 419 | this.name = name;
|
418 | 420 | }
|
| 421 | + |
| 422 | + @Override |
| 423 | + public boolean equals(Object o) { |
| 424 | + if (this == o) return true; |
| 425 | + if (o == null || getClass() != o.getClass()) return false; |
| 426 | + SwaggerUrl that = (SwaggerUrl) o; |
| 427 | + return name.equals(that.name); |
| 428 | + } |
| 429 | + |
| 430 | + @Override |
| 431 | + public int hashCode() { |
| 432 | + return Objects.hash(name); |
| 433 | + } |
419 | 434 | }
|
420 | 435 |
|
421 | 436 | static enum Direction {
|
|
0 commit comments