diff --git a/pom.xml b/pom.xml
index 68edf19cb2..863de4c20e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,6 @@
         spring-protobuf
         spring-quartz
         spring-rest-angular
-        spring-rest-docs
         spring-rest-full
         spring-rest-query-language
         spring-rest
diff --git a/spring-5/pom.xml b/spring-5/pom.xml
index ac49e8d6f4..81e7ae3123 100644
--- a/spring-5/pom.xml
+++ b/spring-5/pom.xml
@@ -39,6 +39,10 @@
 			org.springframework.boot
 			spring-boot-starter-webflux
 		
+		
+			org.springframework.boot
+			spring-boot-starter-hateoas
+		
 		
 			org.projectreactor
 			reactor-spring
@@ -135,6 +139,22 @@
 			${junit.platform.version}
 			test
 		
+		 
+            org.springframework.restdocs
+            spring-restdocs-mockmvc
+            test
+        
+         
+            org.springframework.restdocs
+            spring-restdocs-webtestclient
+            test
+        
+         
+            org.springframework.restdocs
+            spring-restdocs-restassured
+            test
+        
+        
 
 	
 
@@ -163,6 +183,29 @@
 					
 				
 			
+			
+                org.asciidoctor
+                asciidoctor-maven-plugin
+                ${asciidoctor-plugin.version}
+                
+                    
+                        generate-docs
+                        package
+                        
+                            process-asciidoc
+                        
+                        
+                            html
+                            book
+                            
+                                ${snippetsDirectory}
+                            
+                            src/docs/asciidocs
+                            target/generated-docs
+                        
+                    
+                
+            
 		
 	
 
@@ -199,6 +242,8 @@
 		1.1.3
 		1.0
 		1.0
+		1.5.6
+		${project.build.directory}/generated-snippets
 	
 
 
diff --git a/spring-rest-docs/src/main/java/com/example/CRUDController.java b/spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java
similarity index 59%
rename from spring-rest-docs/src/main/java/com/example/CRUDController.java
rename to spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java
index ff8c91d6cd..9c8e436fa9 100644
--- a/spring-rest-docs/src/main/java/com/example/CRUDController.java
+++ b/spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java
@@ -1,4 +1,4 @@
-package com.example;
+package com.baeldung.restdocs;
 
 import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
 
