diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml
index 33d6306c5a..4d3432d47b 100644
--- a/spring-mvc-java/pom.xml
+++ b/spring-mvc-java/pom.xml
@@ -111,6 +111,11 @@
${mockito.version}
test
+
+ com.jayway.jsonpath
+ json-path
+ 2.2.0
+
org.springframework
spring-test
diff --git a/spring-mvc-test/src/main/java/com/baeldung/spring/bean/Greeting.java b/spring-mvc-java/src/main/java/com/baeldung/model/Greeting.java
similarity index 90%
rename from spring-mvc-test/src/main/java/com/baeldung/spring/bean/Greeting.java
rename to spring-mvc-java/src/main/java/com/baeldung/model/Greeting.java
index 11c0a79b0e..db021b8e8c 100644
--- a/spring-mvc-test/src/main/java/com/baeldung/spring/bean/Greeting.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/model/Greeting.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.bean;
+package com.baeldung.model;
public class Greeting {
private int id;
diff --git a/spring-mvc-test/src/main/java/com/baeldung/spring/ApplicationConfig.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/ApplicationConfig.java
similarity index 92%
rename from spring-mvc-test/src/main/java/com/baeldung/spring/ApplicationConfig.java
rename to spring-mvc-java/src/main/java/com/baeldung/spring/web/config/ApplicationConfig.java
index 09be5ee113..261d5793dc 100644
--- a/spring-mvc-test/src/main/java/com/baeldung/spring/ApplicationConfig.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/ApplicationConfig.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring;
+package com.baeldung.spring.web.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -12,7 +12,7 @@ import org.springframework.web.servlet.view.JstlView;
@EnableWebMvc
@Configuration
-@ComponentScan(basePackages = { "com.baeldung.spring.controller" })
+@ComponentScan(basePackages = { "com.baeldung.web.controller" })
public class ApplicationConfig extends WebMvcConfigurerAdapter {
public ApplicationConfig() {
diff --git a/spring-mvc-test/src/main/java/com/baeldung/spring/controller/GreetController.java b/spring-mvc-java/src/main/java/com/baeldung/web/controller/GreetController.java
similarity index 83%
rename from spring-mvc-test/src/main/java/com/baeldung/spring/controller/GreetController.java
rename to spring-mvc-java/src/main/java/com/baeldung/web/controller/GreetController.java
index d563f80918..6f764fedfb 100644
--- a/spring-mvc-test/src/main/java/com/baeldung/spring/controller/GreetController.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/web/controller/GreetController.java
@@ -1,13 +1,8 @@
-package com.baeldung.spring.controller;
+package com.baeldung.web.controller;
+import com.baeldung.model.Greeting;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.baeldung.spring.bean.Greeting;
+import org.springframework.web.bind.annotation.*;
@Controller
public class GreetController {
diff --git a/spring-mvc-test/src/main/webapp/WEB-INF/jsp/index.jsp b/spring-mvc-java/src/main/webapp/WEB-INF/jsp/index.jsp
similarity index 100%
rename from spring-mvc-test/src/main/webapp/WEB-INF/jsp/index.jsp
rename to spring-mvc-java/src/main/webapp/WEB-INF/jsp/index.jsp
diff --git a/spring-mvc-test/src/test/java/com/baeldung/spring/controller/GreetControllerIntegrationTest.java b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java
similarity index 85%
rename from spring-mvc-test/src/test/java/com/baeldung/spring/controller/GreetControllerIntegrationTest.java
rename to spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java
index abed0a977e..61e0f632f1 100644
--- a/spring-mvc-test/src/test/java/com/baeldung/spring/controller/GreetControllerIntegrationTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java
@@ -1,5 +1,7 @@
-package com.baeldung.spring.controller;
+package com.baeldung.web.controller;
+
+import com.baeldung.spring.web.config.ApplicationConfig;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -11,21 +13,18 @@ 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.MvcResult;
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import org.springframework.web.context.WebApplicationContext;
-import com.baeldung.spring.ApplicationConfig;
-
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-
import javax.servlet.ServletContext;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
-@ContextConfiguration(classes = { ApplicationConfig.class })
+@ContextConfiguration(classes = {ApplicationConfig.class})
public class GreetControllerIntegrationTest {
@Autowired
@@ -33,6 +32,9 @@ public class GreetControllerIntegrationTest {
private MockMvc mockMvc;
+ private static final String CONTENT_TYPE = "application/json";
+
+
@Before
public void setup() throws Exception {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
@@ -54,36 +56,36 @@ public class GreetControllerIntegrationTest {
@Test
public void givenGreetURI_whenMockMVC_thenVerifyResponse() throws Exception {
MvcResult mvcResult = this.mockMvc.perform(MockMvcRequestBuilders.get("/greet")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World!!!")).andReturn();
- Assert.assertEquals("application/json;charset=UTF-8", mvcResult.getResponse().getContentType());
+ Assert.assertEquals(CONTENT_TYPE, mvcResult.getResponse().getContentType());
}
@Test
public void givenGreetURIWithPathVariable_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithPathVariable/John")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8"))
+ this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithPathVariable/John")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE))
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John!!!"));
}
@Test
public void givenGreetURIWithPathVariable_2_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithPathVariable/{name}", "Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8"))
+ this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithPathVariable/{name}", "Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE))
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World Doe!!!"));
}
@Test
public void givenGreetURIWithQueryParameter_whenMockMVC_thenVerifyResponse() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithQueryVariable").param("name", "John Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8")).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!"));
+ .andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!"));
}
@Test
public void givenGreetURIWithPost_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPost")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8"))
+ this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPost")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE))
.andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World!!!"));
}
@Test
public void givenGreetURIWithPostAndFormData_whenMockMVC_thenVerifyResponse() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPostAndFormData").param("id", "1").param("name", "John Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8")).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!")).andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1));
+ .andExpect(MockMvcResultMatchers.content().contentType(CONTENT_TYPE)).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!")).andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1));
}
}
\ No newline at end of file
diff --git a/spring-mvc-test/src/test/java/com/baeldung/spring/controller/GreetControllerTest.java b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerTest.java
similarity index 55%
rename from spring-mvc-test/src/test/java/com/baeldung/spring/controller/GreetControllerTest.java
rename to spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerTest.java
index 8e624544cd..0fd71a46dd 100644
--- a/spring-mvc-test/src/test/java/com/baeldung/spring/controller/GreetControllerTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.controller;
+package com.baeldung.web.controller;
import org.junit.Before;
import org.junit.Test;
@@ -9,14 +9,12 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
public class GreetControllerTest {
private MockMvc mockMvc;
+ private static final String CONTENT_TYPE = "application/json";
@Before
public void setup() {
@@ -30,34 +28,34 @@ public class GreetControllerTest {
@Test
public void givenGreetURI_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(get("/greet")).andExpect(status().isOk()).andExpect(content().contentType("application/json;charset=UTF-8")).andExpect(jsonPath("$.message").value("Hello World!!!"));
+ this.mockMvc.perform(get("/greet")).andExpect(status().isOk()).andExpect(content().contentType(CONTENT_TYPE)).andExpect(jsonPath("$.message").value("Hello World!!!"));
}
@Test
public void givenGreetURIWithPathVariable_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(get("/greetWithPathVariable/John")).andExpect(status().isOk()).andExpect(content().contentType("application/json;charset=UTF-8")).andExpect(jsonPath("$.message").value("Hello World John!!!"));
+ this.mockMvc.perform(get("/greetWithPathVariable/John")).andExpect(status().isOk()).andExpect(content().contentType(CONTENT_TYPE)).andExpect(jsonPath("$.message").value("Hello World John!!!"));
}
@Test
public void givenGreetURIWithPathVariable_2_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(get("/greetWithPathVariable/{name}", "Doe")).andExpect(status().isOk()).andExpect(content().contentType("application/json;charset=UTF-8")).andExpect(jsonPath("$.message").value("Hello World Doe!!!"));
+ this.mockMvc.perform(get("/greetWithPathVariable/{name}", "Doe")).andExpect(status().isOk()).andExpect(content().contentType(CONTENT_TYPE)).andExpect(jsonPath("$.message").value("Hello World Doe!!!"));
}
@Test
public void givenGreetURIWithQueryParameter_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.get("/greetWithQueryVariable").param("name", "John Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8")).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!"));
+ this.mockMvc.perform(get("/greetWithQueryVariable").param("name", "John Doe")).andDo(print()).andExpect(status().isOk())
+ .andExpect(content().contentType(CONTENT_TYPE)).andExpect(jsonPath("$.message").value("Hello World John Doe!!!"));
}
@Test
public void givenGreetURIWithPost_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPost")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8"))
- .andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World!!!"));
+ this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPost")).andDo(print()).andExpect(status().isOk()).andExpect(content().contentType(CONTENT_TYPE))
+ .andExpect(jsonPath("$.message").value("Hello World!!!"));
}
@Test
public void givenGreetURIWithPostAndFormData_whenMockMVC_thenVerifyResponse() throws Exception {
- this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPostAndFormData").param("id", "1").param("name", "John Doe")).andDo(print()).andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8")).andExpect(MockMvcResultMatchers.jsonPath("$.message").value("Hello World John Doe!!!")).andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1));
+ this.mockMvc.perform(MockMvcRequestBuilders.post("/greetWithPostAndFormData").param("id", "1").param("name", "John Doe")).andDo(print()).andExpect(status().isOk())
+ .andExpect(content().contentType(CONTENT_TYPE)).andExpect(jsonPath("$.message").value("Hello World John Doe!!!")).andExpect(jsonPath("$.id").value(1));
}
}
diff --git a/spring-mvc-test/README b/spring-mvc-test/README
deleted file mode 100644
index 9f4a0a60d4..0000000000
--- a/spring-mvc-test/README
+++ /dev/null
@@ -1,5 +0,0 @@
-To compile and run the project, execute following command:
-
- mvn clean install org.codehaus.cargo:cargo-maven2-plugin:run
-
-URL: http://localhost:8080/spring-mvc-test/
diff --git a/spring-mvc-test/pom.xml b/spring-mvc-test/pom.xml
deleted file mode 100644
index 3c4875f087..0000000000
--- a/spring-mvc-test/pom.xml
+++ /dev/null
@@ -1,193 +0,0 @@
-
- 4.0.0
- com.baeldung
- spring-mvc-test
- 0.1-SNAPSHOT
- spring-mvc-test
- war
-
-
-
- 4.3.1.RELEASE
-
- 1.7.21
- 1.1.7
-
- 3.4
-
- 1.3
- 4.12
- 1.10.19
- 4.4.5
- 4.5.2
-
-
- 3.5.1
- 2.6
- 2.19.1
- 2.19.1
- 3.0.1
-
-
- 1.5.0
-
-
-
-
-
-
- org.springframework
- spring-web
- ${org.springframework.version}
-
-
- org.springframework
- spring-webmvc
- ${org.springframework.version}
-
-
- org.springframework
- spring-websocket
- ${org.springframework.version}
-
-
-
- com.fasterxml.jackson.core
- jackson-core
- 2.7.3
-
-
- com.fasterxml.jackson.core
- jackson-databind
- 2.7.3
-
-
-
- javax.servlet
- javax.servlet-api
- 3.0.1
- provided
-
-
- javax.servlet
- jstl
- 1.2
- runtime
-
-
-
- org.slf4j
- slf4j-api
- ${org.slf4j.version}
-
-
- org.slf4j
- slf4j-log4j12
- ${org.slf4j.version}
-
-
-
- junit
- junit
- ${junit.version}
- test
-
-
- org.mockito
- mockito-core
- ${mockito.version}
- test
-
-
- com.jayway.jsonpath
- json-path
- 2.2.0
-
-
- org.springframework
- spring-test
- ${org.springframework.version}
- test
-
-
-
-
- spring-mvc-test
-
-
- src/main/resources
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
- 1.8
- 1.8
-
-
-
-
- maven-resources-plugin
- 2.7
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- ${maven-war-plugin.version}
-
- false
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
-
- **/*IntegrationTest.java
-
-
-
-
- org.apache.maven.plugins
- maven-failsafe-plugin
- ${maven-failsafe-plugin.version}
-
-
- **/*IntegrationTest.java
-
-
-
-
-
- integration-test
- verify
-
-
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
- ${cargo-maven2-plugin.version}
-
-
- jetty8x
- embedded
-
-
-
- 8080
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/spring-mvc-test/src/main/java/com/baeldung/web/WebAppInitializer.java b/spring-mvc-test/src/main/java/com/baeldung/web/WebAppInitializer.java
deleted file mode 100644
index 23fad058d0..0000000000
--- a/spring-mvc-test/src/main/java/com/baeldung/web/WebAppInitializer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.baeldung.web;
-
-import java.util.Set;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-
-import org.springframework.web.WebApplicationInitializer;
-import org.springframework.web.context.ContextLoaderListener;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-import org.springframework.web.context.support.GenericWebApplicationContext;
-import org.springframework.web.servlet.DispatcherServlet;
-
-public class WebAppInitializer implements WebApplicationInitializer {
-
- @Override
- public void onStartup(final ServletContext sc) throws ServletException {
-
- final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
- root.scan("com.baeldung.spring");
-
- sc.addListener(new ContextLoaderListener(root));
-
- final ServletRegistration.Dynamic appServlet = sc.addServlet("spring", new DispatcherServlet(new GenericWebApplicationContext()));
- appServlet.setLoadOnStartup(1);
-
- final Set mappingConflicts = appServlet.addMapping("/");
- if (!mappingConflicts.isEmpty()) {
- throw new IllegalStateException("'appServlet' could not be mapped to '/' due " + "to an existing mapping. This is a known issue under Tomcat versions " + "<= 7.0.14; see https://issues.apache.org/bugzilla/show_bug.cgi?id=51278");
- }
- }
-}
diff --git a/spring-mvc-test/src/main/resources/logback.xml b/spring-mvc-test/src/main/resources/logback.xml
deleted file mode 100644
index 166c369905..0000000000
--- a/spring-mvc-test/src/main/resources/logback.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- web - %date [%thread] %-5level %logger{36} - %message%n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/spring-mvc-test/src/main/webapp/WEB-INF/spring-servlet-old.xml b/spring-mvc-test/src/main/webapp/WEB-INF/spring-servlet-old.xml
deleted file mode 100644
index 2b8192e742..0000000000
--- a/spring-mvc-test/src/main/webapp/WEB-INF/spring-servlet-old.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/spring-mvc-test/src/main/webapp/WEB-INF/web-old.xml b/spring-mvc-test/src/main/webapp/WEB-INF/web-old.xml
deleted file mode 100644
index dc0233a7fc..0000000000
--- a/spring-mvc-test/src/main/webapp/WEB-INF/web-old.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
- Spring MVC - Integration Testing
-
-
- contextClass
-
- org.springframework.web.context.support.AnnotationConfigWebApplicationContext
-
-
-
- contextConfigLocation
- com.baeldung.spring
-
-
-
- org.springframework.web.context.ContextLoaderListener
-
-
-
- spring
- org.springframework.web.servlet.DispatcherServlet
- 1
-
-
-
- spring
- /
-
-
\ No newline at end of file