diff --git a/pom.xml b/pom.xml index 5820989816..1966d1485a 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,7 @@ spring-apache-camel spring-batch spring-boot + spring-controller spring-data-cassandra spring-data-elasticsearch spring-data-mongodb diff --git a/spring-batch/.classpath b/spring-batch/.classpath deleted file mode 100644 index e7ac9faf11..0000000000 --- a/spring-batch/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch/.project b/spring-batch/.project deleted file mode 100644 index 0159a7237c..0000000000 --- a/spring-batch/.project +++ /dev/null @@ -1,29 +0,0 @@ - - - spring-batch - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/spring_controller/pom.xml b/spring-controller/pom.xml similarity index 92% rename from spring_controller/pom.xml rename to spring-controller/pom.xml index 661c46a4b9..d9fd79c095 100644 --- a/spring_controller/pom.xml +++ b/spring-controller/pom.xml @@ -1,56 +1,56 @@ - - 4.0.0 - test - test-mvc - 0.0.1-SNAPSHOT - war - - - - org.springframework - spring-webmvc - 4.3.0.RELEASE - - - - javax.servlet - javax.servlet-api - 3.0.1 - compile - - - com.fasterxml.jackson.core - jackson-databind - 2.6.3 - - - com.fasterxml.jackson.core - jackson-annotations - 2.6.3 - - - com.fasterxml.jackson.core - jackson-core - 2.6.3 - - - org.springframework - spring-web - 4.3.0.RELEASE - - - - junit - junit - 4.12 - test - - - org.springframework - spring-test - 4.1.7.RELEASE - - - - + + 4.0.0 + test + spring-controller + 0.0.1-SNAPSHOT + war + + + + org.springframework + spring-webmvc + 4.3.0.RELEASE + + + + javax.servlet + javax.servlet-api + 3.0.1 + compile + + + com.fasterxml.jackson.core + jackson-databind + 2.6.3 + + + com.fasterxml.jackson.core + jackson-annotations + 2.6.3 + + + com.fasterxml.jackson.core + jackson-core + 2.6.3 + + + org.springframework + spring-web + 4.3.0.RELEASE + + + + junit + junit + 4.12 + test + + + org.springframework + spring-test + 4.2.6.RELEASE + + + + \ No newline at end of file diff --git a/spring-controller/src/main/java/com/baledung/controller/RestAnnotatedController.java b/spring-controller/src/main/java/com/baledung/controller/RestAnnotatedController.java new file mode 100644 index 0000000000..15f9ba14d4 --- /dev/null +++ b/spring-controller/src/main/java/com/baledung/controller/RestAnnotatedController.java @@ -0,0 +1,19 @@ +package com.baledung.controller; + +import com.baledung.student.Student; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class RestAnnotatedController { + + @GetMapping(value = "/annotated/student/{studentId}") + public Student getData(@PathVariable Integer studentId) { + Student student = new Student(); + student.setName("Peter"); + student.setId(studentId); + + return student; + } +} diff --git a/spring_controller/src/main/java/com/baledung/controller/RestController.java b/spring-controller/src/main/java/com/baledung/controller/RestController.java similarity index 54% rename from spring_controller/src/main/java/com/baledung/controller/RestController.java rename to spring-controller/src/main/java/com/baledung/controller/RestController.java index 226f66b5df..e9afa88471 100644 --- a/spring_controller/src/main/java/com/baledung/controller/RestController.java +++ b/spring-controller/src/main/java/com/baledung/controller/RestController.java @@ -1,30 +1,21 @@ -package com.baledung.controller; - -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.ResponseBody; - -import com.baledung.student.Student; - -@Controller -public class RestController{ - - /** - * Get a student based on the id of the student - * specified in path variable {studentId} - * @param studentId - * @return - */ - @RequestMapping(value="/student/{studentId}",method=RequestMethod.GET) - public @ResponseBody Student getTestData(@PathVariable Integer studentId) - { - Student student = new Student(); - student.setName("Peter"); - student.setId(studentId); - - return student; - - } -} +package com.baledung.controller; + +import com.baledung.student.Student; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class RestController{ + + @GetMapping(value="/student/{studentId}") + public @ResponseBody Student getTestData(@PathVariable Integer studentId) { + Student student = new Student(); + student.setName("Peter"); + student.setId(studentId); + + return student; + + } +} diff --git a/spring-controller/src/main/java/com/baledung/controller/TestController.java b/spring-controller/src/main/java/com/baledung/controller/TestController.java new file mode 100644 index 0000000000..8a9939b371 --- /dev/null +++ b/spring-controller/src/main/java/com/baledung/controller/TestController.java @@ -0,0 +1,24 @@ + +/** + * @author Prashant Dutta + */ +package com.baledung.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +@Controller +@RequestMapping(value = "/test") +public class TestController { + + @GetMapping + public ModelAndView getTestData() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("welcome"); + mv.getModel().put("data", "Welcome home man"); + + return mv; + } +} \ No newline at end of file diff --git a/spring_controller/src/main/java/com/baledung/student/Student.java b/spring-controller/src/main/java/com/baledung/student/Student.java similarity index 69% rename from spring_controller/src/main/java/com/baledung/student/Student.java rename to spring-controller/src/main/java/com/baledung/student/Student.java index 8cf0b5e263..7a5606415f 100644 --- a/spring_controller/src/main/java/com/baledung/student/Student.java +++ b/spring-controller/src/main/java/com/baledung/student/Student.java @@ -1,40 +1,33 @@ -/** - * - */ -package com.baledung.student; - -public class Student -{ - private String name; - - private int id; - -//----------------------------- getters and setters-------------------------------------------------------- - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - @Override - public int hashCode(){ - return this.id; - } - - @Override - public boolean equals(Object obj){ - return this.name.equals(((Student)obj).getName()); - } - - +package com.baledung.student; + +public class Student { + private String name; + + private int id; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + @Override + public int hashCode(){ + return this.id; + } + + @Override + public boolean equals(Object obj){ + return this.name.equals(((Student)obj).getName()); + } } \ No newline at end of file diff --git a/spring_controller/src/main/resources/test-mvc.xml b/spring-controller/src/main/resources/test-mvc.xml similarity index 97% rename from spring_controller/src/main/resources/test-mvc.xml rename to spring-controller/src/main/resources/test-mvc.xml index c632a5e435..fec69e2dec 100644 --- a/spring_controller/src/main/resources/test-mvc.xml +++ b/spring-controller/src/main/resources/test-mvc.xml @@ -1,24 +1,24 @@ - - - - - - - - /WEB-INF/ - - - .jsp - - + + + + + + + + /WEB-INF/ + + + .jsp + + \ No newline at end of file diff --git a/spring-controller/src/main/webapp/WEB-INF/web.xml b/spring-controller/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..4e0e7a231c --- /dev/null +++ b/spring-controller/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,27 @@ + + + + test-mvc + + org.springframework.web.servlet.DispatcherServlet + + 1 + + contextConfigLocation + /WEB-INF/test-mvc.xml + + + + + test-mvc + /test/* + + + + /WEB-INF/index.jsp + + diff --git a/spring_controller/src/main/webapp/WEB-INF/welcome.jsp b/spring-controller/src/main/webapp/WEB-INF/welcome.jsp similarity index 97% rename from spring_controller/src/main/webapp/WEB-INF/welcome.jsp rename to spring-controller/src/main/webapp/WEB-INF/welcome.jsp index 17d5589e74..61ee4bc7d6 100644 --- a/spring_controller/src/main/webapp/WEB-INF/welcome.jsp +++ b/spring-controller/src/main/webapp/WEB-INF/welcome.jsp @@ -1,12 +1,12 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> - - - - -Insert title here - - -Data returned is ${data} - +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Insert title here + + +Data returned is ${data} + \ No newline at end of file diff --git a/spring-controller/src/test/java/com/baledung/test/ControllerTest.java b/spring-controller/src/test/java/com/baledung/test/ControllerTest.java new file mode 100644 index 0000000000..7f56d09112 --- /dev/null +++ b/spring-controller/src/test/java/com/baledung/test/ControllerTest.java @@ -0,0 +1,83 @@ +package com.baledung.test; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +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.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.servlet.ModelAndView; + +import com.baledung.student.Student; +import com.fasterxml.jackson.databind.ObjectMapper; + +@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration +@ContextConfiguration({"classpath:test-mvc.xml"}) +public class ControllerTest { + + private MockMvc mockMvc; + + @Autowired + private WebApplicationContext wac; + + private Student selectedStudent; + + @Before + public void setUp() { + this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); + + selectedStudent = new Student(); + selectedStudent.setId(1); + selectedStudent.setName("Peter"); + } + + @Test + public void testTestController() throws Exception { + + ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/test/")) + .andReturn() + .getModelAndView(); + + // validate modal data + Assert.assertSame(mv.getModelMap().get("data").toString(), "Welcome home man"); + + // validate view name + Assert.assertSame(mv.getViewName(), "welcome"); + } + + @Test + public void testRestController() throws Exception { + + String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/student/{studentId}", 1)) + .andReturn().getResponse() + .getContentAsString(); + + ObjectMapper reader = new ObjectMapper(); + + Student studentDetails = reader.readValue(responseBody, Student.class); + + Assert.assertEquals(selectedStudent, studentDetails); + + } + + @Test + public void testRestAnnotatedController() throws Exception { + + String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/annotated/student/{studentId}", 1)) + .andReturn().getResponse() + .getContentAsString(); + + ObjectMapper reader = new ObjectMapper(); + + Student studentDetails = reader.readValue(responseBody, Student.class); + + Assert.assertEquals(selectedStudent, studentDetails); + } +} diff --git a/spring_controller/src/main/java/com/baledung/controller/RestAnnotatedController.java b/spring_controller/src/main/java/com/baledung/controller/RestAnnotatedController.java deleted file mode 100644 index c01d074b97..0000000000 --- a/spring_controller/src/main/java/com/baledung/controller/RestAnnotatedController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.baledung.controller; - -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.baledung.student.Student; - -@RestController -public class RestAnnotatedController -{ - @RequestMapping(value="/annotated/student/{studentId}") - public Student getData(@PathVariable Integer studentId) - { - Student student = new Student(); - student.setName("Peter"); - student.setId(studentId); - - return student; - } -} diff --git a/spring_controller/src/main/java/com/baledung/controller/TestController.java b/spring_controller/src/main/java/com/baledung/controller/TestController.java deleted file mode 100644 index 5dafc14d84..0000000000 --- a/spring_controller/src/main/java/com/baledung/controller/TestController.java +++ /dev/null @@ -1,26 +0,0 @@ - -/** - * @author Prashant Dutta - * - */ -package com.baledung.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.servlet.ModelAndView; - -@Controller -@RequestMapping(value="/test") -public class TestController{ - - @RequestMapping(method=RequestMethod.GET) - public ModelAndView getTestData() - { - ModelAndView mv = new ModelAndView(); - mv.setViewName("welcome"); - mv.getModel().put("data", "Welcome home man"); - - return mv; - } -} \ No newline at end of file diff --git a/spring_controller/src/main/webapp/WEB-INF/test-mvc.xml b/spring_controller/src/main/webapp/WEB-INF/test-mvc.xml deleted file mode 100644 index c48e4f94f6..0000000000 --- a/spring_controller/src/main/webapp/WEB-INF/test-mvc.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - /WEB-INF/ - - - .jsp - - - \ No newline at end of file diff --git a/spring_controller/src/main/webapp/WEB-INF/web.xml b/spring_controller/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index a1545a8d51..0000000000 --- a/spring_controller/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-mvc - - org.springframework.web.servlet.DispatcherServlet - - 1 - - contextConfigLocation - /WEB-INF/test-mvc.xml - - - - - test-mvc - /test/* - - - - - - - /WEB-INF/index.jsp - - diff --git a/spring_controller/src/test/java/com/baledung/test/ControllerTest.java b/spring_controller/src/test/java/com/baledung/test/ControllerTest.java deleted file mode 100644 index 6a2567a29a..0000000000 --- a/spring_controller/src/test/java/com/baledung/test/ControllerTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.baledung.test; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -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.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.servlet.ModelAndView; - -import com.baledung.student.Student; -import com.fasterxml.jackson.databind.ObjectMapper; - -/** - *

- * Test class for spring controllers - *

- * @author Prashant.Dutta - */ -@RunWith(SpringJUnit4ClassRunner.class) -@WebAppConfiguration -@ContextConfiguration({"classpath:test-mvc.xml"}) -public class ControllerTest -{ - private MockMvc mockMvc; - - @Autowired - private WebApplicationContext wac; - - private Student selectedStudent; - - @Before - public void setUp() - { - this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); - - selectedStudent = new Student(); - selectedStudent.setId(1); - selectedStudent.setName("Peter"); - } - - /** - * Test basic test controller - * @throws Exception - */ - @Test - public void testTestController() throws Exception - { - - ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/test/")) - .andReturn() - .getModelAndView(); - - // validate modal data - Assert.assertSame(mv.getModelMap().get("data").toString(), "Welcome home man"); - - // validate view name - Assert.assertSame(mv.getViewName(), "welcome"); - } - - /** - * Test rest controller - * @throws Exception - */ - @Test - public void testRestController() throws Exception - { - - String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/student/{studentId}",1)) - .andReturn().getResponse() - .getContentAsString(); - - ObjectMapper reader = new ObjectMapper(); - - Student studentDetails = reader.readValue(responseBody, Student.class); - - Assert.assertEquals(selectedStudent, studentDetails); - - } - - /** - * Test rest controller annotated with test - * @throws Exception - */ - @Test - public void testRestAnnotatedController() throws Exception - { - - String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/annotated/student/{studentId}",1)) - .andReturn().getResponse() - .getContentAsString(); - - ObjectMapper reader = new ObjectMapper(); - - Student studentDetails = reader.readValue(responseBody, Student.class); - - Assert.assertEquals(selectedStudent, studentDetails); - } -}