Skip to content

Commit 1ca8bc5

Browse files
committedApr 1, 2024
Improve support for externalizing strings in generated openapi. Fixes #2418
1 parent 460d543 commit 1ca8bc5

File tree

5 files changed

+67
-1
lines changed

5 files changed

+67
-1
lines changed
 

Diff for: ‎CHANGELOG.md

+20
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.5.0] - 2024-04-01
9+
10+
### Added
11+
12+
- #2318 - Add Info to GroupedOpenAPI properties
13+
- #2554 - Remove duplicate words from comments
14+
- #2418 - Improve support for externalizing strings in generated openapi
15+
- #2535 - Add 'springdoc.trim-kotlin-indent' property to handle Kotlin multiline string indentation
16+
### Changed
17+
18+
- Upgrade spring-boot to 3.2.4
19+
- Upgrade swagger-core to 2.2.21
20+
- Upgrade swagger-ui to 5.13.0
21+
22+
### Fixed
23+
- #2525 - Inherited Methods Not Included in Swagger Documentation with @RouterOperation in Spring Boot WebFlux Application
24+
- #2526 - SpringDoc bean naming conflict error with GraphQL Spring boot starter
25+
- #2540 - Fix typo in SpringRepositoryRestResourceProvider.java
26+
- #2549 - Fix README.md
27+
828
## [2.4.0] - 2024-03-12
929

1030
### Added
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.springdoc.core.conditions;
2+
3+
/**
4+
* @author bnasslahsen
5+
*/
6+
7+
import java.util.Set;
8+
9+
import org.springdoc.core.properties.SpringDocConfigProperties;
10+
import org.springdoc.core.properties.SpringDocConfigProperties.GroupConfig;
11+
12+
import org.springframework.boot.context.properties.bind.BindResult;
13+
import org.springframework.boot.context.properties.bind.Binder;
14+
import org.springframework.context.annotation.Condition;
15+
import org.springframework.context.annotation.ConditionContext;
16+
import org.springframework.core.type.AnnotatedTypeMetadata;
17+
18+
import static org.springdoc.core.utils.Constants.SPRINGDOC_PREFIX;
19+
20+
/**
21+
* The type Spec properties condition.
22+
*
23+
* @author bnasslahsen
24+
*/
25+
public class SpecPropertiesCondition implements Condition {
26+
27+
@Override
28+
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
29+
final BindResult<SpringDocConfigProperties> result = Binder.get(context.getEnvironment())
30+
.bind(SPRINGDOC_PREFIX, SpringDocConfigProperties.class);
31+
if (result.isBound()) {
32+
SpringDocConfigProperties springDocConfigProperties = result.get();
33+
if (springDocConfigProperties.getOpenApi() != null)
34+
return true;
35+
Set<GroupConfig> groupConfigs = springDocConfigProperties.getGroupConfigs();
36+
return groupConfigs.stream().anyMatch(config -> config.getOpenApi() != null);
37+
}
38+
return false;
39+
}
40+
41+
}

Diff for: ‎springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocSpecPropertiesConfiguration.java

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.List;
2828
import java.util.Set;
2929

30+
import org.springdoc.core.conditions.SpecPropertiesCondition;
3031
import org.springdoc.core.customizers.SpecPropertiesCustomizer;
3132
import org.springdoc.core.models.GroupedOpenApi;
3233
import org.springdoc.core.properties.SpringDocConfigProperties;
@@ -36,6 +37,7 @@
3637
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3738
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3839
import org.springframework.context.annotation.Bean;
40+
import org.springframework.context.annotation.Conditional;
3941
import org.springframework.context.annotation.Configuration;
4042
import org.springframework.context.annotation.Lazy;
4143

@@ -48,6 +50,7 @@
4850
@Lazy(false)
4951
@Configuration(proxyBeanMethods = false)
5052
@ConditionalOnBean(SpringDocConfiguration.class)
53+
@Conditional(SpecPropertiesCondition.class)
5154
public class SpringDocSpecPropertiesConfiguration {
5255

5356
/**

Diff for: ‎springdoc-openapi-starter-webmvc-api/src/test/resources/application-212.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ springdoc:
4242
example: Example value for 'name' property in ApiGroupName
4343

4444
paths:
45-
/persons:
45+
/persons2:
4646
get:
4747
summary: Summary of operationId 'persons' in ApiGroupName
4848
description: Description of operationId 'persons' in ApiGroupName

Diff for: ‎springdoc-openapi-starter-webmvc-api/src/test/resources/results/3.0.1/app212-grouped.json

+2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
"tags": [
6060
"hello-controller"
6161
],
62+
"summary": "Summary of operationId 'persons' in ApiGroupName",
63+
"description": "Description of operationId 'persons' in ApiGroupName",
6264
"operationId": "persons2",
6365
"responses": {
6466
"200": {

0 commit comments

Comments
 (0)