Skip to content

Commit

Permalink
Update to Spring Boot 2.6.0, fixes #93, #92, #91
Browse files Browse the repository at this point in the history
  • Loading branch information
dependabot[bot] authored and neiser committed Nov 24, 2021
1 parent aa70c65 commit 587df6a
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 5 deletions.
2 changes: 1 addition & 1 deletion demo/openapi-generator-for-spring-demo-webflux/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<version>2.6.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>de.qaware.tools.openapi-generator-for-spring.demo</groupId>
Expand Down
2 changes: 1 addition & 1 deletion demo/openapi-generator-for-spring-demo-webmvc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<version>2.6.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>de.qaware.tools.openapi-generator-for-spring.demo</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import de.qaware.openapigeneratorforspring.common.web.OpenApiResource;
import de.qaware.openapigeneratorforspring.webmvc.HandlerMethodsProviderForWebMvc;
import de.qaware.openapigeneratorforspring.webmvc.OpenApiRequestAwareSupplierForWebMvc;
import lombok.val;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
Expand All @@ -50,12 +51,27 @@ public InitializingBean openApiResourceRegistration(
RequestMappingHandlerMapping requestMappingHandlerMapping
) {
return () -> openApiResource.registerMapping(
(path, produces) -> RequestMappingInfo.paths(path).methods(GET).produces(produces).build(),
(path, produces) -> RequestMappingInfo.paths(path).methods(GET).produces(produces).options(buildRequestMappingInfoOptions(requestMappingHandlerMapping)).build(),
requestMappingHandlerMapping::registerMapping,
openApiResource
);
}

private RequestMappingInfo.BuilderConfiguration buildRequestMappingInfoOptions(RequestMappingHandlerMapping requestMappingHandlerMapping) {
val config = new RequestMappingInfo.BuilderConfiguration();
config.setTrailingSlashMatch(requestMappingHandlerMapping.useTrailingSlashMatch());
config.setContentNegotiationManager(requestMappingHandlerMapping.getContentNegotiationManager());

if (requestMappingHandlerMapping.getPatternParser() != null) {
config.setPatternParser(requestMappingHandlerMapping.getPatternParser());
} else {
config.setSuffixPatternMatch(requestMappingHandlerMapping.useSuffixPatternMatch());
config.setRegisteredSuffixPatternMatch(requestMappingHandlerMapping.useRegisteredSuffixPatternMatch());
config.setPathMatcher(requestMappingHandlerMapping.getPathMatcher());
}
return config;
}

@Bean
@ConditionalOnMissingBean
public HandlerMethodsProvider handlerMethodsProviderFromWebMvc(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,15 @@
import de.qaware.openapigeneratorforspring.common.paths.SpringWebHandlerMethodBuilder;
import de.qaware.openapigeneratorforspring.common.paths.SpringWebRequestMethodEnumMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.web.servlet.mvc.condition.PathPatternsRequestCondition;
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.util.pattern.PathPattern;

import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

@RequiredArgsConstructor
Expand All @@ -42,9 +48,22 @@ public List<HandlerMethodWithInfo> getHandlerMethods() {
return requestMappingHandlerMapping.getHandlerMethods().entrySet().stream()
.map(entry -> new HandlerMethodWithInfo(
springWebHandlerMethodBuilder.build(entry.getValue()),
entry.getKey().getPatternsCondition().getPatterns(),
findPatterns(entry.getKey()),
springWebRequestMethodEnumMapper.map(entry.getKey().getMethodsCondition().getMethods())
))
.collect(Collectors.toList());
}

private Set<String> findPatterns(RequestMappingInfo requestMappingInfo) {
PatternsRequestCondition patternsCondition = requestMappingInfo.getPatternsCondition();
PathPatternsRequestCondition pathPatternsCondition = requestMappingInfo.getPathPatternsCondition();
if (patternsCondition != null) {
return patternsCondition.getPatterns();
} else if (pathPatternsCondition != null) {
return pathPatternsCondition.getPatterns().stream()
.map(PathPattern::getPatternString)
.collect(Collectors.toSet());
}
return Collections.emptySet();
}
}
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<version>2.6.0</version>
</parent>

<groupId>de.qaware.tools.openapi-generator-for-spring</groupId>
Expand Down

0 comments on commit 587df6a

Please sign in to comment.