diff --git a/pom.xml b/pom.xml
index f16861cc68..19c602091d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
spring-mvc-no-xml
spring-mvc-xml
spring-openid
+ spring-protobuf
spring-quartz
spring-rest
diff --git a/spring-protobuf/pom.xml b/spring-protobuf/pom.xml
index 28338f26c3..1275d72edf 100644
--- a/spring-protobuf/pom.xml
+++ b/spring-protobuf/pom.xml
@@ -40,4 +40,19 @@
4.5.2
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.3
+
+ 1.8
+ 1.8
+
+
+
+
diff --git a/spring-protobuf/src/main/java/com/baeldung/protobuf/Application.java b/spring-protobuf/src/main/java/com/baeldung/protobuf/Application.java
index 38a49367a3..ce5453af61 100644
--- a/spring-protobuf/src/main/java/com/baeldung/protobuf/Application.java
+++ b/spring-protobuf/src/main/java/com/baeldung/protobuf/Application.java
@@ -1,23 +1,23 @@
package com.baeldung.protobuf;
+import com.baeldung.protobuf.BaeldungTraining.Course;
+import com.baeldung.protobuf.BaeldungTraining.Student;
+import com.baeldung.protobuf.BaeldungTraining.Student.PhoneNumber;
+import com.baeldung.protobuf.BaeldungTraining.Student.PhoneType;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter;
+import org.springframework.web.client.RestTemplate;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.Bean;
-import org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter;
-import org.springframework.web.client.RestTemplate;
-
-import com.baeldung.protobuf.BaeldungTraining.Course;
-import com.baeldung.protobuf.BaeldungTraining.Student;
-import com.baeldung.protobuf.BaeldungTraining.Student.PhoneNumber;
-import com.baeldung.protobuf.BaeldungTraining.Student.PhoneType;
-
@SpringBootApplication
public class Application {
+
@Bean
RestTemplate restTemplate(ProtobufHttpMessageConverter hmc) {
return new RestTemplate(Arrays.asList(hmc));
@@ -29,21 +29,28 @@ public class Application {
}
@Bean
- public CourseRepository createDummyCourses() {
- Map dummy = new HashMap<>();
-
- Course course1 = Course.newBuilder().setId(1).setCourseName("REST with Spring").addAllStudent(createDummyStudents()).build();
- Course course2 = Course.newBuilder().setId(2).setCourseName("Learn Spring Security").addAllStudent(new ArrayList()).build();
-
- dummy.put(course1.getId(), course1);
- dummy.put(course2.getId(), course2);
-
- return new CourseRepository(dummy);
+ public CourseRepository createStubCourses() {
+ Map courses = new HashMap<>();
+
+ Course course1 = Course.newBuilder()
+ .setId(1)
+ .setCourseName("REST with Spring")
+ .addAllStudent(createStubStudents())
+ .build();
+
+ Course course2 = Course.newBuilder()
+ .setId(2)
+ .setCourseName("Learn Spring Security")
+ .addAllStudent(new ArrayList<>())
+ .build();
+
+ courses.put(course1.getId(), course1);
+ courses.put(course2.getId(), course2);
+
+ return new CourseRepository(courses);
}
- private List createDummyStudents() {
- List studentList = new ArrayList<>();
-
+ private List createStubStudents() {
PhoneNumber phone1 = createPhone("123456", PhoneType.MOBILE);
Student student1 = createStudent(1, "John", "Doe", "john.doe@baeldung.com", Arrays.asList(phone1));
@@ -54,8 +61,7 @@ public class Application {
PhoneNumber phone3_2 = createPhone("456789", PhoneType.LANDLINE);
Student student3 = createStudent(3, "Jane", "Doe", "jane.doe@baeldung.com", Arrays.asList(phone3_1, phone3_2));
- studentList.addAll(Arrays.asList(student1, student2, student3));
- return studentList;
+ return Arrays.asList(student1, student2, student3);
}
private Student createStudent(int id, String firstName, String lastName, String email, List phones) {
diff --git a/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseController.java b/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseController.java
index 027f296fa2..807b9a9ea4 100644
--- a/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseController.java
+++ b/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseController.java
@@ -9,6 +9,7 @@ import com.baeldung.protobuf.BaeldungTraining.Course;
@RestController
public class CourseController {
+
@Autowired
CourseRepository courseRepo;
diff --git a/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseRepository.java b/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseRepository.java
index aa00b2a850..60f24abf93 100644
--- a/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseRepository.java
+++ b/spring-protobuf/src/main/java/com/baeldung/protobuf/CourseRepository.java
@@ -1,11 +1,12 @@
package com.baeldung.protobuf;
-import java.util.Map;
-
import com.baeldung.protobuf.BaeldungTraining.Course;
+import java.util.Map;
+
public class CourseRepository {
- Map courses;
+
+ private final Map courses;
public CourseRepository (Map courses) {
this.courses = courses;
diff --git a/spring-protobuf/src/test/java/com/baeldung/protobuf/ApplicationTest.java b/spring-protobuf/src/test/java/com/baeldung/protobuf/ApplicationTest.java
index 026fa04fa2..a17082cea7 100644
--- a/spring-protobuf/src/test/java/com/baeldung/protobuf/ApplicationTest.java
+++ b/spring-protobuf/src/test/java/com/baeldung/protobuf/ApplicationTest.java
@@ -1,13 +1,13 @@
package com.baeldung.protobuf;
-import java.io.IOException;
-import java.io.InputStream;
-
+import com.baeldung.protobuf.BaeldungTraining.Course;
+import com.googlecode.protobuf.format.JsonFormat;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
-
+import org.junit.Test;
+import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.WebIntegrationTest;
@@ -15,20 +15,19 @@ import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.client.RestTemplate;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import java.io.IOException;
+import java.io.InputStream;
-import com.baeldung.protobuf.BaeldungTraining.Course;
-import com.googlecode.protobuf.format.JsonFormat;
-
-import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
+import static org.junit.Assert.assertThat;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest
public class ApplicationTest {
+
private static final String COURSE1_URL = "http://localhost:8080/courses/1";
+
@Autowired
private RestTemplate restTemplate;