From 2fd51dd8a1be0fbec3515e0853c78e3be3468c11 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 24 Mar 2017 21:11:04 +0000 Subject: [PATCH] Upgrade to Spring REST Docs 1.2.0.RC1 Closes gh-8716 --- spring-boot-dependencies/pom.xml | 2 +- .../src/main/asciidoc/spring-boot-features.adoc | 11 ++++++----- .../RestDocumentationContextProviderRegistrar.java | 14 ++++++++------ ...ationAdvancedConfigurationIntegrationTests.java | 4 ++-- .../RestDocsAutoConfigurationIntegrationTests.java | 4 ++-- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index c0658973ff9..3c231ff2c13 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -167,7 +167,7 @@ 1.2.7.RELEASE 2.0.0.M1 1.2.0.RELEASE - 1.2.0.BUILD-SNAPSHOT + 1.2.0.RC1 1.2.0.RELEASE 5.0.0.BUILD-SNAPSHOT 1.0.7.RELEASE diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index be8e6a762a7..4a82c87b487 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -5770,7 +5770,7 @@ remove the need for Spring REST Docs' JUnit rule. @RunWith(SpringRunner.class) @WebMvcTest(UserController.class) - @AutoConfigureRestDocs("target/generated-snippets") + @AutoConfigureRestDocs public class UserDocumentationTests { @Autowired @@ -5786,10 +5786,11 @@ remove the need for Spring REST Docs' JUnit rule. } ---- -In addition to configuring the output directory, `@AutoConfigureRestDocs` can also -configure the host, scheme, and port that will appear in any documented URIs. If you -require more control over Spring REST Docs' configuration a -`RestDocsMockMvcConfigurationCustomizer` bean can be used: +`@AutoConfigureRestDocs` can be used to override the default output directory +(`target/generated-snippets` if you are using Maven or `build/generated-snippets` if you +are using Gradle). It can also be used to configure the host, scheme, and port that will +appear in any documented URIs. If you require more control over Spring REST Docs' +configuration a `RestDocsMockMvcConfigurationCustomizer` bean can be used: [source,java,indent=0] ---- diff --git a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocumentationContextProviderRegistrar.java b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocumentationContextProviderRegistrar.java index 7b5a62f4568..745a10a46a7 100644 --- a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocumentationContextProviderRegistrar.java +++ b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocumentationContextProviderRegistrar.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,12 +18,12 @@ package org.springframework.boot.test.autoconfigure.restdocs; import java.util.Map; -import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.type.AnnotationMetadata; import org.springframework.restdocs.ManualRestDocumentation; +import org.springframework.util.StringUtils; /** * {@link ImportBeanDefinitionRegistrar} used by {@link AutoConfigureRestDocs}. @@ -38,12 +38,14 @@ class RestDocumentationContextProviderRegistrar implements ImportBeanDefinitionR BeanDefinitionRegistry registry) { Map annotationAttributes = importingClassMetadata .getAnnotationAttributes(AutoConfigureRestDocs.class.getName()); + BeanDefinitionBuilder definitionBuilder = BeanDefinitionBuilder + .genericBeanDefinition(ManualRestDocumentation.class); String outputDir = (String) annotationAttributes.get("outputDir"); - AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder - .genericBeanDefinition(ManualRestDocumentation.class) - .addConstructorArgValue(outputDir).getBeanDefinition(); + if (StringUtils.hasText(outputDir)) { + definitionBuilder.addConstructorArgValue(outputDir); + } registry.registerBeanDefinition(ManualRestDocumentation.class.getName(), - beanDefinition); + definitionBuilder.getBeanDefinition()); } } diff --git a/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java b/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java index d27d6b2047e..a13c0230d94 100644 --- a/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java +++ b/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -47,7 +47,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder */ @RunWith(SpringRunner.class) @WebMvcTest(controllers = RestDocsTestController.class, secure = false) -@AutoConfigureRestDocs("target/generated-snippets") +@AutoConfigureRestDocs public class RestDocsAutoConfigurationAdvancedConfigurationIntegrationTests { @Before diff --git a/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationIntegrationTests.java b/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationIntegrationTests.java index e3494256098..becb943dfec 100644 --- a/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationIntegrationTests.java +++ b/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsAutoConfigurationIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,7 +40,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder */ @RunWith(SpringRunner.class) @WebMvcTest -@AutoConfigureRestDocs(outputDir = "target/generated-snippets", uriScheme = "https", uriHost = "api.example.com", uriPort = 443) +@AutoConfigureRestDocs(uriScheme = "https", uriHost = "api.example.com", uriPort = 443) public class RestDocsAutoConfigurationIntegrationTests { @Before