Skip to content

Commit c1fcc48

Browse files
committed
code review
1 parent eb3a6be commit c1fcc48

13 files changed

Lines changed: 64 additions & 50 deletions

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configurer/SpringdocBeanFactoryConfigurer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
package org.springdoc.core.configurer;
2828

2929
import java.util.List;
30-
import java.util.Optional;
3130

3231
import io.swagger.v3.oas.models.OpenAPI;
3332
import org.apache.commons.lang3.StringUtils;
@@ -103,7 +102,7 @@ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
103102
builder.packagesToExclude(elt.getPackagesToExclude().toArray(new String[0]));
104103
if (StringUtils.isNotEmpty(elt.getDisplayName()))
105104
builder.displayName(elt.getDisplayName());
106-
if (Optional.ofNullable(elt.getOpenApi()).isPresent()) {
105+
if (elt.getOpenApi() != null) {
107106
builder.addOpenApiCustomizer(new SpecPropertiesCustomizer(elt.getOpenApi()));
108107
}
109108
return builder.group(elt.getGroup()).build();

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/models/MethodAttributes.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -436,15 +436,17 @@ public Map<String, String> getHeaders() {
436436
private void setHeaders(String[] headers) {
437437
if (ArrayUtils.isNotEmpty(headers))
438438
for (String header : headers) {
439-
if (!header.contains("!=")) {
440-
String[] keyValueHeader = header.split("=");
441-
String headerValue = keyValueHeader.length > 1 ? keyValueHeader[1] : "";
442-
this.headers.put(keyValueHeader[0], headerValue);
439+
int neqIdx = header.indexOf("!=");
440+
if (neqIdx < 0) {
441+
int eqIdx = header.indexOf('=');
442+
String key = eqIdx >= 0 ? header.substring(0, eqIdx) : header;
443+
String headerValue = eqIdx >= 0 ? header.substring(eqIdx + 1) : "";
444+
this.headers.put(key, headerValue);
443445
}
444446
else {
445-
String[] keyValueHeader = header.split("!=");
446-
if (!this.headers.containsKey(keyValueHeader[0]))
447-
this.headers.put(keyValueHeader[0], StringUtils.EMPTY);
447+
String key = header.substring(0, neqIdx);
448+
if (!this.headers.containsKey(key))
449+
this.headers.put(key, StringUtils.EMPTY);
448450
}
449451
}
450452
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/AbstractRequestService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public abstract class AbstractRequestService {
128128
/**
129129
* The constant PARAM_TYPES_TO_IGNORE.
130130
*/
131-
private static final List<Class<?>> PARAM_TYPES_TO_IGNORE = Collections.synchronizedList(new ArrayList<>());
131+
private static final List<Class<?>> PARAM_TYPES_TO_IGNORE = Collections.synchronizedList(new ArrayList<>(19));
132132

133133
static {
134134
PARAM_TYPES_TO_IGNORE.add(WebRequest.class);

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/GenericParameterService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public class GenericParameterService {
107107
/**
108108
* The constant FILE_TYPES.
109109
*/
110-
private static final List<Class<?>> FILE_TYPES = Collections.synchronizedList(new ArrayList<>());
110+
private static final List<Class<?>> FILE_TYPES = Collections.synchronizedList(new ArrayList<>(3));
111111

112112
/**
113113
* The constant LOGGER.

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/GenericResponseService.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,10 @@ public static void buildContentFromDoc(Components components, ApiResponses apiRe
192192
if (optionalContent.isPresent()) {
193193
Content newContent = optionalContent.get();
194194
if (methodAttributes.isMethodOverloaded() && existingContent != null) {
195-
Arrays.stream(methodAttributes.getMethodProduces()).filter(mediaTypeStr -> (newContent.get(mediaTypeStr) != null)).forEach(mediaTypeStr -> {
196-
if (newContent.get(mediaTypeStr).getSchema() != null)
197-
mergeSchema(existingContent, newContent.get(mediaTypeStr).getSchema(), mediaTypeStr);
195+
Arrays.stream(methodAttributes.getMethodProduces()).forEach(mediaTypeStr -> {
196+
io.swagger.v3.oas.models.media.MediaType mediaType = newContent.get(mediaTypeStr);
197+
if (mediaType != null && mediaType.getSchema() != null)
198+
mergeSchema(existingContent, mediaType.getSchema(), mediaTypeStr);
198199
});
199200
apiResponse.content(existingContent);
200201
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/OpenAPIService.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import java.util.Set;
4545
import java.util.function.Consumer;
4646
import java.util.function.Supplier;
47+
import java.util.regex.Pattern;
4748
import java.util.stream.Collectors;
4849
import java.util.stream.Stream;
4950

@@ -113,6 +114,12 @@ public class OpenAPIService implements ApplicationContextAware {
113114
*/
114115
private static final Logger LOGGER = LoggerFactory.getLogger(OpenAPIService.class);
115116

117+
/**
118+
* The constant CAMEL_CASE_PATTERN.
119+
*/
120+
private static final Pattern CAMEL_CASE_PATTERN = Pattern.compile(
121+
"(?<=[A-Z])(?=[A-Z][a-z])|(?<=[^A-Z])(?=[A-Z])|(?<=[A-Za-z])(?=[^A-Za-z])");
122+
116123
/**
117124
* The Basic error controller.
118125
*/
@@ -220,13 +227,7 @@ public OpenAPIService(Optional<OpenAPI> openAPI, SecurityService securityParser,
220227
* @return the string
221228
*/
222229
public static String splitCamelCase(String str) {
223-
return str.replaceAll(
224-
String.format(
225-
"%s|%s|%s",
226-
"(?<=[A-Z])(?=[A-Z][a-z])",
227-
"(?<=[^A-Z])(?=[A-Z])",
228-
"(?<=[A-Za-z])(?=[^A-Za-z])"),
229-
"-")
230+
return CAMEL_CASE_PATTERN.matcher(str).replaceAll("-")
230231
.toLowerCase(Locale.ROOT);
231232
}
232233

@@ -277,7 +278,7 @@ else if (calculatedOpenAPI != null && calculatedOpenAPI.getInfo() == null) {
277278
private void initializeHiddenRestController() {
278279
if (basicErrorController != null)
279280
getConfig().addHiddenRestControllers(basicErrorController);
280-
List<Class<?>> hiddenRestControllers = this.mappingsMap.entrySet().parallelStream()
281+
List<Class<?>> hiddenRestControllers = this.mappingsMap.entrySet().stream()
281282
.filter(controller -> (AnnotationUtils.findAnnotation(controller.getValue().getClass(),
282283
Hidden.class) != null)).map(controller -> controller.getValue().getClass())
283284
.collect(Collectors.toList());
@@ -295,9 +296,7 @@ public void updateServers(String serverBaseUrl, OpenAPI openAPI) {
295296
if (!isServersPresent && serverBaseUrl != null) // default server value
296297
{
297298
Server server = new Server().url(serverBaseUrl).description(DEFAULT_SERVER_DESCRIPTION);
298-
List<Server> servers = new ArrayList<>();
299-
servers.add(server);
300-
openAPI.setServers(servers);
299+
openAPI.setServers(new ArrayList<>(Collections.singletonList(server)));
301300
}
302301
}
303302

@@ -551,7 +550,7 @@ public Webhooks[] getWebhooks(Class<?>[] classes) {
551550
}
552551
}
553552

554-
return allWebhooks.toArray(new Webhooks[0]);
553+
return allWebhooks.toArray(new Webhooks[allWebhooks.size()]);
555554
}
556555

557556

@@ -595,7 +594,7 @@ public Class<?>[] getWebhooksClasses() {
595594
}
596595
}
597596

598-
return allWebhookClassesToScan.toArray(new Class<?>[0]);
597+
return allWebhookClassesToScan.toArray(new Class<?>[allWebhookClassesToScan.size()]);
599598
}
600599

601600

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/RequestBodyService.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,10 @@ private void buildRequestBodyContent(io.swagger.v3.oas.annotations.parameters.Re
168168
if (optionalContent.isPresent() && existingContent != null) {
169169
Content newContent = optionalContent.get();
170170
if (methodAttributes.isMethodOverloaded()) {
171-
Arrays.stream(methodAttributes.getMethodProduces()).filter(mediaTypeStr -> (newContent.get(mediaTypeStr) != null)).forEach(mediaTypeStr -> {
172-
if (newContent.get(mediaTypeStr).getSchema() != null)
173-
mergeSchema(existingContent, newContent.get(mediaTypeStr).getSchema(), mediaTypeStr);
171+
Arrays.stream(methodAttributes.getMethodProduces()).forEach(mediaTypeStr -> {
172+
io.swagger.v3.oas.models.media.MediaType mediaType = newContent.get(mediaTypeStr);
173+
if (mediaType != null && mediaType.getSchema() != null)
174+
mergeSchema(existingContent, mediaType.getSchema(), mediaTypeStr);
174175
});
175176
requestBodyObject.content(existingContent);
176177
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/SecurityService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public io.swagger.v3.oas.annotations.security.SecurityRequirement[] getSecurityR
131131
Method method = handlerMethod.getMethod();
132132
allSecurityTags = getSecurityRequirementsForMethod(method, allSecurityTags);
133133

134-
return (allSecurityTags != null) ? allSecurityTags.toArray(new io.swagger.v3.oas.annotations.security.SecurityRequirement[0]) : null;
134+
return (allSecurityTags != null) ? allSecurityTags.toArray(new io.swagger.v3.oas.annotations.security.SecurityRequirement[allSecurityTags.size()]) : null;
135135
}
136136

137137
/**
@@ -201,7 +201,7 @@ public Optional<List<SecurityRequirement>> getSecurityRequirements(
201201
io.swagger.v3.oas.annotations.security.SecurityRequirement[] securityRequirementsApi) {
202202
if (securityRequirementsApi == null || securityRequirementsApi.length == 0)
203203
return Optional.empty();
204-
List<SecurityRequirement> securityRequirements = new ArrayList<>();
204+
List<SecurityRequirement> securityRequirements = new ArrayList<>(securityRequirementsApi.length);
205205
for (io.swagger.v3.oas.annotations.security.SecurityRequirement securityRequirementApi : securityRequirementsApi) {
206206
if (StringUtils.isBlank(securityRequirementApi.name()))
207207
continue;

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/EntityInfo.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
package org.springdoc.core.utils;
2828

29-
import java.util.ArrayList;
30-
import java.util.List;
29+
import java.util.HashSet;
30+
import java.util.Set;
3131

3232
/**
3333
* The type Entity info.
@@ -39,12 +39,12 @@ public class EntityInfo {
3939
/**
4040
* The Ignored fields.
4141
*/
42-
private List<String> ignoredFields = new ArrayList<>();
42+
private Set<String> ignoredFields = new HashSet<>();
4343

4444
/**
4545
* The Associations fields.
4646
*/
47-
private List<String> associationsFields;
47+
private Set<String> associationsFields;
4848

4949
/**
5050
* The Domain type.
@@ -56,7 +56,7 @@ public class EntityInfo {
5656
*
5757
* @return the ignored fields
5858
*/
59-
public List<String> getIgnoredFields() {
59+
public Set<String> getIgnoredFields() {
6060
return ignoredFields;
6161
}
6262

@@ -65,7 +65,7 @@ public List<String> getIgnoredFields() {
6565
*
6666
* @param ignoredFields the ignored fields
6767
*/
68-
public void setIgnoredFields(List<String> ignoredFields) {
68+
public void setIgnoredFields(Set<String> ignoredFields) {
6969
this.ignoredFields = ignoredFields;
7070
}
7171

@@ -74,7 +74,7 @@ public void setIgnoredFields(List<String> ignoredFields) {
7474
*
7575
* @return the associations fields
7676
*/
77-
public List<String> getAssociationsFields() {
77+
public Set<String> getAssociationsFields() {
7878
return associationsFields;
7979
}
8080

@@ -83,7 +83,7 @@ public List<String> getAssociationsFields() {
8383
*
8484
* @param associationsFields the associations fields
8585
*/
86-
public void setAssociationsFields(List<String> associationsFields) {
86+
public void setAssociationsFields(Set<String> associationsFields) {
8787
this.associationsFields = associationsFields;
8888
}
8989

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/PropertyResolverUtils.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.HashMap;
3131
import java.util.Locale;
3232
import java.util.Map;
33+
import java.util.regex.Pattern;
3334
import java.util.stream.Collectors;
3435

3536
import io.swagger.v3.oas.models.SpecVersion;
@@ -54,6 +55,11 @@ public class PropertyResolverUtils {
5455
*/
5556
private static final Logger LOGGER = LoggerFactory.getLogger(PropertyResolverUtils.class);
5657

58+
/**
59+
* The constant LINE_SPLIT_PATTERN.
60+
*/
61+
private static final Pattern LINE_SPLIT_PATTERN = Pattern.compile("\\r?\\n");
62+
5763
/**
5864
* The Factory.
5965
*/
@@ -125,7 +131,7 @@ public String trimIndent(String text) {
125131
return null;
126132
}
127133
final String newLine = "\n";
128-
String[] lines = text.split("\\r?\\n");
134+
String[] lines = LINE_SPLIT_PATTERN.split(text);
129135
int minIndent = resolveMinIndent(lines);
130136
try {
131137
return Arrays.stream(lines)

0 commit comments

Comments
 (0)