Skip to content

Commit 1984204

Browse files
committed
Merge branch '23557544-main'
2 parents eedce11 + 25ff092 commit 1984204

File tree

17 files changed

+548
-198
lines changed

17 files changed

+548
-198
lines changed

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/conditions/SpecPropertiesCondition.java

-59
This file was deleted.

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocSpecPropertiesConfiguration.java

+18-14
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@
2525
package org.springdoc.core.configuration;
2626

2727
import java.util.List;
28+
import java.util.Set;
2829

29-
import org.springdoc.core.conditions.SpecPropertiesCondition;
3030
import org.springdoc.core.customizers.SpecPropertiesCustomizer;
3131
import org.springdoc.core.models.GroupedOpenApi;
32+
import org.springdoc.core.properties.SpringDocConfigProperties;
33+
import org.springdoc.core.properties.SpringDocConfigProperties.GroupConfig;
3234

3335
import org.springframework.beans.factory.config.BeanPostProcessor;
3436
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3537
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3638
import org.springframework.context.annotation.Bean;
37-
import org.springframework.context.annotation.Conditional;
3839
import org.springframework.context.annotation.Configuration;
3940
import org.springframework.context.annotation.Lazy;
40-
import org.springframework.core.env.PropertyResolver;
4141

4242
/**
4343
* The type Spring doc specification string properties configuration.
@@ -47,7 +47,6 @@
4747
*/
4848
@Lazy(false)
4949
@Configuration(proxyBeanMethods = false)
50-
@Conditional(SpecPropertiesCondition.class)
5150
@ConditionalOnBean(SpringDocConfiguration.class)
5251
public class SpringDocSpecPropertiesConfiguration {
5352

@@ -61,9 +60,9 @@ public class SpringDocSpecPropertiesConfiguration {
6160
@ConditionalOnMissingBean
6261
@Lazy(false)
6362
SpecPropertiesCustomizer specificationStringPropertiesCustomizer(
64-
PropertyResolver propertyResolverUtils
63+
SpringDocConfigProperties springDocConfigProperties
6564
) {
66-
return new SpecPropertiesCustomizer(propertyResolverUtils);
65+
return new SpecPropertiesCustomizer(springDocConfigProperties);
6766
}
6867

6968
/**
@@ -76,9 +75,9 @@ SpecPropertiesCustomizer specificationStringPropertiesCustomizer(
7675
@ConditionalOnMissingBean
7776
@Lazy(false)
7877
SpecificationStringPropertiesCustomizerBeanPostProcessor specificationStringPropertiesCustomizerBeanPostProcessor(
79-
PropertyResolver propertyResolverUtils
78+
SpringDocConfigProperties springDocConfigProperties
8079
) {
81-
return new SpecificationStringPropertiesCustomizerBeanPostProcessor(propertyResolverUtils);
80+
return new SpecificationStringPropertiesCustomizerBeanPostProcessor(springDocConfigProperties);
8281
}
8382

8483

@@ -87,20 +86,25 @@ SpecificationStringPropertiesCustomizerBeanPostProcessor specificationStringProp
8786
*/
8887
private static class SpecificationStringPropertiesCustomizerBeanPostProcessor implements BeanPostProcessor {
8988

90-
private final PropertyResolver propertyResolverUtils;
89+
private final SpringDocConfigProperties springDocConfigProperties;
9190

9291
public SpecificationStringPropertiesCustomizerBeanPostProcessor(
93-
PropertyResolver propertyResolverUtils
92+
SpringDocConfigProperties springDocConfigProperties
9493
) {
95-
this.propertyResolverUtils = propertyResolverUtils;
94+
this.springDocConfigProperties = springDocConfigProperties;
9695
}
9796

9897
@Override
9998
public Object postProcessAfterInitialization(Object bean, String beanName) {
10099
if (bean instanceof GroupedOpenApi groupedOpenApi) {
101-
groupedOpenApi.addAllOpenApiCustomizer(List.of(new SpecPropertiesCustomizer(
102-
propertyResolverUtils, groupedOpenApi.getGroup()
103-
)));
100+
Set<GroupConfig> groupConfigs = springDocConfigProperties.getGroupConfigs();
101+
for (GroupConfig groupConfig : groupConfigs) {
102+
if(groupConfig.getGroup().equals(groupedOpenApi.getGroup())) {
103+
groupedOpenApi.addAllOpenApiCustomizer(List.of(new SpecPropertiesCustomizer(
104+
groupConfig.getOpenApi()
105+
)));
106+
}
107+
}
104108
}
105109
return bean;
106110
}

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

+6
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@
2525
package org.springdoc.core.configurer;
2626

2727
import java.util.List;
28+
import java.util.Optional;
2829

2930
import io.swagger.v3.oas.models.OpenAPI;
3031
import org.apache.commons.lang3.StringUtils;
32+
import org.springdoc.core.customizers.SpecPropertiesCustomizer;
3133
import org.springdoc.core.models.GroupedOpenApi;
3234
import org.springdoc.core.properties.SpringDocConfigProperties;
3335
import org.springdoc.core.service.OpenAPIService;
@@ -46,6 +48,7 @@
4648

4749
/**
4850
* The type Springdoc bean factory configurer.
51+
*
4952
* @author bnasslahsen
5053
*/
5154
public class SpringdocBeanFactoryConfigurer implements EnvironmentAware, BeanFactoryPostProcessor {
@@ -98,6 +101,9 @@ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
98101
builder.packagesToExclude(elt.getPackagesToExclude().toArray(new String[0]));
99102
if (StringUtils.isNotEmpty(elt.getDisplayName()))
100103
builder.displayName(elt.getDisplayName());
104+
if (Optional.ofNullable(elt.getOpenApi()).isPresent()) {
105+
builder.addOpenApiCustomizer(new SpecPropertiesCustomizer(elt.getOpenApi()));
106+
}
101107
return builder.group(elt.getGroup()).build();
102108
})
103109
.toList();

0 commit comments

Comments
 (0)