11package grails.springfox.sample
22
3- import com.fasterxml.classmate.TypeResolver
43import grails.boot.GrailsApp
54import grails.boot.config.GrailsAutoConfiguration
6- import grails.core.GrailsApplication
5+ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
76import org.springframework.context.annotation.Bean
87import org.springframework.context.annotation.Import
98import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
109import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
11- import springfox.documentation.grails.DefaultGrailsAlternateTypeRuleConvention
12- import springfox.documentation.grails.GrailsSerializationTypeGenerator
10+ import springfox.documentation.grails.DefaultGeneratedClassNamingStrategy
11+ import springfox.documentation.grails.DefaultGrailsPropertySelector
12+ import springfox.documentation.grails.DefaultGrailsPropertyTransformer
13+ import springfox.documentation.grails.GeneratedClassNamingStrategy
14+ import springfox.documentation.grails.GrailsPropertySelector
15+ import springfox.documentation.grails.GrailsPropertyTransformer
1316import springfox.documentation.grails.SpringfoxGrailsIntegrationConfiguration
17+ import springfox.documentation.schema.AlternateTypeRule
18+ import springfox.documentation.schema.AlternateTypeRuleConvention
1419import springfox.documentation.spi.DocumentationType
1520import springfox.documentation.spring.web.plugins.Docket
1621import springfox.documentation.swagger2.annotations.EnableSwagger2
@@ -26,20 +31,34 @@ class Application extends GrailsAutoConfiguration {
2631 }
2732
2833 @Bean
29- public DefaultGrailsAlternateTypeRuleConvention grailsModelConvention (
30- TypeResolver resolver ,
31- GrailsApplication grailsApplication ,
32- GrailsSerializationTypeGenerator typeGenerator ) {
33- new DefaultGrailsAlternateTypeRuleConvention (resolver, grailsApplication, typeGenerator)
34+ @ConditionalOnMissingBean (GrailsPropertySelector )
35+ GrailsPropertySelector propertySelector () {
36+ new DefaultGrailsPropertySelector ()
3437 }
3538
3639 @Bean
37- public Docket api () {
40+ @ConditionalOnMissingBean (GrailsPropertyTransformer )
41+ GrailsPropertyTransformer propertyTransformer () {
42+ new DefaultGrailsPropertyTransformer ()
43+ }
44+
45+ @Bean
46+ @ConditionalOnMissingBean (GeneratedClassNamingStrategy )
47+ GeneratedClassNamingStrategy namingStrategy () {
48+ new DefaultGeneratedClassNamingStrategy ()
49+ }
50+
51+ @Bean
52+ Docket api (List<AlternateTypeRuleConvention > conventions ) {
53+ def typeRules = conventions. collectMany {
54+ it. rules()
55+ }
3856 new Docket (DocumentationType . SWAGGER_2 )
3957 .ignoredParameterTypes(MetaClass )
4058 .select()
4159 .paths(not(ant(" /error" )))
4260 .build()
61+ .alternateTypeRules(typeRules. toArray(new AlternateTypeRule [typeRules. size()]))
4362 }
4463
4564 @Bean
0 commit comments