From 33aa1d35840dfcc7003fb3a0bbe5eed9d78f1401 Mon Sep 17 00:00:00 2001 From: Dilip Krishnan Date: Sat, 18 Aug 2018 09:05:27 -0500 Subject: [PATCH] Removed deprecated api in PathProvider Also simplified the usages as a result of no longer needing servlet context to resolve the paths (1773) --- .../springfox/documentation/PathProvider.java | 7 ---- .../web/paths/AbstractPathProvider.java | 24 +++---------- .../plugins/DocumentationContextSpec.groovy | 10 ------ .../paths/WebFluxRelativePathProvider.java | 10 ------ .../web/paths/WebMvcRelativePathProvider.java | 21 ----------- .../WebMvcRelativePathProviderFactory.java | 12 +------ .../RelativeSwaggerPathProviderSpec.groovy | 3 +- .../WebMvcRelativePathProviderSpec.groovy | 5 ++- .../spring/web/plugins/DocketSpec.groovy | 35 +++++++++---------- .../DocumentationPluginsManagerSpec.groovy | 4 +-- .../scanners/ApiDescriptionReaderSpec.groovy | 6 ++-- .../ApiListingReferenceScannerSpec.groovy | 2 +- .../SwaggerApiDocumentationScannerSpec.groovy | 2 +- ...ModelAttributeParameterExpanderSpec.groovy | 2 +- ...aggerApiListingReferenceScannerSpec.groovy | 2 +- .../swagger1/integration/DocketSpec.groovy | 15 ++++---- .../mixins/SwaggerPathProviderSupport.groovy | 2 +- .../web/Swagger2ControllerSpec.groovy | 2 +- 18 files changed, 42 insertions(+), 122 deletions(-) diff --git a/springfox-core/src/main/java/springfox/documentation/PathProvider.java b/springfox-core/src/main/java/springfox/documentation/PathProvider.java index 404b6f0b8ce..75ba8b474ca 100644 --- a/springfox-core/src/main/java/springfox/documentation/PathProvider.java +++ b/springfox-core/src/main/java/springfox/documentation/PathProvider.java @@ -21,13 +21,6 @@ public interface PathProvider { - /** - * Gets the application base path - * @return application base path - */ - @Deprecated - String getApplicationBasePath(); - /** * Gets the sanitized and prepended with a "/" operation path * @param operationPath - raw operation path diff --git a/springfox-spring-web/src/main/java/springfox/documentation/spring/web/paths/AbstractPathProvider.java b/springfox-spring-web/src/main/java/springfox/documentation/spring/web/paths/AbstractPathProvider.java index 9408eca6b44..a53bae6e489 100644 --- a/springfox-spring-web/src/main/java/springfox/documentation/spring/web/paths/AbstractPathProvider.java +++ b/springfox-spring-web/src/main/java/springfox/documentation/spring/web/paths/AbstractPathProvider.java @@ -26,20 +26,10 @@ public abstract class AbstractPathProvider implements PathProvider { - /** - * For relative PathProviders this is typically '/' meaning relative to the swagger ui page serving the - * documentation. The swagger specification recommends that this should be an absolute URL. - * - * Corresponds to the base path attribute of a swagger api declaration. - * This is the actual base path serving the api (not the swagger documentation) - * - * @return the applications base uri - */ - protected abstract String applicationPath(); /** * The base path to the swagger api documentation. - * + *

* Typically docs are served from <yourApp>/api-docs so a relative resourceListing path will omit the api-docs * segment. * E.g. @@ -48,22 +38,18 @@ public abstract class AbstractPathProvider implements PathProvider { * * @return the documentation base path */ - protected abstract String getDocumentationPath(); - - @Override - public String getApplicationBasePath() { - return applicationPath(); + protected String getDocumentationPath() { + return ROOT; } /** * The relative path to the operation, from the basePath, which this operation describes. * The value SHOULD be in a relative (URL) path format. - * + *

* Includes the apiResourcePrefix * * @param operationPath operation path * @return the relative path to the api operation - * @see AbstractPathProvider#getApplicationBasePath() */ @Override public String getOperationPath(String operationPath) { @@ -73,7 +59,7 @@ public String getOperationPath(String operationPath) { /** * Corresponds to the path attribute of a swagger Resource Object (within a Resource Listing). - * + *

* This method builds a URL based off of * * @param groupName the group name for this Resource Object e.g. 'default' diff --git a/springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationContextSpec.groovy b/springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationContextSpec.groovy index d589d5c38da..83d09a716ce 100644 --- a/springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationContextSpec.groovy +++ b/springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationContextSpec.groovy @@ -62,15 +62,5 @@ class DocumentationContextSpec extends Specification { } class DummyPathProvider extends AbstractPathProvider { - - @Override - protected String applicationPath() { - return ROOT - } - - @Override - protected String getDocumentationPath() { - return ROOT - } } } diff --git a/springfox-spring-webflux/src/main/java/springfox/documentation/spring/web/paths/WebFluxRelativePathProvider.java b/springfox-spring-webflux/src/main/java/springfox/documentation/spring/web/paths/WebFluxRelativePathProvider.java index ecc6cfb9520..bab03c76d4d 100644 --- a/springfox-spring-webflux/src/main/java/springfox/documentation/spring/web/paths/WebFluxRelativePathProvider.java +++ b/springfox-spring-webflux/src/main/java/springfox/documentation/spring/web/paths/WebFluxRelativePathProvider.java @@ -22,14 +22,4 @@ import static springfox.documentation.spring.web.paths.Paths.*; public class WebFluxRelativePathProvider extends AbstractPathProvider { - - @Override - protected String applicationPath() { - return ROOT; - } - - @Override - protected String getDocumentationPath() { - return ROOT; - } } diff --git a/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProvider.java b/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProvider.java index 840d3fb4a9a..a1d6b2d39d4 100644 --- a/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProvider.java +++ b/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProvider.java @@ -19,26 +19,5 @@ package springfox.documentation.spring.web.paths; -import javax.servlet.ServletContext; - -import static org.springframework.util.StringUtils.*; -import static springfox.documentation.spring.web.paths.Paths.*; - public class WebMvcRelativePathProvider extends AbstractPathProvider { - private final ServletContext servletContext; - - public WebMvcRelativePathProvider(ServletContext servletContext) { - super(); - this.servletContext = servletContext; - } - - @Override - protected String applicationPath() { - return isEmpty(servletContext.getContextPath()) ? ROOT : servletContext.getContextPath(); - } - - @Override - protected String getDocumentationPath() { - return ROOT; - } } diff --git a/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderFactory.java b/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderFactory.java index d0b6f070a6e..552297fb4b6 100644 --- a/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderFactory.java +++ b/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderFactory.java @@ -18,23 +18,13 @@ */ package springfox.documentation.spring.web.paths; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import springfox.documentation.PathProvider; -import javax.servlet.ServletContext; - @Component public class WebMvcRelativePathProviderFactory implements PathProviderFactory { - private final ServletContext servletContext; - - @Autowired - public WebMvcRelativePathProviderFactory(ServletContext servletContext) { - this.servletContext = servletContext; - } - @Override public PathProvider getInstance() { - return new WebMvcRelativePathProvider(servletContext); + return new WebMvcRelativePathProvider(); } } diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/RelativeSwaggerPathProviderSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/RelativeSwaggerPathProviderSpec.groovy index 0d6c9dbb6da..07d01664268 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/RelativeSwaggerPathProviderSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/RelativeSwaggerPathProviderSpec.groovy @@ -30,11 +30,10 @@ class RelativeSwaggerPathProviderSpec extends Specification { def "assert urls"(){ given: ServletContext servletContext = Mock() - WebMvcRelativePathProvider provider = new WebMvcRelativePathProvider(servletContext) + WebMvcRelativePathProvider provider = new WebMvcRelativePathProvider() servletContext.contextPath >> "/" expect: - provider.applicationPath() == "/" provider.getDocumentationPath() == "/" } diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderSpec.groovy index c1217a0a62b..89bddb09af5 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/paths/WebMvcRelativePathProviderSpec.groovy @@ -31,17 +31,16 @@ class WebMvcRelativePathProviderSpec extends Specification { given: ServletContext servletContext = Mock(ServletContext) servletContext.contextPath >> "/" - AbstractPathProvider provider = new WebMvcRelativePathProvider(servletContext) + AbstractPathProvider provider = new WebMvcRelativePathProvider() expect: - provider.getApplicationBasePath() == "/" provider.getResourceListingPath('default', 'api-declaration') == "/default/api-declaration" } def "should never return a path with duplicate slash"() { setup: - WebMvcRelativePathProvider swaggerPathProvider = new WebMvcRelativePathProvider(servletContext()) + WebMvcRelativePathProvider swaggerPathProvider = new WebMvcRelativePathProvider() when: String path = swaggerPathProvider.getResourceListingPath('/a', '/b') diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocketSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocketSpec.groovy index 98cae6ff748..cc25d513346 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocketSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocketSpec.groovy @@ -40,7 +40,6 @@ import springfox.documentation.spi.service.contexts.Defaults import springfox.documentation.spi.service.contexts.SecurityContext import springfox.documentation.spring.web.paths.WebMvcRelativePathProvider -import javax.servlet.ServletContext import javax.servlet.ServletRequest import static java.util.Collections.* @@ -183,23 +182,23 @@ class DocketSpec extends DocumentationContextSpec { documentationContext()."$property" == object || (documentationContext()."$property" == [object] as Set) where: - builderMethod | object | property - 'pathProvider' | new WebMvcRelativePathProvider(Mock(ServletContext)) | 'pathProvider' - 'securitySchemes' | new ArrayList() | 'securitySchemes' - 'securityContexts' | validContexts() | 'securityContexts' - 'groupName' | 'someGroup' | 'groupName' - 'apiInfo' | new ApiInfo('', '', "", '', '', '', '') | 'apiInfo' - 'apiDescriptionOrdering' | apiDescriptionOrdering() | 'apiDescriptionOrdering' - 'operationOrdering' | operationOrdering() | 'operationOrdering' - 'produces' | ['application/json'] as Set | 'produces' - 'consumes' | ['application/json'] as Set | 'consumes' - 'host' | 'someHost' | 'host' - 'protocols' | ['application/json'] as Set | 'protocols' - 'additionalModels' | Mock(ResolvedType) | 'additionalModels' - 'enableUrlTemplating' | true | 'isUriTemplatesEnabled' - 'tags' | new Tag("test", "test") | 'tags' - 'globalOperationParameters' | [Mock(Parameter)] | 'globalOperationParameters' - 'extensions' | extensions() | 'vendorExtensions' + builderMethod | object | property + 'pathProvider' | new WebMvcRelativePathProvider() | 'pathProvider' + 'securitySchemes' | new ArrayList() | 'securitySchemes' + 'securityContexts' | validContexts() | 'securityContexts' + 'groupName' | 'someGroup' | 'groupName' + 'apiInfo' | new ApiInfo('', '', "", '', '', '', '') | 'apiInfo' + 'apiDescriptionOrdering' | apiDescriptionOrdering() | 'apiDescriptionOrdering' + 'operationOrdering' | operationOrdering() | 'operationOrdering' + 'produces' | ['application/json'] as Set | 'produces' + 'consumes' | ['application/json'] as Set | 'consumes' + 'host' | 'someHost' | 'host' + 'protocols' | ['application/json'] as Set | 'protocols' + 'additionalModels' | Mock(ResolvedType) | 'additionalModels' + 'enableUrlTemplating' | true | 'isUriTemplatesEnabled' + 'tags' | new Tag("test", "test") | 'tags' + 'globalOperationParameters' | [Mock(Parameter)] | 'globalOperationParameters' + 'extensions' | extensions() | 'vendorExtensions' } List extensions() { diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationPluginsManagerSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationPluginsManagerSpec.groovy index 9d071e243fe..c192ce7722e 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationPluginsManagerSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/plugins/DocumentationPluginsManagerSpec.groovy @@ -36,8 +36,6 @@ import springfox.documentation.spring.web.mixins.ServicePluginsSupport import springfox.documentation.spring.web.paths.WebMvcRelativePathProvider import springfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator -import javax.servlet.ServletContext - import static java.util.Optional.* @Mixin(ServicePluginsSupport) @@ -139,7 +137,7 @@ class DocumentationPluginsManagerSpec extends Specification { def pathContext = Mock(PathContext) def context = Mock(DocumentationContext) and: - pathContext.pathProvider() >> new WebMvcRelativePathProvider(Mock(ServletContext)) + pathContext.pathProvider() >> new WebMvcRelativePathProvider() pathContext.documentationContext() >> context context.getPathMapping() >> empty() pathContext.parameters >> [] diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiDescriptionReaderSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiDescriptionReaderSpec.groovy index 91718ee5944..9c73d3846d1 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiDescriptionReaderSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiDescriptionReaderSpec.groovy @@ -34,8 +34,6 @@ import springfox.documentation.spring.web.plugins.DocumentationContextSpec import springfox.documentation.spring.web.readers.operation.ApiOperationReader import springfox.documentation.spring.web.readers.operation.HandlerMethodResolver -import javax.servlet.ServletContext - @Mixin([RequestMappingSupport, ServicePluginsSupport]) class ApiDescriptionReaderSpec extends DocumentationContextSpec { @@ -77,8 +75,8 @@ class ApiDescriptionReaderSpec extends DocumentationContextSpec { !secondApiDescription.isHidden() where: - pathProvider | prefix - new WebMvcRelativePathProvider(Mock(ServletContext)) | "" + pathProvider | prefix + new WebMvcRelativePathProvider() | "" } def "should handle exceptions gracefully"() { diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiListingReferenceScannerSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiListingReferenceScannerSpec.groovy index ca79f7131e8..ba23cc37c91 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiListingReferenceScannerSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/ApiListingReferenceScannerSpec.groovy @@ -50,7 +50,7 @@ class ApiListingReferenceScannerSpec extends DocumentationContextSpec { contextBuilder.requestHandlers(requestHandlers) .withResourceGroupingStrategy(new SpringGroupingStrategy()) plugin - .pathProvider(new WebMvcRelativePathProvider(servletContext())) + .pathProvider(new WebMvcRelativePathProvider()) .select() .apis(withClassAnnotation(ApiIgnore).negate()) .paths(regex(".*?")) diff --git a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiDocumentationScannerSpec.groovy b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiDocumentationScannerSpec.groovy index 8e6ae1f4dbf..eebce304f76 100644 --- a/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiDocumentationScannerSpec.groovy +++ b/springfox-spring-webmvc/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiDocumentationScannerSpec.groovy @@ -127,7 +127,7 @@ class SwaggerApiDocumentationScannerSpec extends DocumentationContextSpec { def "resource with mocked apis"() { given: - AbstractPathProvider pathProvider = new WebMvcRelativePathProvider(servletContext()) + AbstractPathProvider pathProvider = new WebMvcRelativePathProvider() plugin .groupName("groupName") .select() diff --git a/springfox-swagger-common/src/test/groovy/springfox/documentation/swagger/readers/parameter/ModelAttributeParameterExpanderSpec.groovy b/springfox-swagger-common/src/test/groovy/springfox/documentation/swagger/readers/parameter/ModelAttributeParameterExpanderSpec.groovy index 06e37b1130b..a1f68307b65 100644 --- a/springfox-swagger-common/src/test/groovy/springfox/documentation/swagger/readers/parameter/ModelAttributeParameterExpanderSpec.groovy +++ b/springfox-swagger-common/src/test/groovy/springfox/documentation/swagger/readers/parameter/ModelAttributeParameterExpanderSpec.groovy @@ -94,7 +94,7 @@ class ModelAttributeParameterExpanderSpec extends DocumentationContextSpec { SwaggerDefaults(Defaults defaults, TypeResolver typeResolver, ServletContext servletContext) { this.typeResolver = typeResolver defaultConfiguration = new DefaultConfiguration(defaults, typeResolver, - new WebMvcRelativePathProviderFactory(servletContext)) + new WebMvcRelativePathProviderFactory()) } @Override diff --git a/springfox-swagger1/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiListingReferenceScannerSpec.groovy b/springfox-swagger1/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiListingReferenceScannerSpec.groovy index ac8f76910a5..e997bd7c994 100644 --- a/springfox-swagger1/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiListingReferenceScannerSpec.groovy +++ b/springfox-swagger1/src/test/groovy/springfox/documentation/spring/web/scanners/SwaggerApiListingReferenceScannerSpec.groovy @@ -53,7 +53,7 @@ class SwaggerApiListingReferenceScannerSpec extends DocumentationContextSpec { contextBuilder.requestHandlers(requestHandlers) .withResourceGroupingStrategy(new ClassOrApiAnnotationResourceGrouping()) plugin - .pathProvider(new WebMvcRelativePathProvider(servletContext())) + .pathProvider(new WebMvcRelativePathProvider()) .select() .apis(withClassAnnotation(ApiIgnore).negate()) .paths(regex(".*?")) diff --git a/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/integration/DocketSpec.groovy b/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/integration/DocketSpec.groovy index 6a621f94b6a..19cabb97dc3 100644 --- a/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/integration/DocketSpec.groovy +++ b/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/integration/DocketSpec.groovy @@ -36,7 +36,6 @@ import springfox.documentation.spring.web.plugins.Docket import springfox.documentation.spring.web.plugins.DocumentationContextSpec import springfox.documentation.swagger1.web.SwaggerDefaultConfiguration -import javax.servlet.ServletContext import javax.servlet.ServletRequest import static java.util.Collections.* @@ -168,13 +167,13 @@ class DocketSpec extends DocumentationContextSpec { documentationContext()."$property" == object where: - builderMethod | object | property - 'pathProvider' | new WebMvcRelativePathProvider(Mock(ServletContext)) | 'pathProvider' - 'securitySchemes' | new ArrayList() | 'securitySchemes' - 'securityContexts'| validContexts() | 'securityContexts' - 'groupName' | 'someGroup' | 'groupName' - 'apiInfo' | new ApiInfo('', '', "", '', '', '', '') | 'apiInfo' - 'apiInfo' | ApiInfo.DEFAULT | 'apiInfo' + builderMethod | object | property + 'pathProvider' | new WebMvcRelativePathProvider() | 'pathProvider' + 'securitySchemes' | new ArrayList() | 'securitySchemes' + 'securityContexts'| validContexts() | 'securityContexts' + 'groupName' | 'someGroup' | 'groupName' + 'apiInfo' | new ApiInfo('', '', "", '', '', '', '') | 'apiInfo' + 'apiInfo' | ApiInfo.DEFAULT | 'apiInfo' } def validContexts() { diff --git a/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/mixins/SwaggerPathProviderSupport.groovy b/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/mixins/SwaggerPathProviderSupport.groovy index 309047dc79a..9dbde1b2822 100644 --- a/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/mixins/SwaggerPathProviderSupport.groovy +++ b/springfox-swagger1/src/test/groovy/springfox/documentation/swagger1/mixins/SwaggerPathProviderSupport.groovy @@ -26,6 +26,6 @@ import javax.servlet.ServletContext @SuppressWarnings("GrMethodMayBeStatic") class SwaggerPathProviderSupport { WebMvcRelativePathProvider relativeSwaggerPathProvider(ServletContext servletContext) { - new WebMvcRelativePathProvider(servletContext) + new WebMvcRelativePathProvider() } } diff --git a/springfox-swagger2/src/test/groovy/springfox/documentation/swagger2/web/Swagger2ControllerSpec.groovy b/springfox-swagger2/src/test/groovy/springfox/documentation/swagger2/web/Swagger2ControllerSpec.groovy index c5fb46bff29..1191b248972 100644 --- a/springfox-swagger2/src/test/groovy/springfox/documentation/swagger2/web/Swagger2ControllerSpec.groovy +++ b/springfox-swagger2/src/test/groovy/springfox/documentation/swagger2/web/Swagger2ControllerSpec.groovy @@ -84,7 +84,7 @@ class Swagger2ControllerSpec extends DocumentationContextSpec def req = servletRequestWithXHeaders(prefix) def defaultConfiguration = new DefaultConfiguration(new Defaults(), new TypeResolver(), - new WebMvcRelativePathProviderFactory(req.servletContext)) + new WebMvcRelativePathProviderFactory()) this.contextBuilder = defaultConfiguration.create(DocumentationType.SWAGGER_12) .requestHandlers([]) .operationOrdering(nickNameComparator())