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