Skip to content

Commit 9d7f6ae

Browse files
committed
Moving to OpenAPI 3.1 as the default implementation for springdoc-openapi. Fixes #2790
1 parent d003748 commit 9d7f6ae

File tree

23 files changed

+39
-21
lines changed

23 files changed

+39
-21
lines changed

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java

+2
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,8 @@ private void trimIndentOperation(Operation operation) {
510510
*/
511511
protected void calculateWebhooks(OpenAPI calculatedOpenAPI, Locale locale) {
512512
Webhooks[] webhooksAttr = openAPIService.getWebhooks();
513+
if(ArrayUtils.isEmpty(webhooksAttr))
514+
return;
513515
var webhooks = Arrays.stream(webhooksAttr).map(Webhooks::value).flatMap(Arrays::stream).toArray(Webhook[]::new);
514516
Arrays.stream(webhooks).forEach(webhook -> {
515517
io.swagger.v3.oas.annotations.Operation apiOperation = webhook.operation();

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/properties/SpringDocConfigProperties.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1304,7 +1304,7 @@ public static class ApiDocs {
13041304
/**
13051305
* The OpenAPI version.
13061306
*/
1307-
private OpenApiVersion version;
1307+
private OpenApiVersion version = OpenApiVersion.OPENAPI_3_1;
13081308

13091309
/**
13101310
* Gets path.

Diff for: springdoc-openapi-starter-webflux-api/src/test/java/test/org/springdoc/api/AbstractCommonTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
import org.springframework.beans.factory.annotation.Autowired;
1212
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
1313
import org.springframework.test.context.ActiveProfiles;
14+
import org.springframework.test.context.TestPropertySource;
1415
import org.springframework.test.web.reactive.server.WebTestClient;
1516

1617
@AutoConfigureWebTestClient(timeout = "3600000")
1718
@ActiveProfiles("test")
19+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
1820
public abstract class AbstractCommonTest {
1921

2022
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractCommonTest.class);

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/AbstractCommonTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212
import org.springframework.beans.factory.annotation.Autowired;
1313
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
1414
import org.springframework.test.context.ActiveProfiles;
15+
import org.springframework.test.context.TestPropertySource;
1516
import org.springframework.test.web.reactive.server.WebTestClient;
1617

1718
@AutoConfigureWebTestClient(timeout = "3600000")
1819
@ActiveProfiles("test")
20+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
1921
public abstract class AbstractCommonTest {
2022

2123
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractCommonTest.class);

Diff for: springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/AbstractSpringDocV30Test.java

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import test.org.springdoc.api.AbstractCommonTest;
3030

3131
import org.springframework.boot.test.context.SpringBootTest;
32+
import org.springframework.test.context.TestPropertySource;
3233
import org.springframework.test.web.servlet.MvcResult;
3334

3435
import static org.hamcrest.Matchers.is;
@@ -38,6 +39,7 @@
3839
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
3940

4041
@SpringBootTest
42+
@TestPropertySource(properties = { "springdoc.api-docs.version=openapi_3_0" })
4143
public abstract class AbstractSpringDocV30Test extends AbstractCommonTest {
4244

4345
public static String className;

Diff for: springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/app136/SpringDocApp136Test.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
/**
5353
* Tests deterministic creation of operationIds
5454
*/
55-
@SpringBootTest(properties = { SPRINGDOC_CACHE_DISABLED + "=true" })
55+
@SpringBootTest(properties = { SPRINGDOC_CACHE_DISABLED + "=true", "springdoc.api-docs.version=openapi_3_0" })
5656
public class SpringDocApp136Test extends AbstractCommonTest {
5757

5858
@Autowired

Diff for: springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/app193/SpringDocApp193Test.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
4040
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
4141

42-
@SpringBootTest
42+
@SpringBootTest(properties = { "springdoc.api-docs.version=openapi_3_0" })
4343
public class SpringDocApp193Test extends AbstractCommonTest {
4444

4545
@Test

Diff for: springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/app209/SpringDocApp209Test.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656

5757
@SpringBootTest(properties = {
5858
"springdoc.pre-loading-enabled=true",
59-
"springdoc.pre-loading-locales=ja"
59+
"springdoc.pre-loading-locales=ja",
60+
"springdoc.api-docs.version=openapi_3_0"
6061
})
6162
public class SpringDocApp209Test extends AbstractCommonTest {
6263
public static String className;

Diff for: springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v31/AbstractSpringDocV31Test.java

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
4040

4141
@SpringBootTest
42-
@TestPropertySource(properties = { "springdoc.api-docs.version=openapi_3_1" })
4342
public abstract class AbstractSpringDocV31Test extends AbstractCommonTest {
4443

4544
public static String className;

Diff for: springdoc-openapi-starter-webmvc-ui/src/test/java/test/org/springdoc/ui/AbstractCommonTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
import org.springframework.beans.factory.annotation.Autowired;
1010
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
1111
import org.springframework.test.context.ActiveProfiles;
12+
import org.springframework.test.context.TestPropertySource;
1213
import org.springframework.test.web.servlet.MockMvc;
1314

1415
@AutoConfigureMockMvc
1516
@ActiveProfiles("test")
17+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
1618
public abstract class AbstractCommonTest {
1719

1820
@Autowired

Diff for: springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/src/test/java/test/org/springdoc/api/AbstractCommonTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
@AutoConfigureWebTestClient(timeout = "3600000")
2222
@ActiveProfiles("test")
23-
@TestPropertySource(properties = { "management.endpoints.enabled-by-default=false" })
23+
@TestPropertySource(properties = { "management.endpoints.enabled-by-default=false" , "springdoc.api-docs.version=openapi_3_0" })
2424
public abstract class AbstractCommonTest {
2525

2626
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractCommonTest.class);

Diff for: springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/src/test/java/test/org/springdoc/api/AbstractCommonTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
@AutoConfigureMockMvc
1515
@ActiveProfiles("test")
16-
@TestPropertySource(properties = { "management.endpoints.enabled-by-default=false" })
16+
@TestPropertySource(properties = { "management.endpoints.enabled-by-default=false" , "springdoc.api-docs.version=openapi_3_0" })
1717
public abstract class AbstractCommonTest {
1818

1919
@Autowired

Diff for: springdoc-openapi-tests/springdoc-openapi-data-rest-tests/src/test/java/test/org/springdoc/api/AbstractSpringDocTest.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,13 @@
2424
import java.nio.file.Paths;
2525

2626
import org.junit.jupiter.api.Test;
27-
import org.slf4j.Logger;
28-
import org.slf4j.LoggerFactory;
2927
import org.springdoc.core.utils.Constants;
3028

3129
import org.springframework.beans.factory.annotation.Autowired;
3230
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
3331
import org.springframework.boot.test.context.SpringBootTest;
3432
import org.springframework.test.context.ActiveProfiles;
33+
import org.springframework.test.context.TestPropertySource;
3534
import org.springframework.test.web.servlet.MockMvc;
3635
import org.springframework.test.web.servlet.MvcResult;
3736

@@ -44,10 +43,9 @@
4443
@ActiveProfiles("test")
4544
@SpringBootTest
4645
@AutoConfigureMockMvc
46+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
4747
public abstract class AbstractSpringDocTest {
4848

49-
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractSpringDocTest.class);
50-
5149
public static String className;
5250

5351
@Autowired

Diff for: springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/src/test/java/test/org/springdoc/api/AbstractCommonTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
import org.springframework.beans.factory.annotation.Autowired;
1212
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
1313
import org.springframework.test.context.ActiveProfiles;
14+
import org.springframework.test.context.TestPropertySource;
1415
import org.springframework.test.web.reactive.server.WebTestClient;
1516

1617
@AutoConfigureWebTestClient(timeout = "3600000")
1718
@ActiveProfiles("test")
19+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
1820
public abstract class AbstractCommonTest {
1921

2022
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractCommonTest.class);

Diff for: springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/src/test/java/test/org/springdoc/api/AbstractCommonTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
import org.springframework.beans.factory.annotation.Autowired;
99
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
1010
import org.springframework.test.context.ActiveProfiles;
11+
import org.springframework.test.context.TestPropertySource;
1112
import org.springframework.test.web.servlet.MockMvc;
1213

1314
@AutoConfigureMockMvc
1415
@ActiveProfiles("test")
16+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
1517
public abstract class AbstractCommonTest {
1618

1719
@Autowired

Diff for: springdoc-openapi-tests/springdoc-openapi-groovy-tests/src/test/groovy/test/org/springdoc/api/AbstractSpringDocTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
3333
import org.springframework.boot.test.context.SpringBootTest;
3434
import org.springframework.test.context.ActiveProfiles;
35+
import org.springframework.test.context.TestPropertySource;
3536
import org.springframework.test.web.servlet.MockMvc;
3637
import org.springframework.test.web.servlet.MvcResult;
3738

@@ -44,6 +45,7 @@
4445
@ActiveProfiles("test")
4546
@SpringBootTest
4647
@AutoConfigureMockMvc
48+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
4749
public abstract class AbstractSpringDocTest {
4850

4951
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractSpringDocTest.class);

Diff for: springdoc-openapi-tests/springdoc-openapi-hateoas-tests/src/test/java/test/org/springdoc/api/AbstractSpringDocTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
3737
import org.springframework.boot.test.context.SpringBootTest;
3838
import org.springframework.test.context.ActiveProfiles;
39+
import org.springframework.test.context.TestPropertySource;
3940
import org.springframework.test.web.servlet.MockMvc;
4041
import org.springframework.test.web.servlet.MvcResult;
4142

@@ -48,6 +49,7 @@
4849
@ActiveProfiles("test")
4950
@SpringBootTest
5051
@AutoConfigureMockMvc
52+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
5153
public abstract class AbstractSpringDocTest {
5254

5355
public static String className;

Diff for: springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/java/test/org/springdoc/api/AbstractSpringDocTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
3333
import org.springframework.boot.test.context.SpringBootTest;
3434
import org.springframework.test.context.ActiveProfiles;
35+
import org.springframework.test.context.TestPropertySource;
3536
import org.springframework.test.web.servlet.MockMvc;
3637
import org.springframework.test.web.servlet.MvcResult;
3738

@@ -47,6 +48,7 @@
4748
@ActiveProfiles("test")
4849
@SpringBootTest
4950
@AutoConfigureMockMvc
51+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
5052
public abstract class AbstractSpringDocTest {
5153

5254
/**

Diff for: springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/src/test/java/test/org/springdoc/api/AbstractSpringDocTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,15 @@
3131
import org.springframework.beans.factory.annotation.Autowired;
3232
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
3333
import org.springframework.test.context.ActiveProfiles;
34+
import org.springframework.test.context.TestPropertySource;
3435
import org.springframework.test.web.reactive.server.EntityExchangeResult;
3536
import org.springframework.test.web.reactive.server.WebTestClient;
3637

3738
import static org.skyscreamer.jsonassert.JSONAssert.assertEquals;
3839

3940
@WebFluxTest
4041
@ActiveProfiles("test")
42+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
4143
public abstract class AbstractSpringDocTest {
4244

4345
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractSpringDocTest.class);

Diff for: springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/src/test/kotlin/test/org/springdoc/api/AbstractKotlinSpringDocTest.kt

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired
2626
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient
2727
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest
2828
import org.springframework.test.context.ActiveProfiles
29+
import org.springframework.test.context.TestPropertySource
2930
import org.springframework.test.web.reactive.server.WebTestClient
3031
import java.nio.charset.StandardCharsets
3132
import java.nio.file.Files
@@ -34,6 +35,7 @@ import java.nio.file.Paths
3435
@WebFluxTest
3536
@ActiveProfiles("test")
3637
@AutoConfigureWebTestClient(timeout = "3600000")
38+
@TestPropertySource(properties = ["springdoc.api-docs.version=openapi_3_0"])
3739
abstract class AbstractKotlinSpringDocTest {
3840

3941
@Autowired

Diff for: springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/src/test/kotlin/test/org/springdoc/api/AbstractKotlinSpringDocMVCTest.kt

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired
2525
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
2626
import org.springframework.boot.test.context.SpringBootTest
2727
import org.springframework.test.context.ActiveProfiles
28+
import org.springframework.test.context.TestPropertySource
2829
import org.springframework.test.web.servlet.MockMvc
2930
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
3031
import org.springframework.test.web.servlet.result.MockMvcResultMatchers
@@ -35,6 +36,7 @@ import java.nio.file.Paths
3536
@SpringBootTest
3637
@AutoConfigureMockMvc
3738
@ActiveProfiles("test")
39+
@TestPropertySource(properties = ["springdoc.api-docs.version=openapi_3_0"])
3840
abstract class AbstractKotlinSpringDocMVCTest {
3941

4042
@Autowired

Diff for: springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/src/test/kotlin/test/org/springdoc/api/app13/SpringDocApp13Test.kt

+2-10
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,15 @@ package test.org.springdoc.api.app13
2121
import org.springdoc.core.properties.SpringDocConfigProperties
2222
import org.springdoc.core.properties.SpringDocConfigProperties.ApiDocs.OpenApiVersion
2323
import org.springframework.boot.autoconfigure.SpringBootApplication
24-
import org.springframework.boot.test.context.SpringBootTest
2524
import org.springframework.context.annotation.Bean
26-
import org.springframework.context.annotation.ComponentScan
27-
import org.springframework.context.annotation.Configuration
25+
import org.springframework.test.context.TestPropertySource
2826
import test.org.springdoc.api.AbstractKotlinSpringDocMVCTest
2927

30-
28+
@TestPropertySource(properties = ["springdoc.api-docs.version=openapi_3_1"])
3129
class SpringDocApp13Test : AbstractKotlinSpringDocMVCTest() {
3230

3331
@SpringBootApplication
3432
class DemoApplication {
35-
@Bean
36-
fun springDocConfigProperties():SpringDocConfigProperties{
37-
val x= SpringDocConfigProperties()
38-
x.apiDocs.version = OpenApiVersion.OPENAPI_3_1
39-
return x
40-
}
4133
}
4234

4335

Diff for: springdoc-openapi-tests/springdoc-openapi-security-tests/src/test/java/test/org/springdoc/api/AbstractSpringDocTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.boot.test.context.SpringBootTest;
3434
import org.springframework.context.annotation.Configuration;
3535
import org.springframework.test.context.ActiveProfiles;
36+
import org.springframework.test.context.TestPropertySource;
3637
import org.springframework.test.web.servlet.MockMvc;
3738
import org.springframework.test.web.servlet.MvcResult;
3839

@@ -45,6 +46,7 @@
4546
@ActiveProfiles("test")
4647
@SpringBootTest
4748
@AutoConfigureMockMvc
49+
@TestPropertySource(properties = "springdoc.api-docs.version=openapi_3_0" )
4850
public abstract class AbstractSpringDocTest {
4951

5052
public static String className;

0 commit comments

Comments
 (0)