Skip to content

Commit 4e846c3

Browse files
author
bnasslahsen
committed
project review
1 parent 28e3f97 commit 4e846c3

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/core/SwaggerUiConfigProperties.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919
package org.springdoc.core;
2020

2121
import java.net.URL;
22-
import java.util.ArrayList;
2322
import java.util.Comparator;
23+
import java.util.HashSet;
2424
import java.util.List;
2525
import java.util.Map;
26+
import java.util.Objects;
27+
import java.util.Set;
2628
import java.util.TreeMap;
2729
import java.util.stream.Collectors;
2830

@@ -51,7 +53,7 @@ public class SwaggerUiConfigProperties {
5153

5254
public static final String CONFIG_URL_PROPERTY = "configUrl";
5355

54-
private static List<SwaggerUrl> swaggerUrls = new ArrayList<>();
56+
private static Set<SwaggerUrl> swaggerUrls = new HashSet<>();
5557

5658
/**
5759
* 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) {
165167
swaggerUrls.add(swaggerUrl);
166168
}
167169

168-
public static List<SwaggerUrl> getSwaggerUrls() {
170+
public static Set<SwaggerUrl> getSwaggerUrls() {
169171
return swaggerUrls;
170172
}
171173

172-
public static void setSwaggerUrls(List<SwaggerUrl> swaggerUrls) {
174+
public static void setSwaggerUrls(Set<SwaggerUrl> swaggerUrls) {
173175
SwaggerUiConfigProperties.swaggerUrls = swaggerUrls;
174176
}
175177

@@ -374,14 +376,14 @@ public boolean isValidUrl(String url) {
374376
}
375377
}
376378

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) {
378380
Comparator<SwaggerUrl> swaggerUrlComparator;
379381
if (groupsOrder.isAscending())
380382
swaggerUrlComparator = (h1, h2) -> h1.getName().compareTo(h2.getName());
381383
else
382384
swaggerUrlComparator = (h1, h2) -> h2.getName().compareTo(h1.getName());
383385

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());
385387
if (!CollectionUtils.isEmpty(swaggerUrls)) {
386388
params.put(urls, swaggerUrls);
387389
}
@@ -416,6 +418,19 @@ public String getName() {
416418
public void setName(String name) {
417419
this.name = name;
418420
}
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+
}
419434
}
420435

421436
static enum Direction {

springdoc-openapi-ui/src/test/java/test/org/springdoc/ui/app4/SpringDocApp4Test.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package test.org.springdoc.ui.app4;
2020

2121
import java.util.ArrayList;
22+
import java.util.HashSet;
2223

2324
import org.junit.jupiter.api.AfterEach;
2425
import org.junit.jupiter.api.Test;
@@ -49,6 +50,6 @@ public void swagger_config_for_multiple_groups() throws Exception {
4950

5051
@AfterEach
5152
public void reset() {
52-
SwaggerUiConfigProperties.setSwaggerUrls(new ArrayList<>());
53+
SwaggerUiConfigProperties.setSwaggerUrls(new HashSet<>());
5354
}
5455
}

springdoc-openapi-webflux-ui/src/main/java/org/springdoc/ui/SwaggerWelcome.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ public class SwaggerWelcome {
7575
@Bean
7676
@ConditionalOnProperty(name = SPRINGDOC_SWAGGER_UI_ENABLED, matchIfMissing = true)
7777
RouterFunction<ServerResponse> routerFunction() {
78+
buildConfigUrl();
7879
String baseUrl = webJarsPrefixUrl + SWAGGER_UI_URL;
7980
UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromUriString(baseUrl);
80-
buildConfigUrl();
8181
uriBuilder.queryParam(SwaggerUiConfigProperties.CONFIG_URL_PROPERTY, swaggerUiConfig.getConfigUrl());
8282
return route(GET(uiPath),
8383
req -> ServerResponse.temporaryRedirect(URI.create(uriBuilder.build().encode().toString())).build());

0 commit comments

Comments
 (0)