Skip to content

Commit 5eb8b82

Browse files
committed
springdoc-ui 2.8.15> doesn't work with native compile GraalVM 25. Fixes #3205
1 parent 1ae99fc commit 5eb8b82

4 files changed

Lines changed: 15 additions & 11 deletions

File tree

springdoc-openapi-starter-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.springdoc.core.providers.SpringWebProvider;
3838
import org.springdoc.webflux.core.providers.SpringWebFluxProvider;
3939

40+
import org.springframework.beans.factory.ObjectProvider;
4041
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
4142
import org.springframework.boot.actuate.autoconfigure.web.server.ConditionalOnManagementPort;
4243
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
@@ -84,7 +85,7 @@ public class SwaggerConfig implements WebFluxConfigurer {
8485
@ConditionalOnMissingBean
8586
@ConditionalOnProperty(name = SPRINGDOC_USE_MANAGEMENT_PORT, havingValue = "false", matchIfMissing = true)
8687
@Lazy(false)
87-
SwaggerWelcomeWebFlux swaggerWelcome(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, SpringWebProvider springWebProvider) {
88+
SwaggerWelcomeWebFlux swaggerWelcome(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, ObjectProvider<SpringWebProvider> springWebProvider) {
8889
return new SwaggerWelcomeWebFlux(swaggerUiConfig, springDocConfigProperties, springWebProvider);
8990
}
9091

springdoc-openapi-starter-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerWelcomeWebFlux.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springdoc.core.providers.SpringWebProvider;
3434
import reactor.core.publisher.Mono;
3535

36+
import org.springframework.beans.factory.ObjectProvider;
3637
import org.springframework.stereotype.Controller;
3738
import org.springframework.web.bind.annotation.GetMapping;
3839
import org.springframework.web.server.ServerWebExchange;
@@ -52,7 +53,7 @@ public class SwaggerWelcomeWebFlux extends SwaggerWelcomeCommon {
5253
/**
5354
* The Spring web provider.
5455
*/
55-
private final SpringWebProvider springWebProvider;
56+
private final ObjectProvider<SpringWebProvider> springWebProvider;
5657

5758
/**
5859
* Instantiates a new Swagger welcome web flux.
@@ -61,7 +62,7 @@ public class SwaggerWelcomeWebFlux extends SwaggerWelcomeCommon {
6162
* @param springDocConfigProperties the spring doc config properties
6263
* @param springWebProvider the spring web provider
6364
*/
64-
public SwaggerWelcomeWebFlux(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, SpringWebProvider springWebProvider) {
65+
public SwaggerWelcomeWebFlux(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, ObjectProvider<SpringWebProvider> springWebProvider) {
6566
super(swaggerUiConfig, springDocConfigProperties);
6667
this.springWebProvider = springWebProvider;
6768
}
@@ -94,7 +95,7 @@ protected void buildApiDocUrl(SwaggerUiConfigParameters swaggerUiConfigParameter
9495
@Override
9596
protected String buildUrlWithContextPath(SwaggerUiConfigParameters swaggerUiConfigParameters, String swaggerUiUrl) {
9697
if (swaggerUiConfigParameters.getPathPrefix() == null)
97-
swaggerUiConfigParameters.setPathPrefix(springWebProvider.findPathPrefix(springDocConfigProperties));
98+
swaggerUiConfigParameters.setPathPrefix(springWebProvider.getIfAvailable().findPathPrefix(springDocConfigProperties));
9899
if (swaggerUiUrl.startsWith(swaggerUiConfigParameters.getPathPrefix())) {
99100
return buildUrl(swaggerUiConfigParameters.getContextPath(), swaggerUiUrl);
100101
}

springdoc-openapi-starter-webmvc-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerConfig.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.springdoc.core.providers.SpringWebProvider;
3636
import org.springdoc.webmvc.core.providers.SpringWebMvcProvider;
3737

38+
import org.springframework.beans.factory.ObjectProvider;
3839
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
3940
import org.springframework.boot.actuate.autoconfigure.web.server.ConditionalOnManagementPort;
4041
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
@@ -74,15 +75,15 @@ public class SwaggerConfig {
7475
*
7576
* @param swaggerUiConfig the swagger ui config
7677
* @param springDocConfigProperties the spring doc config properties
77-
* @param springWebProvider the spring web provider
78+
* @param springWebProviderObjectProvider the spring web provider
7879
* @return the swagger welcome web mvc
7980
*/
8081
@Bean
8182
@ConditionalOnMissingBean
8283
@ConditionalOnProperty(name = SPRINGDOC_USE_MANAGEMENT_PORT, havingValue = "false", matchIfMissing = true)
8384
@Lazy(false)
84-
SwaggerWelcomeWebMvc swaggerWelcome(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, @Lazy SpringWebProvider springWebProvider) {
85-
return new SwaggerWelcomeWebMvc(swaggerUiConfig, springDocConfigProperties, springWebProvider);
85+
SwaggerWelcomeWebMvc swaggerWelcome(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, ObjectProvider<SpringWebProvider> springWebProviderObjectProvider) {
86+
return new SwaggerWelcomeWebMvc(swaggerUiConfig, springDocConfigProperties, springWebProviderObjectProvider);
8687
}
8788

8889
/**

springdoc-openapi-starter-webmvc-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeWebMvc.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springdoc.core.properties.SwaggerUiConfigProperties;
3434
import org.springdoc.core.providers.SpringWebProvider;
3535

36+
import org.springframework.beans.factory.ObjectProvider;
3637
import org.springframework.beans.factory.annotation.Value;
3738
import org.springframework.http.ResponseEntity;
3839
import org.springframework.stereotype.Controller;
@@ -54,8 +55,8 @@ public class SwaggerWelcomeWebMvc extends SwaggerWelcomeCommon {
5455
/**
5556
* The Spring web provider.
5657
*/
57-
private final SpringWebProvider springWebProvider;
58-
58+
private final ObjectProvider<SpringWebProvider> springWebProvider;
59+
5960
/**
6061
* The Mvc servlet path.
6162
*/
@@ -70,7 +71,7 @@ public class SwaggerWelcomeWebMvc extends SwaggerWelcomeCommon {
7071
* @param springDocConfigProperties the spring doc config properties
7172
* @param springWebProvider the spring web provider
7273
*/
73-
public SwaggerWelcomeWebMvc(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, SpringWebProvider springWebProvider) {
74+
public SwaggerWelcomeWebMvc(SwaggerUiConfigProperties swaggerUiConfig, SpringDocConfigProperties springDocConfigProperties, ObjectProvider<SpringWebProvider> springWebProvider) {
7475
super(swaggerUiConfig, springDocConfigProperties);
7576
this.springWebProvider = springWebProvider;
7677
}
@@ -96,7 +97,7 @@ protected void buildApiDocUrl(SwaggerUiConfigParameters swaggerUiConfigParameter
9697
@Override
9798
protected String buildUrlWithContextPath(SwaggerUiConfigParameters swaggerUiConfigParameters, String swaggerUiUrl) {
9899
if (swaggerUiConfigParameters.getPathPrefix() == null)
99-
swaggerUiConfigParameters.setPathPrefix(springWebProvider.findPathPrefix(springDocConfigProperties));
100+
swaggerUiConfigParameters.setPathPrefix(springWebProvider.getIfAvailable().findPathPrefix(springDocConfigProperties));
100101
if (swaggerUiUrl.startsWith(swaggerUiConfigParameters.getPathPrefix())) {
101102
return buildUrl(swaggerUiConfigParameters.getContextPath(), swaggerUiUrl);
102103
}

0 commit comments

Comments
 (0)