@@ -7,10 +7,14 @@ import java.util.List;
 
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PatchMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -18,8 +22,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/crud")
 public class CRUDController {
 
-    @RequestMapping(method = RequestMethod.GET)
-    @ResponseStatus(HttpStatus.OK)
+    @GetMapping
     public List read(@RequestBody CrudInput crudInput) {
         List returnList = new ArrayList();
         returnList.add(crudInput);
@@ -27,29 +30,30 @@ public class CRUDController {
     }
 
     @ResponseStatus(HttpStatus.CREATED)
-    @RequestMapping(method = RequestMethod.POST)
+    @PostMapping
     public HttpHeaders save(@RequestBody CrudInput crudInput) {
         HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.setLocation(linkTo(CRUDController.class).slash(crudInput.getTitle()).toUri());
+        httpHeaders.setLocation(linkTo(CRUDController.class).slash(crudInput.getId()).toUri());
         return httpHeaders;
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
+   @DeleteMapping(value = "/{id}")
     @ResponseStatus(HttpStatus.OK)
-    HttpHeaders delete(@RequestBody CrudInput crudInput) {
-        HttpHeaders httpHeaders = new HttpHeaders();
-        return httpHeaders;
+    HttpHeaders delete(@PathVariable("id") long id) {
+        return new HttpHeaders();
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
+    @PutMapping(value = "/{id}")
     @ResponseStatus(HttpStatus.ACCEPTED)
     void put(@PathVariable("id") long id, @RequestBody CrudInput crudInput) {
 
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.PATCH)
-    @ResponseStatus(HttpStatus.NO_CONTENT)
-    void patch(@PathVariable("id") long id, @RequestBody CrudInput crudInput) {
-
+    @PatchMapping(value = "/{id}")
+    public List patch(@PathVariable("id") long id, @RequestBody CrudInput crudInput) {
+        List returnList = new ArrayList();
+        crudInput.setId(id);
+        returnList.add(crudInput);
+        return returnList;
     }
 }
diff --git a/spring-5/src/main/java/com/baeldung/restdocs/CrudInput.java b/spring-5/src/main/java/com/baeldung/restdocs/CrudInput.java
new file mode 100644
index 0000000000..29046d7725
--- /dev/null
+++ b/spring-5/src/main/java/com/baeldung/restdocs/CrudInput.java
@@ -0,0 +1,66 @@
+package com.baeldung.restdocs;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CrudInput {
+    
+    @NotNull
+    private long id;
+    
+    @NotBlank
+    private String title;
+
+    private String body;
+
+    private List tagUris;
+
+    @JsonCreator
+    public CrudInput(@JsonProperty("id") long id, @JsonProperty("title") String title, @JsonProperty("body") String body, @JsonProperty("tags") List tagUris) {
+        this.id=id;
+        this.title = title;
+        this.body = body;
+        this.tagUris = tagUris == null ? Collections. emptyList() : tagUris;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getBody() {
+        return body;
+    }
+    
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public void setBody(String body) {
+        this.body = body;
+    }
+
+    public void setTagUris(List tagUris) {
+        this.tagUris = tagUris;
+    }
+
+    @JsonProperty("tags")
+    public List getTagUris() {
+        return this.tagUris;
+    }
+
+}
\ No newline at end of file
diff --git a/spring-rest-docs/src/main/java/com/example/IndexController.java b/spring-5/src/main/java/com/baeldung/restdocs/IndexController.java
similarity index 79%
rename from spring-rest-docs/src/main/java/com/example/IndexController.java
rename to spring-5/src/main/java/com/baeldung/restdocs/IndexController.java
index 6b896da416..2c58d5fe6b 100644
--- a/spring-rest-docs/src/main/java/com/example/IndexController.java
+++ b/spring-5/src/main/java/com/baeldung/restdocs/IndexController.java
@@ -1,17 +1,17 @@
-package com.example;
+package com.baeldung.restdocs;
 
 import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
 
 import org.springframework.hateoas.ResourceSupport;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/")
 public class IndexController {
 
-    @RequestMapping(method = RequestMethod.GET)
+    @GetMapping
     public ResourceSupport index() {
         ResourceSupport index = new ResourceSupport();
         index.add(linkTo(CRUDController.class).withRel("crud"));
diff --git a/spring-rest-docs/src/main/java/com/example/SpringRestDocsApplication.java b/spring-5/src/main/java/com/baeldung/restdocs/SpringRestDocsApplication.java
similarity index 90%
rename from spring-rest-docs/src/main/java/com/example/SpringRestDocsApplication.java
rename to spring-5/src/main/java/com/baeldung/restdocs/SpringRestDocsApplication.java
index da09f9accc..02332ee7b6 100644
--- a/spring-rest-docs/src/main/java/com/example/SpringRestDocsApplication.java
+++ b/spring-5/src/main/java/com/baeldung/restdocs/SpringRestDocsApplication.java
@@ -1,4 +1,4 @@
-package com.example;
+package com.baeldung.restdocs;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
diff --git a/spring-rest-docs/README.MD b/spring-rest-docs/README.MD
deleted file mode 100644
index f5d001d126..0000000000
--- a/spring-rest-docs/README.MD
+++ /dev/null
@@ -1,5 +0,0 @@
-###The Course
-The "REST With Spring" Classes: http://bit.ly/restwithspring
-
-###Relevant Articles:
-- [Introduction to Spring REST Docs](http://www.baeldung.com/spring-rest-docs)
diff --git a/spring-rest-docs/pom.xml b/spring-rest-docs/pom.xml
deleted file mode 100644
index ffd3cb89b6..0000000000
--- a/spring-rest-docs/pom.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-    4.0.0
-
-    com.example
-    spring-rest-docs
-    0.0.1-SNAPSHOT
-    jar
-
-    spring-rest-docs
-    Demo project for Spring Boot
-
-    
-        parent-boot-5
-        com.baeldung
-        0.0.1-SNAPSHOT
-        ../parent-boot-5
-    
-
-    
-        ${project.build.directory}/generated-snippets
-        1.1.2.RELEASE
-        2.2.0
-        1.5.3
-    
-
-    
-        
-            org.springframework.boot
-            spring-boot-starter-hateoas
-        
-        
-            org.springframework.boot
-            spring-boot-starter-web
-        
-
-        
-            org.springframework.restdocs
-            spring-restdocs-mockmvc
-            test
-        
-        
-            com.jayway.jsonpath
-            json-path
-        
-    
-
-    
-        
-            
-                org.asciidoctor
-                asciidoctor-maven-plugin
-                ${asciidoctor-plugin.version}
-                
-                    
-                        generate-docs
-                        package
-                        
-                            process-asciidoc
-                        
-                        
-                            html
-                            book
-                            
-                                ${snippetsDirectory}
-                            
-                            src/docs/asciidocs
-                            target/generated-docs
-                        
-                    
-                
-            
-        
-    
-
-    
-        
-            integration
-            
-                
-                    
-                        org.apache.maven.plugins
-                        maven-surefire-plugin
-                        
-                            
-                                integration-test
-                                
-                                    test
-                                
-                                
-                                    
-                                        **/*LiveTest.java
-                                    
-                                    
-                                        **/*IntegrationTest.java
-                                    
-                                
-                            
-                        
-                        
-                            
-                                json
-                            
-                        
-                    
-                
-            
-        
-    
-    
-
diff --git a/spring-rest-docs/src/docs/asciidocs/api-guide.adoc b/spring-rest-docs/src/docs/asciidocs/api-guide.adoc
deleted file mode 100644
index 9fbe74c072..0000000000
--- a/spring-rest-docs/src/docs/asciidocs/api-guide.adoc
+++ /dev/null
@@ -1,203 +0,0 @@
-= RESTful Notes API Guide
-Baeldung;
-:doctype: book
-:icons: font
-:source-highlighter: highlightjs
-:toc: left
-:toclevels: 4
-:sectlinks:
-
-[[overview]]
-= Overview
-
-[[overview-http-verbs]]
-== HTTP verbs
-
-RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its
-use of HTTP verbs.
-
-|===
-| Verb | Usage
-
-| `GET`
-| Used to retrieve a resource
-
-| `POST`
-| Used to create a new resource
-
-| `PATCH`
-| Used to update an existing resource, including partial updates
-
-| `DELETE`
-| Used to delete an existing resource
-|===
-
-RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its
-use of HTTP status codes.
-
-|===
-| Status code | Usage
-
-| `200 OK`
-| The request completed successfully
-
-| `201 Created`
-| A new resource has been created successfully. The resource's URI is available from the response's
-`Location` header
-
-| `204 No Content`
-| An update to an existing resource has been applied successfully
-
-| `400 Bad Request`
-| The request was malformed. The response body will include an error providing further information
-
-| `404 Not Found`
-| The requested resource did not exist
-|===
-
-[[overview-headers]]
-== Headers
-
-Every response has the following header(s):
-
-include::{snippets}/headers-example/response-headers.adoc[]
-
-[[overview-hypermedia]]
-== Hypermedia
-
-RESTful Notes uses hypermedia and resources include links to other resources in their
-responses. Responses are in http://stateless.co/hal_specification.html[Hypertext Application
-from resource to resource.
-Language (HAL)] format. Links can be found beneath the `_links` key. Users of the API should
-not create URIs themselves, instead they should use the above-described links to navigate
-
-[[resources]]
-= Resources
-
-
-
-[[resources-index]]
-== Index
-
-The index provides the entry point into the service.
-
-[[resources-index-access]]
-=== Accessing the index
-
-A `GET` request is used to access the index
-
-==== Response structure
-
-include::{snippets}/index-example/http-response.adoc[]
-
-==== Example response
-
-include::{snippets}/index-example/http-response.adoc[]
-
-==== Example request
-
-include::{snippets}/index-example/http-request.adoc[]
-
-==== CURL request
-
-include::{snippets}/index-example/curl-request.adoc[]
-
-[[resources-index-links]]
-==== Links
-
-include::{snippets}/index-example/links.adoc[]
-
-
-[[resources-CRUD]]
-== CRUD REST Service 
-
-The CRUD provides the entry point into the service.
-
-[[resources-crud-access]]
-=== Accessing the crud GET
-
-A `GET` request is used to access the CRUD read
-
-==== Response structure
-
-include::{snippets}/crud-get-example/http-request.adoc[]
-
-==== Example response
-
-include::{snippets}/crud-get-example/http-response.adoc[]
-
-==== CURL request
-
-include::{snippets}/crud-get-example/curl-request.adoc[]
-
-[[resources-crud-access]]
-=== Accessing the crud POST
-
-A `POST` request is used to access the CRUD create
-
-==== Response structure
-
-include::{snippets}/crud-create-example/http-request.adoc[]
-
-==== Example response
-
-include::{snippets}/crud-create-example/http-response.adoc[]
-
-==== CURL request
-
-include::{snippets}/crud-create-example/curl-request.adoc[]
-
-[[resources-crud-access]]
-=== Accessing the crud DELETE
-
-A `DELETE` request is used to access the CRUD create
-
-==== Response structure
-
-include::{snippets}/crud-delete-example/http-request.adoc[]
-
-==== Example response
-
-include::{snippets}/crud-delete-example/http-response.adoc[]
-
-==== CURL request
-
-include::{snippets}/crud-delete-example/curl-request.adoc[]
-
-[[resources-crud-access]]
-=== Accessing the crud PATCH
-
-A `PATCH` request is used to access the CRUD create
-
-==== Response structure
-
-include::{snippets}/crud-patch-example/http-request.adoc[]
-
-==== Example response
-
-include::{snippets}/crud-patch-example/http-response.adoc[]
-
-==== CURL request
-
-include::{snippets}/crud-patch-example/curl-request.adoc[]
-
-[[resources-crud-access]]
-=== Accessing the crud PUT
-
-A `PUT` request is used to access the CRUD create
-
-==== Response structure
-
-include::{snippets}/crud-put-example/http-request.adoc[]
-
-==== Example response
-
-include::{snippets}/crud-put-example/http-response.adoc[]
-
-==== CURL request
-
-include::{snippets}/crud-put-example/curl-request.adoc[]
-
-
-
-
diff --git a/spring-rest-docs/src/main/java/com/example/CrudInput.java b/spring-rest-docs/src/main/java/com/example/CrudInput.java
deleted file mode 100644
index 36ad67eb21..0000000000
--- a/spring-rest-docs/src/main/java/com/example/CrudInput.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.example;
-
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-
-import org.hibernate.validator.constraints.NotBlank;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class CrudInput {
-
-    // @NotBlank
-    private final String title;
-
-    private final String body;
-
-    private final List tagUris;
-
-    @JsonCreator
-    public CrudInput(@JsonProperty("title") String title, @JsonProperty("body") String body, @JsonProperty("tags") List tagUris) {
-        this.title = title;
-        this.body = body;
-        this.tagUris = tagUris == null ? Collections. emptyList() : tagUris;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public String getBody() {
-        return body;
-    }
-
-    @JsonProperty("tags")
-    public List getTagUris() {
-        return this.tagUris;
-    }
-
-}
\ No newline at end of file
diff --git a/spring-rest-docs/src/main/resources/application.properties b/spring-rest-docs/src/main/resources/application.properties
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/spring-rest-docs/src/test/java/com/example/ApiDocumentationIntegrationTest.java b/spring-rest-docs/src/test/java/com/example/ApiDocumentationIntegrationTest.java
deleted file mode 100644
index 1c3aef4845..0000000000
--- a/spring-rest-docs/src/test/java/com/example/ApiDocumentationIntegrationTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package com.example;
-
-import static java.util.Collections.singletonList;
-import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName;
-import static org.springframework.restdocs.headers.HeaderDocumentation.responseHeaders;
-import static org.springframework.restdocs.hypermedia.HypermediaDocumentation.linkWithRel;
-import static org.springframework.restdocs.hypermedia.HypermediaDocumentation.links;
-import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
-import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
-import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.delete;
-import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
-import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.patch;
-import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.post;
-import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.put;
-import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest;
-import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse;
-import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint;
-import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath;
-import static org.springframework.restdocs.payload.PayloadDocumentation.requestFields;
-import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields;
-import static org.springframework.restdocs.snippet.Attributes.key;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.util.StringUtils.collectionToDelimitedString;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.hateoas.MediaTypes;
-import org.springframework.restdocs.RestDocumentation;
-import org.springframework.restdocs.constraints.ConstraintDescriptions;
-import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
-import org.springframework.restdocs.payload.FieldDescriptor;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-import org.springframework.web.context.WebApplicationContext;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(classes = SpringRestDocsApplication.class)
-@WebAppConfiguration
-public class ApiDocumentationIntegrationTest {
-
-    @Rule
-    public final RestDocumentation restDocumentation = new RestDocumentation("target/generated-snippets");
-
-    @Autowired
-    private WebApplicationContext context;
-
-    @Autowired
-    private ObjectMapper objectMapper;
-
-    private RestDocumentationResultHandler document;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp() {
-        this.document = document("{method-name}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()));
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context).apply(documentationConfiguration(this.restDocumentation)).alwaysDo(this.document).build();
-    }
-
-    @Test
-    public void headersExample() throws Exception {
-        this.document.snippets(responseHeaders(headerWithName("Content-Type").description("The Content-Type of the payload, e.g. `application/hal+json`")));
-        this.mockMvc.perform(get("/")).andExpect(status().isOk());
-    }
-
-    @Test
-    public void indexExample() throws Exception {
-        this.document.snippets(links(linkWithRel("crud").description("The <>")), responseFields(fieldWithPath("_links").description("<> to other resources")));
-        this.mockMvc.perform(get("/")).andExpect(status().isOk());
-    }
-
-    @Test
-    public void crudGetExample() throws Exception {
-
-        Map tag = new HashMap<>();
-        tag.put("name", "GET");
-
-        String tagLocation = this.mockMvc.perform(get("/crud").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(tag))).andExpect(status().isOk()).andReturn().getResponse().getHeader("Location");
-
-        Map crud = new HashMap<>();
-        crud.put("title", "Sample Model");
-        crud.put("body", "http://www.baeldung.com/");
-        crud.put("tags", singletonList(tagLocation));
-
-        this.mockMvc.perform(get("/crud").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(crud))).andExpect(status().isOk());
-    }
-
-    @Test
-    public void crudCreateExample() throws Exception {
-        Map tag = new HashMap<>();
-        tag.put("name", "CREATE");
-
-        String tagLocation = this.mockMvc.perform(post("/crud").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(tag))).andExpect(status().isCreated()).andReturn().getResponse().getHeader("Location");
-
-        Map crud = new HashMap<>();
-        crud.put("title", "Sample Model");
-        crud.put("body", "http://www.baeldung.com/");
-        crud.put("tags", singletonList(tagLocation));
-
-        ConstrainedFields fields = new ConstrainedFields(CrudInput.class);
-        this.document.snippets(requestFields(fields.withPath("title").description("The title of the note"), fields.withPath("body").description("The body of the note"), fields.withPath("tags").description("An array of tag resource URIs")));
-        this.mockMvc.perform(post("/crud").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(crud))).andExpect(status().isCreated());
-
-    }
-
-    @Test
-    public void crudDeleteExample() throws Exception {
-
-        Map tag = new HashMap<>();
-        tag.put("name", "DELETE");
-
-        String tagLocation = this.mockMvc.perform(delete("/crud/10").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(tag))).andExpect(status().isOk()).andReturn().getResponse().getHeader("Location");
-
-        Map crud = new HashMap<>();
-        crud.put("title", "Sample Model");
-        crud.put("body", "http://www.baeldung.com/");
-        crud.put("tags", singletonList(tagLocation));
-
-        this.mockMvc.perform(delete("/crud/10").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(crud))).andExpect(status().isOk());
-    }
-
-    @Test
-    public void crudPatchExample() throws Exception {
-
-        Map tag = new HashMap<>();
-        tag.put("name", "PATCH");
-
-        String tagLocation = this.mockMvc.perform(patch("/crud/10").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(tag))).andExpect(status().isNoContent()).andReturn().getResponse().getHeader("Location");
-
-        Map crud = new HashMap<>();
-        crud.put("title", "Sample Model");
-        crud.put("body", "http://www.baeldung.com/");
-        crud.put("tags", singletonList(tagLocation));
-
-        this.mockMvc.perform(patch("/crud/10").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(crud))).andExpect(status().isNoContent());
-    }
-
-    @Test
-    public void crudPutExample() throws Exception {
-        Map tag = new HashMap<>();
-        tag.put("name", "PUT");
-
-        String tagLocation = this.mockMvc.perform(put("/crud/10").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(tag))).andExpect(status().isAccepted()).andReturn().getResponse().getHeader("Location");
-
-        Map crud = new HashMap<>();
-        crud.put("title", "Sample Model");
-        crud.put("body", "http://www.baeldung.com/");
-        crud.put("tags", singletonList(tagLocation));
-
-        this.mockMvc.perform(put("/crud/10").contentType(MediaTypes.HAL_JSON).content(this.objectMapper.writeValueAsString(crud))).andExpect(status().isAccepted());
-    }
-
-    @Test
-    public void contextLoads() {
-    }
-
-    private static class ConstrainedFields {
-
-        private final ConstraintDescriptions constraintDescriptions;
-
-        ConstrainedFields(Class> input) {
-            this.constraintDescriptions = new ConstraintDescriptions(input);
-        }
-
-        private FieldDescriptor withPath(String path) {
-            return fieldWithPath(path).attributes(key("constraints").value(collectionToDelimitedString(this.constraintDescriptions.descriptionsForProperty(path), ". ")));
-        }
-    }
-
-}
diff --git a/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentationIntegrationTest.java b/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentationIntegrationTest.java
deleted file mode 100644
index 3300fc519c..0000000000
--- a/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentationIntegrationTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package com.example;
-
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
-import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
-import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
-import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest;
-import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse;
-import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.hateoas.MediaTypes;
-import org.springframework.restdocs.RestDocumentation;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-import org.springframework.web.context.WebApplicationContext;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(classes = SpringRestDocsApplication.class)
-@WebAppConfiguration
-public class GettingStartedDocumentationIntegrationTest {
-
-    @Rule
-    public final RestDocumentation restDocumentation = new RestDocumentation("target/generated-snippets");
-
-    @Autowired
-    private ObjectMapper objectMapper;
-
-    @Autowired
-    private WebApplicationContext context;
-
-    private MockMvc mockMvc;
-
-    @Before
-    public void setUp() {
-        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context).apply(documentationConfiguration(this.restDocumentation)).alwaysDo(document("{method-name}/{step}/", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()))).build();
-    }
-
-    @Test
-    public void index() throws Exception {
-        this.mockMvc.perform(get("/").accept(MediaTypes.HAL_JSON)).andExpect(status().isOk()).andExpect(jsonPath("_links.crud", is(notNullValue()))).andExpect(jsonPath("_links.crud", is(notNullValue())));
-    }
-
-    // String createNote() throws Exception {
-    // Map note = new HashMap();
-    // note.put("title", "Note creation with cURL");
-    // note.put("body", "An example of how to create a note using curl");
-    // String noteLocation = this.mockMvc.perform(post("/crud")
-    // .contentType(MediaTypes.HAL_JSON)
-    // .content(objectMapper.writeValueAsString(note)))
-    // .andExpect(status().isCreated())
-    // .andExpect(header().string("Location", notNullValue()))
-    // .andReturn()
-    // .getResponse()
-    // .getHeader("Location");
-    // return noteLocation;
-    // }
-    //
-    // MvcResult getNote(String noteLocation) throws Exception {
-    // return this.mockMvc.perform(get(noteLocation))
-    // .andExpect(status().isOk())
-    // .andExpect(jsonPath("title", is(notNullValue())))
-    // .andExpect(jsonPath("body", is(notNullValue())))
-    // .andExpect(jsonPath("_links.crud", is(notNullValue())))
-    // .andReturn();
-    // }
-    //
-    //
-    // String createTag() throws Exception, JsonProcessingException {
-    // Map tag = new HashMap();
-    // tag.put("name", "getting-started");
-    // String tagLocation = this.mockMvc.perform(post("/crud")
-    // .contentType(MediaTypes.HAL_JSON)
-    // .content(objectMapper.writeValueAsString(tag)))
-    // .andExpect(status().isCreated())
-    // .andExpect(header().string("Location", notNullValue()))
-    // .andReturn()
-    // .getResponse()
-    // .getHeader("Location");
-    // return tagLocation;
-    // }
-    //
-    // void getTag(String tagLocation) throws Exception {
-    // this.mockMvc.perform(get(tagLocation)).andExpect(status().isOk())
-    // .andExpect(jsonPath("name", is(notNullValue())))
-    // .andExpect(jsonPath("_links.tagged-notes", is(notNullValue())));
-    // }
-    //
-    // String createTaggedNote(String tag) throws Exception {
-    // Map note = new HashMap();
-    // note.put("title", "Tagged note creation with cURL");
-    // note.put("body", "An example of how to create a tagged note using cURL");
-    // note.put("tags", Arrays.asList(tag));
-    //
-    // String noteLocation = this.mockMvc.perform(post("/notes")
-    // .contentType(MediaTypes.HAL_JSON)
-    // .content(objectMapper.writeValueAsString(note)))
-    // .andExpect(status().isCreated())
-    // .andExpect(header().string("Location", notNullValue()))
-    // .andReturn()
-    // .getResponse()
-    // .getHeader("Location");
-    // return noteLocation;
-    // }
-    //
-    // void getTags(String noteTagsLocation) throws Exception {
-    // this.mockMvc.perform(get(noteTagsLocation))
-    // .andExpect(status().isOk())
-    // .andExpect(jsonPath("_embedded.tags", hasSize(1)));
-    // }
-    //
-    // void tagExistingNote(String noteLocation, String tagLocation) throws Exception {
-    // Map update = new HashMap();
-    // update.put("tags", Arrays.asList(tagLocation));
-    // this.mockMvc.perform(patch(noteLocation)
-    // .contentType(MediaTypes.HAL_JSON)
-    // .content(objectMapper.writeValueAsString(update)))
-    // .andExpect(status().isNoContent());
-    // }
-    //
-    // MvcResult getTaggedExistingNote(String noteLocation) throws Exception {
-    // return this.mockMvc.perform(get(noteLocation)).andExpect(status().isOk()).andReturn();
-    // }
-    //
-    // void getTagsForExistingNote(String noteTagsLocation) throws Exception {
-    // this.mockMvc.perform(get(noteTagsLocation))
-    // .andExpect(status().isOk()).andExpect(jsonPath("_embedded.tags", hasSize(1)));
-    // }
-    //
-    // private String getLink(MvcResult result, String rel)
-    // throws UnsupportedEncodingException {
-    // return JsonPath.parse(result.getResponse().getContentAsString()).read("_links." + rel + ".href");
-    // }
-
-}