) request.getAttribute("books")) { %>
+
+ <%= book.getAuthor() %>:
+ <%= book.getTitle() %>
+ More...
+ <% } %>
+ <%@ include file="shopping-cart-hint.jsp"%>
+ <%@ include file="visitor-counter.jsp"%>
+
+
diff --git a/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/login.jsp b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/login.jsp
new file mode 100644
index 0000000000..619068bcae
--- /dev/null
+++ b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/login.jsp
@@ -0,0 +1,16 @@
+
+
+
+ Bookshelf: Login
+
+
+ Please input a username:
+ Login
+
+ <%@ include file="visitor-counter.jsp" %>
+
+
diff --git a/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/shopping-cart-hint.jsp b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/shopping-cart-hint.jsp
new file mode 100644
index 0000000000..7e0c051540
--- /dev/null
+++ b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/shopping-cart-hint.jsp
@@ -0,0 +1,16 @@
+<%@ page import="com.baeldung.patterns.intercepting.filter.data.Order" %>
+<% if (session != null && session.getAttribute("order") != null) { %>
+ <% Order order = ((Order) session.getAttribute("order")); %>
+ <% if (order != null && order.getItems().size() > 0) { %>
+
+
+ Your shopping cart is holding
+ <% if (order.getItems().size() == 1) { %>
+ 1 item.
+ <% } else { %>
+ <%= (order.getItems().size()) %> items.
+ <% } %>
+ Checkout
+
+ <% } %>
+<% } %>
diff --git a/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/shopping-cart.jsp b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/shopping-cart.jsp
new file mode 100644
index 0000000000..5f71d2e54e
--- /dev/null
+++ b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/shopping-cart.jsp
@@ -0,0 +1,29 @@
+<%@ page import="com.baeldung.patterns.intercepting.filter.data.Book" %>
+<%@ page import="com.baeldung.patterns.intercepting.filter.data.Order" %>
+<%@ page import="java.util.Map" %>
+
+
+
+ Bookshelf: Checkout
+
+
+ You are about to buy the following books:
+ Shopping Cart
+ <% Order order = (Order) session.getAttribute("order"); %>
+
+ <% for (Map.Entry entry : order.getItems().entrySet()) { %>
+ -
+ <%= entry.getValue() %> x <%= entry.getKey().getPrice() %>
+
<%= entry.getKey().getTitle() %>
+ by <%= entry.getKey().getAuthor()%>
+
+ <% } %>
+
+
+ Total: <%= request.getAttribute("total") %>
+
+
+
+
diff --git a/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/unknown.jsp b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/unknown.jsp
new file mode 100644
index 0000000000..b52b2de8d5
--- /dev/null
+++ b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/unknown.jsp
@@ -0,0 +1,9 @@
+
+
+
+ Bookshelf: Command unknown
+
+
+ Sorry, this command is not known!
+
+
diff --git a/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/visitor-counter.jsp b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/visitor-counter.jsp
new file mode 100644
index 0000000000..de1c741fb1
--- /dev/null
+++ b/patterns/intercepting-filter/src/main/webapp/WEB-INF/jsp/visitor-counter.jsp
@@ -0,0 +1,5 @@
+<% Integer counter = (Integer) request.getAttribute("counter"); %>
+<% if (counter != null && counter > 0) { %>
+
+ You are visitor #<%= counter %>. Logout
+<% } %>
diff --git a/patterns/pom.xml b/patterns/pom.xml
index 7c23b6f55d..6797891353 100644
--- a/patterns/pom.xml
+++ b/patterns/pom.xml
@@ -4,46 +4,55 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.baeldung.enterprise.patterns
- patterns
- war
-
-
-
- javax.servlet
- javax.servlet-api
- 3.1.0
- provided
-
-
+ com.baeldung.patterns
+ patterns-parent
+ pom
+
+ front-controller
+ intercepting-filter
+
com.baeldung
parent-modules
1.0.0-SNAPSHOT
+ ..
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+ provided
+
+
+
+
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.5.1
-
- 1.8
- 1.8
-
-
-
- org.eclipse.jetty
- jetty-maven-plugin
- 9.4.0.M1
-
-
- /front-controller
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.5.1
+
+ 1.8
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 3.0.0
+
+
+ org.eclipse.jetty
+ jetty-maven-plugin
+ 9.3.12.v20160915
+
+
+
diff --git a/patterns/src/main/java/com/baeldung/enterprise/patterns/front/controller/data/Bookshelf.java b/patterns/src/main/java/com/baeldung/enterprise/patterns/front/controller/data/Bookshelf.java
deleted file mode 100644
index 524e000bd9..0000000000
--- a/patterns/src/main/java/com/baeldung/enterprise/patterns/front/controller/data/Bookshelf.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.baeldung.enterprise.patterns.front.controller.data;
-
-public interface Bookshelf {
-
- default void init() {
- add(new Book("Wilson, Robert Anton & Shea, Robert", "Illuminati", 9.99));
- add(new Book("Fowler, Martin", "Patterns of Enterprise Application Architecture", 27.88));
- }
-
- Bookshelf getInstance();
-
- boolean add(E book);
-
- Book findByTitle(String title);
-}
diff --git a/play-framework/student-api/.gitignore b/play-framework/introduction/.gitignore
similarity index 100%
rename from play-framework/student-api/.gitignore
rename to play-framework/introduction/.gitignore
diff --git a/play-framework/student-api/LICENSE b/play-framework/introduction/LICENSE
similarity index 100%
rename from play-framework/student-api/LICENSE
rename to play-framework/introduction/LICENSE
diff --git a/play-framework/student-api/README b/play-framework/introduction/README
similarity index 100%
rename from play-framework/student-api/README
rename to play-framework/introduction/README
diff --git a/play-framework/student-api/app/Filters.java b/play-framework/introduction/app/Filters.java
similarity index 100%
rename from play-framework/student-api/app/Filters.java
rename to play-framework/introduction/app/Filters.java
diff --git a/play-framework/student-api/app/Module.java b/play-framework/introduction/app/Module.java
similarity index 100%
rename from play-framework/student-api/app/Module.java
rename to play-framework/introduction/app/Module.java
diff --git a/play-framework/student-api/app/controllers/AsyncController.java b/play-framework/introduction/app/controllers/AsyncController.java
similarity index 100%
rename from play-framework/student-api/app/controllers/AsyncController.java
rename to play-framework/introduction/app/controllers/AsyncController.java
diff --git a/play-framework/student-api/app/controllers/CountController.java b/play-framework/introduction/app/controllers/CountController.java
similarity index 100%
rename from play-framework/student-api/app/controllers/CountController.java
rename to play-framework/introduction/app/controllers/CountController.java
diff --git a/play-framework/student-api/app/controllers/HomeController.java b/play-framework/introduction/app/controllers/HomeController.java
similarity index 100%
rename from play-framework/student-api/app/controllers/HomeController.java
rename to play-framework/introduction/app/controllers/HomeController.java
diff --git a/play-framework/student-api/app/controllers/StudentController.java b/play-framework/introduction/app/controllers/StudentController.java
similarity index 100%
rename from play-framework/student-api/app/controllers/StudentController.java
rename to play-framework/introduction/app/controllers/StudentController.java
diff --git a/play-framework/student-api/app/filters/ExampleFilter.java b/play-framework/introduction/app/filters/ExampleFilter.java
similarity index 100%
rename from play-framework/student-api/app/filters/ExampleFilter.java
rename to play-framework/introduction/app/filters/ExampleFilter.java
diff --git a/play-framework/student-api/app/models/Student.java b/play-framework/introduction/app/models/Student.java
similarity index 100%
rename from play-framework/student-api/app/models/Student.java
rename to play-framework/introduction/app/models/Student.java
diff --git a/play-framework/student-api/app/models/StudentStore.java b/play-framework/introduction/app/models/StudentStore.java
similarity index 100%
rename from play-framework/student-api/app/models/StudentStore.java
rename to play-framework/introduction/app/models/StudentStore.java
diff --git a/play-framework/student-api/app/services/ApplicationTimer.java b/play-framework/introduction/app/services/ApplicationTimer.java
similarity index 100%
rename from play-framework/student-api/app/services/ApplicationTimer.java
rename to play-framework/introduction/app/services/ApplicationTimer.java
diff --git a/play-framework/student-api/app/services/AtomicCounter.java b/play-framework/introduction/app/services/AtomicCounter.java
similarity index 100%
rename from play-framework/student-api/app/services/AtomicCounter.java
rename to play-framework/introduction/app/services/AtomicCounter.java
diff --git a/play-framework/student-api/app/services/Counter.java b/play-framework/introduction/app/services/Counter.java
similarity index 100%
rename from play-framework/student-api/app/services/Counter.java
rename to play-framework/introduction/app/services/Counter.java
diff --git a/play-framework/student-api/app/util/Util.java b/play-framework/introduction/app/util/Util.java
similarity index 100%
rename from play-framework/student-api/app/util/Util.java
rename to play-framework/introduction/app/util/Util.java
diff --git a/play-framework/student-api/app/views/index.scala.html b/play-framework/introduction/app/views/index.scala.html
similarity index 100%
rename from play-framework/student-api/app/views/index.scala.html
rename to play-framework/introduction/app/views/index.scala.html
diff --git a/play-framework/student-api/app/views/main.scala.html b/play-framework/introduction/app/views/main.scala.html
similarity index 100%
rename from play-framework/student-api/app/views/main.scala.html
rename to play-framework/introduction/app/views/main.scala.html
diff --git a/play-framework/student-api/bin/activator b/play-framework/introduction/bin/activator
similarity index 100%
rename from play-framework/student-api/bin/activator
rename to play-framework/introduction/bin/activator
diff --git a/play-framework/student-api/bin/activator.bat b/play-framework/introduction/bin/activator.bat
similarity index 100%
rename from play-framework/student-api/bin/activator.bat
rename to play-framework/introduction/bin/activator.bat
diff --git a/play-framework/student-api/build.sbt b/play-framework/introduction/build.sbt
similarity index 100%
rename from play-framework/student-api/build.sbt
rename to play-framework/introduction/build.sbt
diff --git a/play-framework/student-api/conf/application.conf b/play-framework/introduction/conf/application.conf
similarity index 100%
rename from play-framework/student-api/conf/application.conf
rename to play-framework/introduction/conf/application.conf
diff --git a/play-framework/student-api/conf/logback.xml b/play-framework/introduction/conf/logback.xml
similarity index 100%
rename from play-framework/student-api/conf/logback.xml
rename to play-framework/introduction/conf/logback.xml
diff --git a/play-framework/student-api/conf/routes b/play-framework/introduction/conf/routes
similarity index 100%
rename from play-framework/student-api/conf/routes
rename to play-framework/introduction/conf/routes
diff --git a/play-framework/student-api/libexec/activator-launch-1.3.10.jar b/play-framework/introduction/libexec/activator-launch-1.3.10.jar
similarity index 100%
rename from play-framework/student-api/libexec/activator-launch-1.3.10.jar
rename to play-framework/introduction/libexec/activator-launch-1.3.10.jar
diff --git a/play-framework/student-api/project/build.properties b/play-framework/introduction/project/build.properties
similarity index 100%
rename from play-framework/student-api/project/build.properties
rename to play-framework/introduction/project/build.properties
diff --git a/play-framework/student-api/project/plugins.sbt b/play-framework/introduction/project/plugins.sbt
similarity index 100%
rename from play-framework/student-api/project/plugins.sbt
rename to play-framework/introduction/project/plugins.sbt
diff --git a/play-framework/student-api/public/images/favicon.png b/play-framework/introduction/public/images/favicon.png
similarity index 100%
rename from play-framework/student-api/public/images/favicon.png
rename to play-framework/introduction/public/images/favicon.png
diff --git a/play-framework/student-api/public/javascripts/hello.js b/play-framework/introduction/public/javascripts/hello.js
similarity index 100%
rename from play-framework/student-api/public/javascripts/hello.js
rename to play-framework/introduction/public/javascripts/hello.js
diff --git a/play-framework/student-api/public/stylesheets/main.css b/play-framework/introduction/public/stylesheets/main.css
similarity index 100%
rename from play-framework/student-api/public/stylesheets/main.css
rename to play-framework/introduction/public/stylesheets/main.css
diff --git a/play-framework/introduction/test/ApplicationTest.java b/play-framework/introduction/test/ApplicationTest.java
new file mode 100644
index 0000000000..1133978e9a
--- /dev/null
+++ b/play-framework/introduction/test/ApplicationTest.java
@@ -0,0 +1,172 @@
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Arrays;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.junit.Before;
+import org.junit.Test;
+import model.Student;
+import play.test.*;
+import static play.test.Helpers.*;
+
+public class ApplicationTest{
+ private static final String BASE_URL = "http://localhost:9000";
+
+ @Test
+public void testInServer() throws Exception {
+ TestServer server = testServer(3333);
+ running(server, () -> {
+ try {
+ WSClient ws = play.libs.ws.WS.newClient(3333);
+ CompletionStage completionStage = ws.url("/").get();
+ WSResponse response = completionStage.toCompletableFuture().get();
+ ws.close();
+ assertEquals(OK, response.getStatus());
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ });
+}
+ @Test
+ public void whenCreatesRecord_thenCorrect() {
+ Student student = new Student("jody", "west", 50);
+ JSONObject obj = new JSONObject(makeRequest(BASE_URL, "POST", new JSONObject(student)));
+ assertTrue(obj.getBoolean("isSuccessfull"));
+ JSONObject body = obj.getJSONObject("body");
+ assertEquals(student.getAge(), body.getInt("age"));
+ assertEquals(student.getFirstName(), body.getString("firstName"));
+ assertEquals(student.getLastName(), body.getString("lastName"));
+ }
+
+ @Test
+ public void whenDeletesCreatedRecord_thenCorrect() {
+ Student student = new Student("Usain", "Bolt", 25);
+ JSONObject ob1 = new JSONObject(makeRequest(BASE_URL, "POST", new JSONObject(student))).getJSONObject("body");
+ int id = ob1.getInt("id");
+ JSONObject obj1 = new JSONObject(makeRequest(BASE_URL + "/" + id, "POST", new JSONObject()));
+ assertTrue(obj1.getBoolean("isSuccessfull"));
+ makeRequest(BASE_URL + "/" + id, "DELETE", null);
+ JSONObject obj2 = new JSONObject(makeRequest(BASE_URL + "/" + id, "POST", new JSONObject()));
+ assertFalse(obj2.getBoolean("isSuccessfull"));
+ }
+
+ @Test
+ public void whenUpdatesCreatedRecord_thenCorrect() {
+ Student student = new Student("john", "doe", 50);
+ JSONObject body1 = new JSONObject(makeRequest(BASE_URL, "POST", new JSONObject(student))).getJSONObject("body");
+ assertEquals(student.getAge(), body1.getInt("age"));
+ int newAge = 60;
+ body1.put("age", newAge);
+ JSONObject body2 = new JSONObject(makeRequest(BASE_URL, "PUT", body1)).getJSONObject("body");
+ assertFalse(student.getAge() == body2.getInt("age"));
+ assertTrue(newAge == body2.getInt("age"));
+ }
+
+ @Test
+ public void whenGetsAllRecords_thenCorrect() {
+ Student student1 = new Student("jane", "daisy", 50);
+ Student student2 = new Student("john", "daniel", 60);
+ Student student3 = new Student("don", "mason", 55);
+ Student student4 = new Student("scarlet", "ohara", 90);
+
+ makeRequest(BASE_URL, "POST", new JSONObject(student1));
+ makeRequest(BASE_URL, "POST", new JSONObject(student2));
+ makeRequest(BASE_URL, "POST", new JSONObject(student3));
+ makeRequest(BASE_URL, "POST", new JSONObject(student4));
+
+ JSONObject objects = new JSONObject(makeRequest(BASE_URL, "GET", null));
+ assertTrue(objects.getBoolean("isSuccessfull"));
+ JSONArray array = objects.getJSONArray("body");
+ assertTrue(array.length() >= 4);
+ }
+
+ public static String makeRequest(String myUrl, String httpMethod, JSONObject parameters) {
+
+ URL url = null;
+ try {
+ url = new URL(myUrl);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ HttpURLConnection conn = null;
+ try {
+
+ conn = (HttpURLConnection) url.openConnection();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ conn.setDoInput(true);
+
+ conn.setReadTimeout(10000);
+
+ conn.setRequestProperty("Content-Type", "application/json");
+ DataOutputStream dos = null;
+ int respCode = 0;
+ String inputString = null;
+ try {
+ conn.setRequestMethod(httpMethod);
+
+ if (Arrays.asList("POST", "PUT").contains(httpMethod)) {
+ String params = parameters.toString();
+
+ conn.setDoOutput(true);
+
+ dos = new DataOutputStream(conn.getOutputStream());
+ dos.writeBytes(params);
+ dos.flush();
+ dos.close();
+ }
+ respCode = conn.getResponseCode();
+ if (respCode != 200 && respCode != 201) {
+ String error = inputStreamToString(conn.getErrorStream());
+ return error;
+ }
+ inputString = inputStreamToString(conn.getInputStream());
+
+ } catch (IOException e) {
+
+ e.printStackTrace();
+ }
+ return inputString;
+ }
+
+ public static String inputStreamToString(InputStream is) {
+ BufferedReader br = null;
+ StringBuilder sb = new StringBuilder();
+
+ String line;
+ try {
+
+ br = new BufferedReader(new InputStreamReader(is));
+ while ((line = br.readLine()) != null) {
+ sb.append(line);
+ }
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (br != null) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return sb.toString();
+
+ }
+}
diff --git a/routing-in-play/.gitignore b/play-framework/routing-in-play/.gitignore
similarity index 100%
rename from routing-in-play/.gitignore
rename to play-framework/routing-in-play/.gitignore
diff --git a/routing-in-play/LICENSE b/play-framework/routing-in-play/LICENSE
similarity index 100%
rename from routing-in-play/LICENSE
rename to play-framework/routing-in-play/LICENSE
diff --git a/routing-in-play/README b/play-framework/routing-in-play/README
similarity index 100%
rename from routing-in-play/README
rename to play-framework/routing-in-play/README
diff --git a/routing-in-play/app/Filters.java b/play-framework/routing-in-play/app/Filters.java
similarity index 100%
rename from routing-in-play/app/Filters.java
rename to play-framework/routing-in-play/app/Filters.java
diff --git a/routing-in-play/app/Module.java b/play-framework/routing-in-play/app/Module.java
similarity index 100%
rename from routing-in-play/app/Module.java
rename to play-framework/routing-in-play/app/Module.java
diff --git a/routing-in-play/app/controllers/HomeController.java b/play-framework/routing-in-play/app/controllers/HomeController.java
similarity index 100%
rename from routing-in-play/app/controllers/HomeController.java
rename to play-framework/routing-in-play/app/controllers/HomeController.java
diff --git a/routing-in-play/app/filters/ExampleFilter.java b/play-framework/routing-in-play/app/filters/ExampleFilter.java
similarity index 100%
rename from routing-in-play/app/filters/ExampleFilter.java
rename to play-framework/routing-in-play/app/filters/ExampleFilter.java
diff --git a/routing-in-play/app/services/ApplicationTimer.java b/play-framework/routing-in-play/app/services/ApplicationTimer.java
similarity index 100%
rename from routing-in-play/app/services/ApplicationTimer.java
rename to play-framework/routing-in-play/app/services/ApplicationTimer.java
diff --git a/routing-in-play/app/services/AtomicCounter.java b/play-framework/routing-in-play/app/services/AtomicCounter.java
similarity index 100%
rename from routing-in-play/app/services/AtomicCounter.java
rename to play-framework/routing-in-play/app/services/AtomicCounter.java
diff --git a/routing-in-play/app/services/Counter.java b/play-framework/routing-in-play/app/services/Counter.java
similarity index 100%
rename from routing-in-play/app/services/Counter.java
rename to play-framework/routing-in-play/app/services/Counter.java
diff --git a/routing-in-play/app/views/index.scala.html b/play-framework/routing-in-play/app/views/index.scala.html
similarity index 100%
rename from routing-in-play/app/views/index.scala.html
rename to play-framework/routing-in-play/app/views/index.scala.html
diff --git a/routing-in-play/app/views/main.scala.html b/play-framework/routing-in-play/app/views/main.scala.html
similarity index 100%
rename from routing-in-play/app/views/main.scala.html
rename to play-framework/routing-in-play/app/views/main.scala.html
diff --git a/routing-in-play/bin/activator b/play-framework/routing-in-play/bin/activator
similarity index 100%
rename from routing-in-play/bin/activator
rename to play-framework/routing-in-play/bin/activator
diff --git a/routing-in-play/bin/activator.bat b/play-framework/routing-in-play/bin/activator.bat
similarity index 100%
rename from routing-in-play/bin/activator.bat
rename to play-framework/routing-in-play/bin/activator.bat
diff --git a/routing-in-play/build.sbt b/play-framework/routing-in-play/build.sbt
similarity index 100%
rename from routing-in-play/build.sbt
rename to play-framework/routing-in-play/build.sbt
diff --git a/routing-in-play/conf/application.conf b/play-framework/routing-in-play/conf/application.conf
similarity index 100%
rename from routing-in-play/conf/application.conf
rename to play-framework/routing-in-play/conf/application.conf
diff --git a/routing-in-play/conf/logback.xml b/play-framework/routing-in-play/conf/logback.xml
similarity index 100%
rename from routing-in-play/conf/logback.xml
rename to play-framework/routing-in-play/conf/logback.xml
diff --git a/routing-in-play/conf/routes b/play-framework/routing-in-play/conf/routes
similarity index 100%
rename from routing-in-play/conf/routes
rename to play-framework/routing-in-play/conf/routes
diff --git a/routing-in-play/libexec/activator-launch-1.3.10.jar b/play-framework/routing-in-play/libexec/activator-launch-1.3.10.jar
similarity index 100%
rename from routing-in-play/libexec/activator-launch-1.3.10.jar
rename to play-framework/routing-in-play/libexec/activator-launch-1.3.10.jar
diff --git a/routing-in-play/project/build.properties b/play-framework/routing-in-play/project/build.properties
similarity index 100%
rename from routing-in-play/project/build.properties
rename to play-framework/routing-in-play/project/build.properties
diff --git a/routing-in-play/project/plugins.sbt b/play-framework/routing-in-play/project/plugins.sbt
similarity index 100%
rename from routing-in-play/project/plugins.sbt
rename to play-framework/routing-in-play/project/plugins.sbt
diff --git a/routing-in-play/public/images/favicon.png b/play-framework/routing-in-play/public/images/favicon.png
similarity index 100%
rename from routing-in-play/public/images/favicon.png
rename to play-framework/routing-in-play/public/images/favicon.png
diff --git a/routing-in-play/public/javascripts/hello.js b/play-framework/routing-in-play/public/javascripts/hello.js
similarity index 100%
rename from routing-in-play/public/javascripts/hello.js
rename to play-framework/routing-in-play/public/javascripts/hello.js
diff --git a/routing-in-play/public/stylesheets/main.css b/play-framework/routing-in-play/public/stylesheets/main.css
similarity index 100%
rename from routing-in-play/public/stylesheets/main.css
rename to play-framework/routing-in-play/public/stylesheets/main.css
diff --git a/routing-in-play/test/ApplicationTest.java b/play-framework/routing-in-play/test/ApplicationTest.java
similarity index 100%
rename from routing-in-play/test/ApplicationTest.java
rename to play-framework/routing-in-play/test/ApplicationTest.java
diff --git a/routing-in-play/test/IntegrationTest.java b/play-framework/routing-in-play/test/IntegrationTest.java
similarity index 100%
rename from routing-in-play/test/IntegrationTest.java
rename to play-framework/routing-in-play/test/IntegrationTest.java
diff --git a/pom.xml b/pom.xml
index eee9f07ab9..95182ab63c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,22 +17,22 @@
assertj
apache-cxf
- autovalue-tutorial
+ autovalue
cdi
core-java
- core-java-8
couchbase-sdk
dozer
- dependency-injection
deltaspike
patterns
- feign-client
+ feign
+ flyway
+
gson
guava
guava18
@@ -46,19 +46,19 @@
jackson
javaxval
jjwt
- jooq-spring
+
jpa-storedprocedure
json
json-path
junit5
- jee7schedule
+ jee7
log4j
mockito
mocks
- mutation-testing
+ testing
orika
@@ -75,6 +75,7 @@
spring-autowire
spring-batch
spring-boot
+ spring-core
spring-cucumber
spring-data-cassandra
spring-data-couchbase-2
@@ -83,12 +84,14 @@
spring-data-mongodb
spring-data-redis
spring-data-rest
+
spring-exceptions
spring-freemarker
spring-hibernate3
spring-hibernate4
- spring-jpa
spring-jms
+ spring-jooq
+ spring-jpa
spring-katharsis
spring-mockito
spring-mvc-java
@@ -125,6 +128,7 @@
jsf
xml
+ xmlunit2
lombok
redis
diff --git a/resteasy/pom.xml b/resteasy/pom.xml
index ec9e87b0d1..04e8576e1f 100644
--- a/resteasy/pom.xml
+++ b/resteasy/pom.xml
@@ -10,6 +10,8 @@
3.0.14.Final
+ 2.19.1
+ 1.6.0
@@ -23,6 +25,35 @@
1.8
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+ true
+
+ jetty8x
+ embedded
+
+
+
+ 8082
+
+
+
+
@@ -73,5 +104,66 @@
+
+
+ live
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*IntegrationTest.java
+
+
+ **/*LiveTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+ false
+
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resteasy/src/test/java/com/baeldung/server/RestEasyClientTest.java b/resteasy/src/test/java/com/baeldung/server/RestEasyClientLiveTest.java
similarity index 61%
rename from resteasy/src/test/java/com/baeldung/server/RestEasyClientTest.java
rename to resteasy/src/test/java/com/baeldung/server/RestEasyClientLiveTest.java
index ef18b0f23f..7e709edb96 100644
--- a/resteasy/src/test/java/com/baeldung/server/RestEasyClientTest.java
+++ b/resteasy/src/test/java/com/baeldung/server/RestEasyClientLiveTest.java
@@ -1,7 +1,15 @@
package com.baeldung.server;
-import com.baeldung.client.ServicesInterface;
-import com.baeldung.model.Movie;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Locale;
+
+import javax.naming.NamingException;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
+
import org.apache.commons.io.IOUtils;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
@@ -14,18 +22,13 @@ import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
import org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine;
import org.junit.Before;
import org.junit.Test;
-import javax.naming.NamingException;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.text.SimpleDateFormat;
-import java.util.List;
-import java.util.Locale;
-public class RestEasyClientTest {
+import com.baeldung.client.ServicesInterface;
+import com.baeldung.model.Movie;
- public static final UriBuilder FULL_PATH = UriBuilder.fromPath("http://127.0.0.1:8080/RestEasyTutorial/rest");
+public class RestEasyClientLiveTest {
+
+ public static final UriBuilder FULL_PATH = UriBuilder.fromPath("http://127.0.0.1:8082/RestEasyTutorial/rest");
Movie transformerMovie = null;
Movie batmanMovie = null;
ObjectMapper jsonMapper = null;
@@ -35,22 +38,22 @@ public class RestEasyClientTest {
jsonMapper = new ObjectMapper().configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
jsonMapper.configure(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
- SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
+ final SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
jsonMapper.setDateFormat(sdf);
- try (InputStream inputStream = new RestEasyClientTest().getClass().getResourceAsStream("./movies/transformer.json")) {
- String transformerMovieAsString = String.format(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
+ try (InputStream inputStream = new RestEasyClientLiveTest().getClass().getResourceAsStream("./movies/transformer.json")) {
+ final String transformerMovieAsString = String.format(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
transformerMovie = jsonMapper.readValue(transformerMovieAsString, Movie.class);
- } catch (Exception e) {
+ } catch (final Exception e) {
e.printStackTrace();
throw new RuntimeException("Test is going to die ...", e);
}
- try (InputStream inputStream = new RestEasyClientTest().getClass().getResourceAsStream("./movies/batman.json")) {
- String batmanMovieAsString = String.format(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
+ try (InputStream inputStream = new RestEasyClientLiveTest().getClass().getResourceAsStream("./movies/batman.json")) {
+ final String batmanMovieAsString = String.format(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
batmanMovie = jsonMapper.readValue(batmanMovieAsString, Movie.class);
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new RuntimeException("Test is going to die ...", e);
}
}
@@ -58,41 +61,41 @@ public class RestEasyClientTest {
@Test
public void testListAllMovies() {
- ResteasyClient client = new ResteasyClientBuilder().build();
- ResteasyWebTarget target = client.target(FULL_PATH);
- ServicesInterface proxy = target.proxy(ServicesInterface.class);
+ final ResteasyClient client = new ResteasyClientBuilder().build();
+ final ResteasyWebTarget target = client.target(FULL_PATH);
+ final ServicesInterface proxy = target.proxy(ServicesInterface.class);
Response moviesResponse = proxy.addMovie(transformerMovie);
moviesResponse.close();
moviesResponse = proxy.addMovie(batmanMovie);
moviesResponse.close();
- List movies = proxy.listMovies();
+ final List movies = proxy.listMovies();
System.out.println(movies);
}
@Test
public void testMovieByImdbId() {
- String transformerImdbId = "tt0418279";
+ final String transformerImdbId = "tt0418279";
- ResteasyClient client = new ResteasyClientBuilder().build();
- ResteasyWebTarget target = client.target(FULL_PATH);
- ServicesInterface proxy = target.proxy(ServicesInterface.class);
+ final ResteasyClient client = new ResteasyClientBuilder().build();
+ final ResteasyWebTarget target = client.target(FULL_PATH);
+ final ServicesInterface proxy = target.proxy(ServicesInterface.class);
- Response moviesResponse = proxy.addMovie(transformerMovie);
+ final Response moviesResponse = proxy.addMovie(transformerMovie);
moviesResponse.close();
- Movie movies = proxy.movieByImdbId(transformerImdbId);
+ final Movie movies = proxy.movieByImdbId(transformerImdbId);
System.out.println(movies);
}
@Test
public void testAddMovie() {
- ResteasyClient client = new ResteasyClientBuilder().build();
- ResteasyWebTarget target = client.target(FULL_PATH);
- ServicesInterface proxy = target.proxy(ServicesInterface.class);
+ final ResteasyClient client = new ResteasyClientBuilder().build();
+ final ResteasyWebTarget target = client.target(FULL_PATH);
+ final ServicesInterface proxy = target.proxy(ServicesInterface.class);
Response moviesResponse = proxy.addMovie(batmanMovie);
moviesResponse.close();
@@ -109,17 +112,15 @@ public class RestEasyClientTest {
@Test
public void testAddMovieMultiConnection() {
- PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
- CloseableHttpClient httpClient = HttpClients.custom()
- .setConnectionManager(cm)
- .build();
- ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient);
- ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();
- ResteasyWebTarget target = client.target(FULL_PATH);
- ServicesInterface proxy = target.proxy(ServicesInterface.class);
+ final PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+ final CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();
+ final ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient);
+ final ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();
+ final ResteasyWebTarget target = client.target(FULL_PATH);
+ final ServicesInterface proxy = target.proxy(ServicesInterface.class);
- Response batmanResponse = proxy.addMovie(batmanMovie);
- Response transformerResponse = proxy.addMovie(transformerMovie);
+ final Response batmanResponse = proxy.addMovie(batmanMovie);
+ final Response transformerResponse = proxy.addMovie(transformerMovie);
if (batmanResponse.getStatus() != Response.Status.CREATED.getStatusCode()) {
System.out.println("Batman Movie creation Failed : HTTP error code : " + batmanResponse.getStatus());
@@ -132,16 +133,14 @@ public class RestEasyClientTest {
transformerResponse.close();
cm.close();
-
-
}
@Test
public void testDeleteMovie() {
- ResteasyClient client = new ResteasyClientBuilder().build();
- ResteasyWebTarget target = client.target(FULL_PATH);
- ServicesInterface proxy = target.proxy(ServicesInterface.class);
+ final ResteasyClient client = new ResteasyClientBuilder().build();
+ final ResteasyWebTarget target = client.target(FULL_PATH);
+ final ServicesInterface proxy = target.proxy(ServicesInterface.class);
Response moviesResponse = proxy.addMovie(batmanMovie);
moviesResponse.close();
@@ -159,9 +158,9 @@ public class RestEasyClientTest {
@Test
public void testUpdateMovie() {
- ResteasyClient client = new ResteasyClientBuilder().build();
- ResteasyWebTarget target = client.target(FULL_PATH);
- ServicesInterface proxy = target.proxy(ServicesInterface.class);
+ final ResteasyClient client = new ResteasyClientBuilder().build();
+ final ResteasyWebTarget target = client.target(FULL_PATH);
+ final ServicesInterface proxy = target.proxy(ServicesInterface.class);
Response moviesResponse = proxy.addMovie(batmanMovie);
moviesResponse.close();
diff --git a/selenium-junit-testng/pom.xml b/selenium-junit-testng/pom.xml
index 861c0b1986..cc96ea8529 100644
--- a/selenium-junit-testng/pom.xml
+++ b/selenium-junit-testng/pom.xml
@@ -53,7 +53,7 @@
org.seleniumhq.selenium
selenium-java
- 2.53.1
+ 3.0.1
junit
diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java b/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java
index 1007bf7503..58d47c0162 100644
--- a/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java
+++ b/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java
@@ -1,6 +1,7 @@
package main.java.com.baeldung.selenium;
import java.util.List;
+import java.util.NoSuchElementException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
@@ -14,6 +15,7 @@ public class SeleniumExample {
private String url = "http://www.baeldung.com/";
public SeleniumExample() {
+ System.setProperty("webdriver.firefox.marionette", "C:\\selenium\\geckodriver.exe");
webDriver = new FirefoxDriver();
webDriver.manage().window().maximize();
webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
@@ -36,8 +38,12 @@ public class SeleniumExample {
private void closeOverlay() {
List webElementList = webDriver.findElements(By.tagName("a"));
- if (webElementList != null && !webElementList.isEmpty()) {
- webElementList.stream().filter(webElement -> "Close".equalsIgnoreCase(webElement.getAttribute("title"))).findAny().get().click();
+ try {
+ if (webElementList != null && !webElementList.isEmpty()) {
+ webElementList.stream().filter(webElement -> "Close".equalsIgnoreCase(webElement.getAttribute("title"))).findAny().orElseThrow(NoSuchElementException::new).click();
+ }
+ } catch (NoSuchElementException exception) {
+ exception.printStackTrace();
}
}
@@ -50,8 +56,6 @@ public class SeleniumExample {
}
public boolean isAuthorInformationAvailable() {
- return webDriver
- .findElement(By.xpath("//*[contains(text(), 'Eugen – an engineer')]"))
- .isDisplayed();
+ return webDriver.findElement(By.xpath("//*[contains(text(), 'Eugen – an engineer')]")).isDisplayed();
}
}
diff --git a/sockets/README.md b/sockets/README.md
deleted file mode 100644
index ad8811ee80..0000000000
--- a/sockets/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-### Relevant Articles:
-- [A Guide to Java Sockets](http://www.baeldung.com/a-guide-to-java-sockets)
diff --git a/sockets/pom.xml b/sockets/pom.xml
deleted file mode 100644
index 24e8e436f3..0000000000
--- a/sockets/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
- 4.0.0
- com.baeldung
- sockets
- 1.0
- sockets
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.3
-
- 8
- 8
-
-
-
-
-
-
- junit
- junit
- 4.3
- test
-
-
-
-
diff --git a/sockets/src/main/java/com/baeldung/socket/EchoClient.java b/sockets/src/main/java/com/baeldung/socket/EchoClient.java
deleted file mode 100644
index e8ec97c80a..0000000000
--- a/sockets/src/main/java/com/baeldung/socket/EchoClient.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.baeldung.socket;
-
-import java.io.*;
-import java.net.*;
-
-public class EchoClient {
- private Socket clientSocket;
- private PrintWriter out;
- private BufferedReader in;
-
- public void startConnection(String ip, int port) {
- try {
- clientSocket = new Socket(ip, port);
- out = new PrintWriter(clientSocket.getOutputStream(), true);
- in = new BufferedReader(new InputStreamReader(
- clientSocket.getInputStream()));
- } catch (IOException e) {
- System.out.print(e);
- }
-
- }
-
- public String sendMessage(String msg) {
- try {
- out.println(msg);
- String resp = in.readLine();
- return resp;
- } catch (Exception e) {
- return null;
- }
- }
-
- public void stopConnection() {
- try {
- in.close();
- out.close();
- clientSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-}
diff --git a/sockets/src/main/java/com/baeldung/socket/EchoMultiServer.java b/sockets/src/main/java/com/baeldung/socket/EchoMultiServer.java
deleted file mode 100644
index 2ece1ceebe..0000000000
--- a/sockets/src/main/java/com/baeldung/socket/EchoMultiServer.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.baeldung.socket;
-
-import java.net.*;
-import java.io.*;
-
-public class EchoMultiServer {
- private ServerSocket serverSocket;
-
- public void start(int port) {
- try {
- serverSocket = new ServerSocket(port);
- while (true)
- new EchoClientHandler(serverSocket.accept()).run();
-
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- stop();
- }
-
- }
-
- public void stop() {
- try {
-
- serverSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- private static class EchoClientHandler extends Thread {
- private Socket clientSocket;
- private PrintWriter out;
- private BufferedReader in;
-
- public EchoClientHandler(Socket socket) {
- this.clientSocket = socket;
- }
-
- public void run() {
- try {
- out = new PrintWriter(clientSocket.getOutputStream(), true);
- in = new BufferedReader(new InputStreamReader(
- clientSocket.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- if (".".equals(inputLine)) {
- out.println("bye");
- break;
- }
- out.println(inputLine);
- }
-
- in.close();
- out.close();
- clientSocket.close();
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
-
- public static void main(String[] args) {
- EchoMultiServer server = new EchoMultiServer();
- server.start(5555);
- }
-
-}
diff --git a/sockets/src/main/java/com/baeldung/socket/EchoServer.java b/sockets/src/main/java/com/baeldung/socket/EchoServer.java
deleted file mode 100644
index 3607afa7f5..0000000000
--- a/sockets/src/main/java/com/baeldung/socket/EchoServer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.baeldung.socket;
-
-import java.net.*;
-import java.io.*;
-
-public class EchoServer {
- private ServerSocket serverSocket;
- private Socket clientSocket;
- private PrintWriter out;
- private BufferedReader in;
-
- public void start(int port) {
- try {
- serverSocket = new ServerSocket(port);
- clientSocket = serverSocket.accept();
- out = new PrintWriter(clientSocket.getOutputStream(), true);
- in = new BufferedReader(new InputStreamReader(
- clientSocket.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- if (".".equals(inputLine)) {
- out.println("good bye");
- break;
- }
- out.println(inputLine);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- public void stop() {
- try {
- in.close();
- out.close();
- clientSocket.close();
- serverSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- public static void main(String[] args) {
- EchoServer server = new EchoServer();
- server.start(4444);
- }
-
-}
diff --git a/sockets/src/main/java/com/baeldung/socket/GreetClient.java b/sockets/src/main/java/com/baeldung/socket/GreetClient.java
deleted file mode 100644
index 7252827c87..0000000000
--- a/sockets/src/main/java/com/baeldung/socket/GreetClient.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.baeldung.socket;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.Socket;
-
-public class GreetClient {
- private Socket clientSocket;
- private PrintWriter out;
- private BufferedReader in;
-
- public void startConnection(String ip, int port) {
- try {
- clientSocket = new Socket(ip, port);
- out = new PrintWriter(clientSocket.getOutputStream(), true);
- in = new BufferedReader(new InputStreamReader(
- clientSocket.getInputStream()));
- } catch (IOException e) {
-
- }
-
- }
-
- public String sendMessage(String msg) {
- try {
- out.println(msg);
- String resp = in.readLine();
- return resp;
- } catch (Exception e) {
- return null;
- }
- }
-
- public void stopConnection() {
- try {
- in.close();
- out.close();
- clientSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
-}
diff --git a/sockets/src/main/java/com/baeldung/socket/GreetServer.java b/sockets/src/main/java/com/baeldung/socket/GreetServer.java
deleted file mode 100644
index 8bf675c7b9..0000000000
--- a/sockets/src/main/java/com/baeldung/socket/GreetServer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.baeldung.socket;
-
-import java.net.*;
-import java.io.*;
-
-public class GreetServer {
- private ServerSocket serverSocket;
- private Socket clientSocket;
- private PrintWriter out;
- private BufferedReader in;
-
-
- public void start(int port) {
- try {
- serverSocket = new ServerSocket(port);
- clientSocket = serverSocket.accept();
- out = new PrintWriter(clientSocket.getOutputStream(), true);
- in = new BufferedReader(new InputStreamReader(
- clientSocket.getInputStream()));
- String greeting = in.readLine();
- if ("hello server".equals(greeting))
- out.println("hello client");
- else
- out.println("unrecognised greeting");
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
- public void stop() {
- try {
- in.close();
- out.close();
- clientSocket.close();
- serverSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
- public static void main(String[] args) {
- GreetServer server=new GreetServer();
- server.start(6666);
- }
-
-}
diff --git a/sockets/src/test/java/com/baeldung/socket/EchoMultiTest.java b/sockets/src/test/java/com/baeldung/socket/EchoMultiTest.java
deleted file mode 100644
index 19a59c211c..0000000000
--- a/sockets/src/test/java/com/baeldung/socket/EchoMultiTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.baeldung.socket;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.concurrent.Executors;
-
-import static org.junit.Assert.assertEquals;
-
-public class EchoMultiTest {
-
- {
- Executors.newSingleThreadExecutor().submit(() -> new EchoMultiServer().start(5555));
- }
-
-
- @Test
- public void givenClient1_whenServerResponds_thenCorrect() {
- EchoClient client = new EchoClient();
- client.startConnection("127.0.0.1", 5555);
- String msg1 = client.sendMessage("hello");
- String msg2 = client.sendMessage("world");
- String terminate = client.sendMessage(".");
- assertEquals(msg1, "hello");
- assertEquals(msg2, "world");
- assertEquals(terminate, "bye");
- client.stopConnection();
- }
-
- @Test
- public void givenClient2_whenServerResponds_thenCorrect() {
- EchoClient client = new EchoClient();
- client.startConnection("127.0.0.1", 5555);
- String msg1 = client.sendMessage("hello");
- String msg2 = client.sendMessage("world");
- String terminate = client.sendMessage(".");
- assertEquals(msg1, "hello");
- assertEquals(msg2, "world");
- assertEquals(terminate, "bye");
- client.stopConnection();
- }
-
- @Test
- public void givenClient3_whenServerResponds_thenCorrect() {
- EchoClient client = new EchoClient();
- client.startConnection("127.0.0.1", 5555);
- String msg1 = client.sendMessage("hello");
- String msg2 = client.sendMessage("world");
- String terminate = client.sendMessage(".");
- assertEquals(msg1, "hello");
- assertEquals(msg2, "world");
- assertEquals(terminate, "bye");
- client.stopConnection();
- }
-
-}
diff --git a/sockets/src/test/java/com/baeldung/socket/EchoTest.java b/sockets/src/test/java/com/baeldung/socket/EchoTest.java
deleted file mode 100644
index 0f0c02e4d8..0000000000
--- a/sockets/src/test/java/com/baeldung/socket/EchoTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.baeldung.socket;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.concurrent.Executors;
-
-import static org.junit.Assert.assertEquals;
-
-public class EchoTest {
- {
- Executors.newSingleThreadExecutor().submit(() -> new EchoServer().start(4444));
- }
-
- EchoClient client = new EchoClient();
-
- @Before
- public void init() {
- client.startConnection("127.0.0.1", 4444);
- }
-
- @Test
- public void givenClient_whenServerEchosMessage_thenCorrect() {
-
- String resp1 = client.sendMessage("hello");
- String resp2 = client.sendMessage("world");
- String resp3 = client.sendMessage("!");
- String resp4 = client.sendMessage(".");
- assertEquals("hello", resp1);
- assertEquals("world", resp2);
- assertEquals("!", resp3);
- assertEquals("good bye", resp4);
- }
-
- @After
- public void tearDown() {
- client.stopConnection();
- }
-
-}
diff --git a/spring-boot-data-dynamodb/.gitignore b/spring-boot-data-dynamodb/.gitignore
new file mode 100644
index 0000000000..e26d6af438
--- /dev/null
+++ b/spring-boot-data-dynamodb/.gitignore
@@ -0,0 +1,4 @@
+/target/
+.settings/
+.classpath
+.project
diff --git a/spring-boot-data-dynamodb/README.MD b/spring-boot-data-dynamodb/README.MD
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/spring-boot-data-dynamodb/README.MD
@@ -0,0 +1 @@
+
diff --git a/spring-boot-data-dynamodb/pom.xml b/spring-boot-data-dynamodb/pom.xml
new file mode 100644
index 0000000000..11e1366f3e
--- /dev/null
+++ b/spring-boot-data-dynamodb/pom.xml
@@ -0,0 +1,177 @@
+
+ 4.0.0
+ com.baeldung
+ spring-boot-dynamodb
+ 0.0.1-SNAPSHOT
+ jar
+ Spring Boot Actuator
+ This is simple boot application for Spring boot actuator test
+
+
+ spring-boot-starter-parent
+ org.springframework.boot
+ 1.2.3.RELEASE
+
+
+
+
+
+ com.baeldung.Application
+ UTF-8
+ 1.8
+ 4.3.1.RELEASE
+
+
+
+
+
+ org.springframework.data
+ spring-data-releasetrain
+ Gosling-SR1
+ pom
+ import
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+
+ io.dropwizard.metrics
+ metrics-core
+
+
+
+ com.h2database
+ h2
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ com.jayway.jsonpath
+ json-path
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+
+ org.webjars
+ bootstrap
+ 3.3.4
+
+
+
+ com.amazonaws
+ aws-java-sdk-dynamodb
+ 1.11.34
+
+
+ com.github.derjust
+ spring-data-dynamodb
+ 4.3.1
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.2
+
+
+
+
+ spring-boot
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+
+
+
+
+
+
+
+ spring-snapshots
+ Spring Snapshots
+ https://repo.spring.io/snapshot
+
+ true
+
+
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/milestone
+
+ false
+
+
+
+
+
+ spring-snapshots
+ Spring Snapshots
+ https://repo.spring.io/snapshot
+
+ true
+
+
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/milestone
+
+ false
+
+
+
+
+
diff --git a/spring-boot-data-dynamodb/src/main/java/com/baeldung/Application.java b/spring-boot-data-dynamodb/src/main/java/com/baeldung/Application.java
new file mode 100644
index 0000000000..f5e0e98fd4
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/java/com/baeldung/Application.java
@@ -0,0 +1,13 @@
+package com.baeldung;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringBootApplication
+@ComponentScan(basePackages = { "com.baeldung" })
+public class Application {
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+}
diff --git a/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/config/DynamoDBConfig.java b/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/config/DynamoDBConfig.java
new file mode 100644
index 0000000000..4bc8a128bc
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/config/DynamoDBConfig.java
@@ -0,0 +1,40 @@
+package com.baeldung.spring.data.es.config;
+
+import com.amazonaws.auth.AWSCredentials;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
+import org.socialsignin.spring.data.dynamodb.repository.config.EnableDynamoDBRepositories;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.StringUtils;
+
+@Configuration
+@EnableDynamoDBRepositories(basePackages = "com.baeldung.spring.data.es.repositories")
+public class DynamoDBConfig {
+
+ @Value("${amazon.dynamodb.endpoint}")
+ private String amazonDynamoDBEndpoint;
+
+ @Value("${amazon.aws.accesskey}")
+ private String amazonAWSAccessKey;
+
+ @Value("${amazon.aws.secretkey}")
+ private String amazonAWSSecretKey;
+
+ @Bean
+ public AmazonDynamoDB amazonDynamoDB() {
+ AmazonDynamoDB amazonDynamoDB = new AmazonDynamoDBClient(amazonAWSCredentials());
+ if (!StringUtils.isEmpty(amazonDynamoDBEndpoint)) {
+ amazonDynamoDB.setEndpoint(amazonDynamoDBEndpoint);
+ }
+ return amazonDynamoDB;
+ }
+
+ @Bean
+ public AWSCredentials amazonAWSCredentials() {
+ return new BasicAWSCredentials(amazonAWSAccessKey, amazonAWSSecretKey);
+ }
+
+}
diff --git a/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/model/ProductInfo.java b/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/model/ProductInfo.java
new file mode 100644
index 0000000000..3e75c9e6f2
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/model/ProductInfo.java
@@ -0,0 +1,49 @@
+package com.baeldung.spring.data.es.model;
+
+import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
+import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAutoGeneratedKey;
+import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
+import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
+
+@DynamoDBTable(tableName = "ProductInfo")
+public class ProductInfo {
+ private String id;
+ private String msrp;
+ private String cost;
+
+ public ProductInfo() {
+ }
+
+ public ProductInfo(String cost, String msrp) {
+ this.msrp = msrp;
+ this.cost = cost;
+ }
+
+ @DynamoDBHashKey
+ @DynamoDBAutoGeneratedKey
+ public String getId() {
+ return id;
+ }
+
+ @DynamoDBAttribute
+ public String getMsrp() {
+ return msrp;
+ }
+
+ @DynamoDBAttribute
+ public String getCost() {
+ return cost;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public void setMsrp(String msrp) {
+ this.msrp = msrp;
+ }
+
+ public void setCost(String cost) {
+ this.cost = cost;
+ }
+}
diff --git a/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/repositories/ProductInfoRepository.java b/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/repositories/ProductInfoRepository.java
new file mode 100644
index 0000000000..c5eee49634
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/java/com/baeldung/spring/data/es/repositories/ProductInfoRepository.java
@@ -0,0 +1,12 @@
+package com.baeldung.spring.data.es.repositories;
+
+import com.baeldung.spring.data.es.model.ProductInfo;
+import org.socialsignin.spring.data.dynamodb.repository.EnableScan;
+import org.springframework.data.repository.CrudRepository;
+
+import java.util.List;
+
+@EnableScan
+public interface ProductInfoRepository extends CrudRepository {
+ List findById(String id);
+}
diff --git a/spring-boot-data-dynamodb/src/main/resources/application.properties b/spring-boot-data-dynamodb/src/main/resources/application.properties
new file mode 100644
index 0000000000..e6911bc9e7
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/resources/application.properties
@@ -0,0 +1,32 @@
+server.port=8080
+server.contextPath=/springbootapp
+management.port=8081
+management.address=127.0.0.1
+
+endpoints.shutdown.enabled=true
+
+endpoints.jmx.domain=Spring Sample Application
+endpoints.jmx.uniqueNames=true
+
+spring.jmx.enabled=true
+endpoints.jmx.enabled=true
+
+## for pretty printing of json when endpoints accessed over HTTP
+http.mappers.jsonPrettyPrint=true
+
+## Configuring info endpoint
+info.app.name=Spring Sample Application
+info.app.description=This is my first spring boot application G1
+info.app.version=1.0.0
+
+## Spring Security Configurations
+security.user.name=admin1
+security.user.password=secret1
+management.security.role=SUPERUSER
+
+logging.level.org.springframework=INFO
+
+#AWS Keys
+amazon.dynamodb.endpoint=http://localhost:8000/
+amazon.aws.accesskey=test1
+amazon.aws.secretkey=test1
\ No newline at end of file
diff --git a/spring-boot-data-dynamodb/src/main/resources/demo.properties b/spring-boot-data-dynamodb/src/main/resources/demo.properties
new file mode 100644
index 0000000000..649b64f59b
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/resources/demo.properties
@@ -0,0 +1,6 @@
+spring.output.ansi.enabled=never
+server.port=7070
+
+# Security
+security.user.name=admin
+security.user.password=password
\ No newline at end of file
diff --git a/spring-boot-data-dynamodb/src/main/resources/logback.xml b/spring-boot-data-dynamodb/src/main/resources/logback.xml
new file mode 100644
index 0000000000..c0bc602910
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/resources/logback.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ web - %date [%thread] %-5level %logger{36} - %message%n
+
+
+
+
+
+
+
+
+
diff --git a/spring-boot-data-dynamodb/src/main/resources/templates/index.html b/spring-boot-data-dynamodb/src/main/resources/templates/index.html
new file mode 100644
index 0000000000..046d21600a
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/main/resources/templates/index.html
@@ -0,0 +1,19 @@
+
+
+ WebJars Demo
+
+
+
+
+
+
+
×
+
Success! It is working as we expected.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-boot-data-dynamodb/src/test/java/com/baeldung/spring/data/es/repository/ProductInfoRepositoryIntegrationTest.java b/spring-boot-data-dynamodb/src/test/java/com/baeldung/spring/data/es/repository/ProductInfoRepositoryIntegrationTest.java
new file mode 100644
index 0000000000..df727cf727
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/test/java/com/baeldung/spring/data/es/repository/ProductInfoRepositoryIntegrationTest.java
@@ -0,0 +1,74 @@
+package com.baeldung.spring.data.es.repository;
+
+import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
+import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
+import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
+import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
+import com.amazonaws.services.dynamodbv2.model.ResourceInUseException;
+import com.baeldung.Application;
+import com.baeldung.spring.data.es.model.ProductInfo;
+import com.baeldung.spring.data.es.repositories.ProductInfoRepository;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.IntegrationTest;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = Application.class)
+@WebAppConfiguration
+@IntegrationTest
+@ActiveProfiles("local")
+@TestPropertySource(properties = { "amazon.dynamodb.endpoint=http://localhost:8000/", "amazon.aws.accesskey=test1", "amazon.aws.secretkey=test231" })
+public class ProductInfoRepositoryIntegrationTest {
+
+ private DynamoDBMapper dynamoDBMapper;
+
+ @Autowired
+ private AmazonDynamoDB amazonDynamoDB;
+
+ @Autowired
+ ProductInfoRepository repository;
+
+ private static final String EXPECTED_COST = "20";
+ private static final String EXPECTED_PRICE = "50";
+
+ @Before
+ public void setup() throws Exception {
+
+ try {
+ dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB);
+
+ CreateTableRequest tableRequest = dynamoDBMapper.generateCreateTableRequest(ProductInfo.class);
+
+ tableRequest.setProvisionedThroughput(new ProvisionedThroughput(1L, 1L));
+
+ amazonDynamoDB.createTable(tableRequest);
+ } catch (ResourceInUseException e) {
+ // Do nothing, table already created
+ }
+
+ // TODO How to handle different environments. i.e. AVOID deleting all entries in ProductInfoion table
+ dynamoDBMapper.batchDelete((List) repository.findAll());
+ }
+
+ @Test
+ public void givenItemWithExpectedCost_whenRunFindAll_thenItemIsFound() {
+
+ ProductInfo productInfo = new ProductInfo(EXPECTED_COST, EXPECTED_PRICE);
+ repository.save(productInfo);
+
+ List result = (List) repository.findAll();
+ assertTrue("Not empty", result.size() > 0);
+ assertTrue("Contains item with expected cost", result.get(0).getCost().equals(EXPECTED_COST));
+ }
+}
diff --git a/spring-boot-data-dynamodb/src/test/resources/application.properties b/spring-boot-data-dynamodb/src/test/resources/application.properties
new file mode 100644
index 0000000000..01e8a2e52e
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/test/resources/application.properties
@@ -0,0 +1,7 @@
+spring.mail.host=localhost
+spring.mail.port=8025
+spring.mail.properties.mail.smtp.auth=false
+
+amazon.dynamodb.endpoint=http://localhost:8000/
+amazon.aws.accesskey=key
+amazon.aws.secretkey=key2
\ No newline at end of file
diff --git a/spring-boot-data-dynamodb/src/test/resources/exception-hibernate.properties b/spring-boot-data-dynamodb/src/test/resources/exception-hibernate.properties
new file mode 100644
index 0000000000..cde746acb9
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/test/resources/exception-hibernate.properties
@@ -0,0 +1,2 @@
+spring.profiles.active=exception
+spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
diff --git a/spring-boot-data-dynamodb/src/test/resources/exception.properties b/spring-boot-data-dynamodb/src/test/resources/exception.properties
new file mode 100644
index 0000000000..c55e415a3a
--- /dev/null
+++ b/spring-boot-data-dynamodb/src/test/resources/exception.properties
@@ -0,0 +1,6 @@
+# Security
+security.user.name=admin
+security.user.password=password
+
+spring.dao.exceptiontranslation.enabled=false
+spring.profiles.active=exception
\ No newline at end of file
diff --git a/spring-cloud-data-flow/batch-job/pom.xml b/spring-cloud-data-flow/batch-job/pom.xml
index 2ddb9d85a3..99e57d4c20 100644
--- a/spring-cloud-data-flow/batch-job/pom.xml
+++ b/spring-cloud-data-flow/batch-job/pom.xml
@@ -67,8 +67,17 @@
org.springframework.boot
spring-boot-maven-plugin
-
-
-
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
diff --git a/spring-cloud-data-flow/batch-job/src/test/java/org/baeldung/spring/cloud/BatchJobApplicationTests.java b/spring-cloud-data-flow/batch-job/src/test/java/org/baeldung/spring/cloud/BatchJobApplicationIntegrationTest.java
similarity index 86%
rename from spring-cloud-data-flow/batch-job/src/test/java/org/baeldung/spring/cloud/BatchJobApplicationTests.java
rename to spring-cloud-data-flow/batch-job/src/test/java/org/baeldung/spring/cloud/BatchJobApplicationIntegrationTest.java
index 5f18ec75c4..f8dfdec197 100644
--- a/spring-cloud-data-flow/batch-job/src/test/java/org/baeldung/spring/cloud/BatchJobApplicationTests.java
+++ b/spring-cloud-data-flow/batch-job/src/test/java/org/baeldung/spring/cloud/BatchJobApplicationIntegrationTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-public class BatchJobApplicationTests {
+public class BatchJobApplicationIntegrationTest {
@Test
public void contextLoads() {
diff --git a/spring-cloud-data-flow/data-flow-server/pom.xml b/spring-cloud-data-flow/data-flow-server/pom.xml
index 94c4106d6f..451a58e12a 100644
--- a/spring-cloud-data-flow/data-flow-server/pom.xml
+++ b/spring-cloud-data-flow/data-flow-server/pom.xml
@@ -62,8 +62,53 @@
org.springframework.boot
spring-boot-maven-plugin
-
-
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*LiveTest.java
+
+
+ **/*IntegrationTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
diff --git a/spring-cloud-data-flow/data-flow-server/src/test/java/org/baeldung/spring/cloud/DataFlowServerApplicationIntegrationTest.java b/spring-cloud-data-flow/data-flow-server/src/test/java/org/baeldung/spring/cloud/DataFlowServerApplicationIntegrationTest.java
new file mode 100644
index 0000000000..bb8660b816
--- /dev/null
+++ b/spring-cloud-data-flow/data-flow-server/src/test/java/org/baeldung/spring/cloud/DataFlowServerApplicationIntegrationTest.java
@@ -0,0 +1,16 @@
+package org.baeldung.spring.cloud;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class DataFlowServerApplicationIntegrationTest {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/spring-cloud-data-flow/data-flow-shell/pom.xml b/spring-cloud-data-flow/data-flow-shell/pom.xml
index a074fef88f..31d3dce507 100644
--- a/spring-cloud-data-flow/data-flow-shell/pom.xml
+++ b/spring-cloud-data-flow/data-flow-shell/pom.xml
@@ -62,8 +62,18 @@
org.springframework.boot
spring-boot-maven-plugin
-
-
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
diff --git a/spring-cloud-data-flow/data-flow-shell/spring-shell.log b/spring-cloud-data-flow/data-flow-shell/spring-shell.log
index d497215e2a..92a8488c7d 100644
--- a/spring-cloud-data-flow/data-flow-shell/spring-shell.log
+++ b/spring-cloud-data-flow/data-flow-shell/spring-shell.log
@@ -1 +1,2 @@
// dataflow 1.2.0.RELEASE log opened at 2016-10-20 13:13:20
+// dataflow 1.2.0.RELEASE log opened at 2016-10-24 16:51:17
diff --git a/spring-cloud-data-flow/log-sink/src/test/java/org/baeldung/spring/cloud/LogSinkApplicationTests.java b/spring-cloud-data-flow/data-flow-shell/src/test/java/org/baeldung/spring/cloud/DataFlowShellApplicationIntegrationTest.java
similarity index 85%
rename from spring-cloud-data-flow/log-sink/src/test/java/org/baeldung/spring/cloud/LogSinkApplicationTests.java
rename to spring-cloud-data-flow/data-flow-shell/src/test/java/org/baeldung/spring/cloud/DataFlowShellApplicationIntegrationTest.java
index 9f88c7f632..5ab3292388 100644
--- a/spring-cloud-data-flow/log-sink/src/test/java/org/baeldung/spring/cloud/LogSinkApplicationTests.java
+++ b/spring-cloud-data-flow/data-flow-shell/src/test/java/org/baeldung/spring/cloud/DataFlowShellApplicationIntegrationTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-public class LogSinkApplicationTests {
+public class DataFlowShellApplicationIntegrationTest {
@Test
public void contextLoads() {
diff --git a/spring-cloud-data-flow/log-sink/pom.xml b/spring-cloud-data-flow/log-sink/pom.xml
index 8415d95373..db488c05ef 100644
--- a/spring-cloud-data-flow/log-sink/pom.xml
+++ b/spring-cloud-data-flow/log-sink/pom.xml
@@ -1,62 +1,105 @@
- 4.0.0
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
- org.baeldung.spring.cloud
- log-sink
- 0.0.1-SNAPSHOT
- jar
+ org.baeldung.spring.cloud
+ log-sink
+ 0.0.1-SNAPSHOT
+ jar
- log-sink
- Demo project for Spring Boot
+ log-sink
+ Demo project for Spring Boot
-
- org.springframework.boot
- spring-boot-starter-parent
- 1.4.0.RELEASE
-
-
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.4.0.RELEASE
+
+
-
- UTF-8
- UTF-8
- 1.8
-
+
+ UTF-8
+ UTF-8
+ 1.8
+
-
-
- org.springframework.cloud
- spring-cloud-starter-stream-rabbit
-
+
+
+ org.springframework.cloud
+ spring-cloud-starter-stream-rabbit
+
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- Brixton.SR5
- pom
- import
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ Brixton.SR5
+ pom
+ import
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*LiveTest.java
+
+
+ **/*IntegrationTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
diff --git a/spring-cloud-data-flow/data-flow-server/src/test/java/org/baeldung/spring/cloud/DataFlowServerApplicationTests.java b/spring-cloud-data-flow/log-sink/src/test/java/org/baeldung/spring/cloud/LogSinkApplicationIntegrationTest.java
similarity index 86%
rename from spring-cloud-data-flow/data-flow-server/src/test/java/org/baeldung/spring/cloud/DataFlowServerApplicationTests.java
rename to spring-cloud-data-flow/log-sink/src/test/java/org/baeldung/spring/cloud/LogSinkApplicationIntegrationTest.java
index f853e29244..b362d72705 100644
--- a/spring-cloud-data-flow/data-flow-server/src/test/java/org/baeldung/spring/cloud/DataFlowServerApplicationTests.java
+++ b/spring-cloud-data-flow/log-sink/src/test/java/org/baeldung/spring/cloud/LogSinkApplicationIntegrationTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-public class DataFlowServerApplicationTests {
+public class LogSinkApplicationIntegrationTest {
@Test
public void contextLoads() {
diff --git a/spring-cloud-data-flow/time-processor/pom.xml b/spring-cloud-data-flow/time-processor/pom.xml
index bc2efe7754..8277c9c836 100644
--- a/spring-cloud-data-flow/time-processor/pom.xml
+++ b/spring-cloud-data-flow/time-processor/pom.xml
@@ -49,14 +49,57 @@
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*LiveTest.java
+
+
+ **/*IntegrationTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
diff --git a/spring-cloud-data-flow/time-processor/src/test/java/org/baeldung/spring/cloud/TimeProcessorApplicationIntegrationTest.java b/spring-cloud-data-flow/time-processor/src/test/java/org/baeldung/spring/cloud/TimeProcessorApplicationIntegrationTest.java
new file mode 100644
index 0000000000..9bd0fd8c24
--- /dev/null
+++ b/spring-cloud-data-flow/time-processor/src/test/java/org/baeldung/spring/cloud/TimeProcessorApplicationIntegrationTest.java
@@ -0,0 +1,16 @@
+package org.baeldung.spring.cloud;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class TimeProcessorApplicationIntegrationTest {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/spring-cloud-data-flow/time-processor/src/test/java/org/baeldung/spring/cloud/TimeProcessorApplicationTests.java b/spring-cloud-data-flow/time-processor/src/test/java/org/baeldung/spring/cloud/TimeProcessorApplicationTests.java
deleted file mode 100644
index 875346f9db..0000000000
--- a/spring-cloud-data-flow/time-processor/src/test/java/org/baeldung/spring/cloud/TimeProcessorApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.baeldung.spring.cloud;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class TimeProcessorApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/spring-cloud-data-flow/time-source/pom.xml b/spring-cloud-data-flow/time-source/pom.xml
index 587b782227..086d761f78 100644
--- a/spring-cloud-data-flow/time-source/pom.xml
+++ b/spring-cloud-data-flow/time-source/pom.xml
@@ -49,14 +49,57 @@
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*LiveTest.java
+
+
+ **/*IntegrationTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
diff --git a/spring-cloud-data-flow/data-flow-shell/src/test/java/org/baeldung/spring/cloud/DataFlowShellApplicationTests.java b/spring-cloud-data-flow/time-source/src/test/java/org/baeldung/spring/cloud/TimeSourceApplicationIntegrationTest.java
similarity index 85%
rename from spring-cloud-data-flow/data-flow-shell/src/test/java/org/baeldung/spring/cloud/DataFlowShellApplicationTests.java
rename to spring-cloud-data-flow/time-source/src/test/java/org/baeldung/spring/cloud/TimeSourceApplicationIntegrationTest.java
index 7e2bc1cb37..6d71a785a3 100644
--- a/spring-cloud-data-flow/data-flow-shell/src/test/java/org/baeldung/spring/cloud/DataFlowShellApplicationTests.java
+++ b/spring-cloud-data-flow/time-source/src/test/java/org/baeldung/spring/cloud/TimeSourceApplicationIntegrationTest.java
@@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-public class DataFlowShellApplicationTests {
+public class TimeSourceApplicationIntegrationTest {
@Test
public void contextLoads() {
diff --git a/spring-cloud-data-flow/time-source/src/test/java/org/baeldung/spring/cloud/TimeSourceApplicationTests.java b/spring-cloud-data-flow/time-source/src/test/java/org/baeldung/spring/cloud/TimeSourceApplicationTests.java
deleted file mode 100644
index 61fd8323d2..0000000000
--- a/spring-cloud-data-flow/time-source/src/test/java/org/baeldung/spring/cloud/TimeSourceApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.baeldung.spring.cloud;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class TimeSourceApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/spring-cloud/spring-cloud-config/server/src/main/resources/application.properties b/spring-cloud/spring-cloud-config/server/src/main/resources/application.properties
index 2131f3b249..9476887a1c 100644
--- a/spring-cloud/spring-cloud-config/server/src/main/resources/application.properties
+++ b/spring-cloud/spring-cloud-config/server/src/main/resources/application.properties
@@ -1,6 +1,6 @@
server.port=8888
-spring.cloud.config.server.git.uri=https://github.com/eugenp/tutorials/tree/master/spring-cloud-config/client-config
-spring.cloud.config.server.git.clone-on-start=false
+spring.cloud.config.server.git.uri=https://github.com/spring-cloud-samples/config-repo
+spring.cloud.config.server.git.clone-on-start=true
security.user.name=root
security.user.password=s3cr3t
encrypt.key-store.location=classpath:/config-server.jks
diff --git a/dependency-injection/.gitignore b/spring-core/.gitignore
similarity index 100%
rename from dependency-injection/.gitignore
rename to spring-core/.gitignore
diff --git a/dependency-injection/README.md b/spring-core/README.md
similarity index 100%
rename from dependency-injection/README.md
rename to spring-core/README.md
diff --git a/dependency-injection/pom.xml b/spring-core/pom.xml
similarity index 65%
rename from dependency-injection/pom.xml
rename to spring-core/pom.xml
index 9e78a66ad6..9b94ba7b35 100644
--- a/dependency-injection/pom.xml
+++ b/spring-core/pom.xml
@@ -66,9 +66,10 @@
org.apache.maven.plugins
maven-surefire-plugin
-
- **/*Test.java
-
+
+ **/*IntegrationTest.java
+ **/*LiveTest.java
+
@@ -85,6 +86,41 @@
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*LiveTest.java
+
+
+ **/*IntegrationTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
+
2.6
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredName.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredQualifier.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestAutowiredType.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectName.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectQualifier.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestInjectType.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceNameType.java
diff --git a/dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java b/spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
rename to spring-core/src/main/java/com/baeldung/configuration/ApplicationContextTestResourceQualifier.java
diff --git a/dependency-injection/src/main/java/com/baeldung/dependency/AnotherArbitraryDependency.java b/spring-core/src/main/java/com/baeldung/dependency/AnotherArbitraryDependency.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/dependency/AnotherArbitraryDependency.java
rename to spring-core/src/main/java/com/baeldung/dependency/AnotherArbitraryDependency.java
diff --git a/dependency-injection/src/main/java/com/baeldung/dependency/ArbitraryDependency.java b/spring-core/src/main/java/com/baeldung/dependency/ArbitraryDependency.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/dependency/ArbitraryDependency.java
rename to spring-core/src/main/java/com/baeldung/dependency/ArbitraryDependency.java
diff --git a/dependency-injection/src/main/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java b/spring-core/src/main/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
similarity index 100%
rename from dependency-injection/src/main/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
rename to spring-core/src/main/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java b/spring-core/src/test/java/com/baeldung/autowired/FieldAutowiredIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java
rename to spring-core/src/test/java/com/baeldung/autowired/FieldAutowiredIntegrationTest.java
index b736871f85..a78799f1d9 100644
--- a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredTest.java
+++ b/spring-core/src/test/java/com/baeldung/autowired/FieldAutowiredIntegrationTest.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestAutowiredType.class)
-public class FieldAutowiredTest {
+public class FieldAutowiredIntegrationTest {
@Autowired
private ArbitraryDependency fieldDependency;
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java b/spring-core/src/test/java/com/baeldung/autowired/FieldAutowiredNameIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java
rename to spring-core/src/test/java/com/baeldung/autowired/FieldAutowiredNameIntegrationTest.java
index cbdac68543..8f09e73c33 100644
--- a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameTest.java
+++ b/spring-core/src/test/java/com/baeldung/autowired/FieldAutowiredNameIntegrationTest.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestAutowiredName.class)
-public class FieldAutowiredNameTest {
+public class FieldAutowiredNameIntegrationTest {
@Autowired
private ArbitraryDependency autowiredFieldDependency;
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java b/spring-core/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredIntegrationTest.java
similarity index 96%
rename from dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java
rename to spring-core/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredIntegrationTest.java
index cbc3d56f67..01317aef6f 100644
--- a/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredTest.java
+++ b/spring-core/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestAutowiredQualifier.class)
-public class FieldQualifierAutowiredTest {
+public class FieldQualifierAutowiredIntegrationTest {
@Autowired
@Qualifier("autowiredFieldDependency")
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java b/spring-core/src/test/java/com/baeldung/inject/FieldByNameInjectIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java
rename to spring-core/src/test/java/com/baeldung/inject/FieldByNameInjectIntegrationTest.java
index 665c9f1ddc..f5897febab 100644
--- a/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectTest.java
+++ b/spring-core/src/test/java/com/baeldung/inject/FieldByNameInjectIntegrationTest.java
@@ -18,7 +18,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestInjectName.class)
-public class FieldByNameInjectTest {
+public class FieldByNameInjectIntegrationTest {
@Inject
@Named("yetAnotherFieldInjectDependency")
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java b/spring-core/src/test/java/com/baeldung/inject/FieldInjectIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java
rename to spring-core/src/test/java/com/baeldung/inject/FieldInjectIntegrationTest.java
index 7561c39e76..45b7c8015c 100644
--- a/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectTest.java
+++ b/spring-core/src/test/java/com/baeldung/inject/FieldInjectIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestInjectType.class)
-public class FieldInjectTest {
+public class FieldInjectIntegrationTest {
@Inject
private ArbitraryDependency fieldInjectDependency;
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java b/spring-core/src/test/java/com/baeldung/inject/FieldQualifierInjectIntegrationTest.java
similarity index 96%
rename from dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java
rename to spring-core/src/test/java/com/baeldung/inject/FieldQualifierInjectIntegrationTest.java
index 7e5f7e7453..0fd6a0e4c1 100644
--- a/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectTest.java
+++ b/spring-core/src/test/java/com/baeldung/inject/FieldQualifierInjectIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestInjectQualifier.class)
-public class FieldQualifierInjectTest {
+public class FieldQualifierInjectIntegrationTest {
@Inject
@Qualifier("defaultFile")
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java b/spring-core/src/test/java/com/baeldung/resource/FieldResourceInjectionIntegrationTest.java
similarity index 94%
rename from dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java
rename to spring-core/src/test/java/com/baeldung/resource/FieldResourceInjectionIntegrationTest.java
index ef7e7b0aeb..63a25cb499 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/FieldResourceInjectionIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceNameType.class)
-public class FieldResourceInjectionTest {
+public class FieldResourceInjectionIntegrationTest {
@Resource(name = "namedFile")
private File defaultFile;
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java b/spring-core/src/test/java/com/baeldung/resource/MethodByQualifierResourceIntegrationTest.java
similarity index 96%
rename from dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java
rename to spring-core/src/test/java/com/baeldung/resource/MethodByQualifierResourceIntegrationTest.java
index 95e9fc0bd5..f5bb9f10cf 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/MethodByQualifierResourceIntegrationTest.java
@@ -18,7 +18,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceQualifier.class)
-public class MethodByQualifierResourceTest {
+public class MethodByQualifierResourceIntegrationTest {
private File arbDependency;
private File anotherArbDependency;
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java b/spring-core/src/test/java/com/baeldung/resource/MethodByTypeResourceIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java
rename to spring-core/src/test/java/com/baeldung/resource/MethodByTypeResourceIntegrationTest.java
index ad9a9a4fb6..171cbfea47 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/MethodByTypeResourceIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceNameType.class)
-public class MethodByTypeResourceTest {
+public class MethodByTypeResourceIntegrationTest {
private File defaultFile;
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java b/spring-core/src/test/java/com/baeldung/resource/MethodResourceInjectionIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java
rename to spring-core/src/test/java/com/baeldung/resource/MethodResourceInjectionIntegrationTest.java
index 1622d8896c..2e1c3c39a9 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/MethodResourceInjectionIntegrationTest.java
@@ -17,7 +17,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceNameType.class)
-public class MethodResourceInjectionTest {
+public class MethodResourceInjectionIntegrationTest {
private File defaultFile;
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java b/spring-core/src/test/java/com/baeldung/resource/NamedResourceIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
rename to spring-core/src/test/java/com/baeldung/resource/NamedResourceIntegrationTest.java
index da104ecaae..d52660e9b8 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/NamedResourceIntegrationTest.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceNameType.class)
-public class NamedResourceTest {
+public class NamedResourceIntegrationTest {
@Resource(name = "namedFile")
private File testFile;
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java b/spring-core/src/test/java/com/baeldung/resource/QualifierResourceInjectionIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java
rename to spring-core/src/test/java/com/baeldung/resource/QualifierResourceInjectionIntegrationTest.java
index 024c8e2bbe..3f812350c9 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/QualifierResourceInjectionIntegrationTest.java
@@ -18,7 +18,7 @@ import static org.junit.Assert.assertNotNull;
@ContextConfiguration(
loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceQualifier.class)
-public class QualifierResourceInjectionTest {
+public class QualifierResourceInjectionIntegrationTest {
@Resource
@Qualifier("defaultFile")
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java b/spring-core/src/test/java/com/baeldung/resource/SetterResourceInjectionIntegrationTest.java
similarity index 95%
rename from dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java
rename to spring-core/src/test/java/com/baeldung/resource/SetterResourceInjectionIntegrationTest.java
index aa7cfda975..ae13b2336a 100644
--- a/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionTest.java
+++ b/spring-core/src/test/java/com/baeldung/resource/SetterResourceInjectionIntegrationTest.java
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class,
classes = ApplicationContextTestResourceNameType.class)
-public class SetterResourceInjectionTest {
+public class SetterResourceInjectionIntegrationTest {
private File defaultFile;
diff --git a/spring-exceptions/pom.xml b/spring-exceptions/pom.xml
index 12b7e5de79..6994a518fe 100644
--- a/spring-exceptions/pom.xml
+++ b/spring-exceptions/pom.xml
@@ -194,7 +194,7 @@
${maven-surefire-plugin.version}
- **/*IntegrationTest.java
+ **/*ManualTest.java
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/BeanCreationExceptionTestSuite.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/BeanCreationExceptionTestSuite.java
index f88138fec2..9597c09568 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/BeanCreationExceptionTestSuite.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/BeanCreationExceptionTestSuite.java
@@ -5,15 +5,15 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({ // @formatter:off
- Cause1BeanCreationExceptionIntegrationTest.class
- ,Cause2BeanCreationExceptionIntegrationTest.class
- ,Cause3BeanCreationExceptionIntegrationTest.class
- ,Cause4BeanCreationExceptionIntegrationTest.class
- ,Cause5BeanCreationExceptionIntegrationTest.class
- ,Cause6BeanCreationExceptionIntegrationTest.class
- ,Cause7BeanCreationExceptionIntegrationTest.class
- ,Cause8BeanCreationExceptionIntegrationTest.class
- ,Cause9BeanCreationExceptionIntegrationTest.class
+ Cause1BeanCreationExceptionManualTest.class
+ ,Cause2BeanCreationExceptionManualTest.class
+ ,Cause3BeanCreationExceptionManualTest.class
+ ,Cause4BeanCreationExceptionManualTest.class
+ ,Cause5BeanCreationExceptionManualTest.class
+ ,Cause6BeanCreationExceptionManualTest.class
+ ,Cause7BeanCreationExceptionManualTest.class
+ ,Cause8BeanCreationExceptionManualTest.class
+ ,Cause9BeanCreationExceptionManualTest.class
}) // @formatter:on
public class BeanCreationExceptionTestSuite {
//
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause1BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause1BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause1BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause1BeanCreationExceptionManualTest.java
index 56d916e25d..350347bb19 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause1BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause1BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause1BeanCreationExceptionIntegrationTest {
+public class Cause1BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause2BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause2BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause2BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause2BeanCreationExceptionManualTest.java
index 968e7312de..c2b9561848 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause2BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause2BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause2ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause2BeanCreationExceptionIntegrationTest {
+public class Cause2BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause3BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause3BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause3BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause3BeanCreationExceptionManualTest.java
index 4730d59334..7b9b49bf58 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause3BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause3BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause3ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause3BeanCreationExceptionIntegrationTest {
+public class Cause3BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause4BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause4BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause4BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause4BeanCreationExceptionManualTest.java
index b5108c1ab4..3a6e30476c 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause4BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause4BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause4ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause4BeanCreationExceptionIntegrationTest {
+public class Cause4BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause5BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause5BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause5BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause5BeanCreationExceptionManualTest.java
index 9a08ec45a1..e69a323f8d 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause5BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause5BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause5ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause5BeanCreationExceptionIntegrationTest {
+public class Cause5BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause6BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause6BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause6BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause6BeanCreationExceptionManualTest.java
index 423a0a98a9..30fbd47635 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause6BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause6BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause6ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause6BeanCreationExceptionIntegrationTest {
+public class Cause6BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionManualTest.java
index a61e598b41..d832bddf72 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause7BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause7ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause7BeanCreationExceptionIntegrationTest {
+public class Cause7BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionManualTest.java
index 8550f307d5..a9f32b6d1a 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause8BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause8ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause8BeanCreationExceptionIntegrationTest {
+public class Cause8BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause9BeanCreationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause9BeanCreationExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause9BeanCreationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause9BeanCreationExceptionManualTest.java
index ad1ba5f2f1..6af5fb3712 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause9BeanCreationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beancreationexception/Cause9BeanCreationExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause9ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause9BeanCreationExceptionIntegrationTest {
+public class Cause9BeanCreationExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause1BeanDefinitionStoreExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause1BeanDefinitionStoreExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause1BeanDefinitionStoreExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause1BeanDefinitionStoreExceptionManualTest.java
index 8de51a4bf0..1580546fa7 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause1BeanDefinitionStoreExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause1BeanDefinitionStoreExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause1BeanDefinitionStoreExceptionIntegrationTest {
+public class Cause1BeanDefinitionStoreExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause2BeanDefinitionStoreExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause2BeanDefinitionStoreExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause2BeanDefinitionStoreExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause2BeanDefinitionStoreExceptionManualTest.java
index 8dbc50cda5..ce0db694dc 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause2BeanDefinitionStoreExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause2BeanDefinitionStoreExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause2ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause2BeanDefinitionStoreExceptionIntegrationTest {
+public class Cause2BeanDefinitionStoreExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause3BeanDefinitionStoreExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause3BeanDefinitionStoreExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause3BeanDefinitionStoreExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause3BeanDefinitionStoreExceptionManualTest.java
index 370b67e2fa..c090ac7b5f 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause3BeanDefinitionStoreExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/beandefinitionstoreexception/Cause3BeanDefinitionStoreExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause3ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause3BeanDefinitionStoreExceptionIntegrationTest {
+public class Cause3BeanDefinitionStoreExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause1DataIntegrityViolationExceptionManualTest.java
similarity index 96%
rename from spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause1DataIntegrityViolationExceptionManualTest.java
index 0f46481116..056e052359 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause1DataIntegrityViolationExceptionManualTest.java
@@ -15,7 +15,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1DataContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause1DataIntegrityViolationExceptionIntegrationTest {
+public class Cause1DataIntegrityViolationExceptionManualTest {
@Autowired
private IParentService service;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause2DataIntegrityViolationExceptionManualTest.java
similarity index 93%
rename from spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause2DataIntegrityViolationExceptionManualTest.java
index 0ea0dd2f28..e36a027105 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause2DataIntegrityViolationExceptionManualTest.java
@@ -13,7 +13,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause2DataContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause2DataIntegrityViolationExceptionIntegrationTest {
+public class Cause2DataIntegrityViolationExceptionManualTest {
@Autowired
private IFooService fooService;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause3DataIntegrityViolationExceptionManualTest.java
similarity index 94%
rename from spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause3DataIntegrityViolationExceptionManualTest.java
index 75d5793910..4194e1c9fe 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/dataintegrityviolationexception/Cause3DataIntegrityViolationExceptionManualTest.java
@@ -15,7 +15,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause3DataContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause3DataIntegrityViolationExceptionIntegrationTest {
+public class Cause3DataIntegrityViolationExceptionManualTest {
@Autowired
private IFooService fooService;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionManualTest.java
index 671b0a473e..7ba9618a77 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionManualTest.java
@@ -14,7 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause1MappingExceptionIntegrationTest {
+public class Cause1MappingExceptionManualTest {
@Autowired
private SessionFactory sessionFactory;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause2MappingExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause2MappingExceptionManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause2MappingExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause2MappingExceptionManualTest.java
index eae5ebd9a2..66923fc6a9 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause2MappingExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause2MappingExceptionManualTest.java
@@ -13,7 +13,7 @@ import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause2PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause2MappingExceptionIntegrationTest {
+public class Cause2MappingExceptionManualTest {
@Autowired
private SessionFactory sessionFactory;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause3MappingExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause3MappingExceptionManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause3MappingExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause3MappingExceptionManualTest.java
index d6abe7db4f..e6888d1685 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause3MappingExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause3MappingExceptionManualTest.java
@@ -14,7 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause3PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause3MappingExceptionIntegrationTest {
+public class Cause3MappingExceptionManualTest {
@Autowired
private SessionFactory sessionFactory;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause4MappingExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause4MappingExceptionManualTest.java
similarity index 96%
rename from spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause4MappingExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause4MappingExceptionManualTest.java
index 864da76e4b..760d082f54 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause4MappingExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause4MappingExceptionManualTest.java
@@ -12,7 +12,7 @@ import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
-public class Cause4MappingExceptionIntegrationTest {
+public class Cause4MappingExceptionManualTest {
// tests
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/CannotGetJdbcConnectionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/CannotGetJdbcConnectionExceptionManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/CannotGetJdbcConnectionExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/CannotGetJdbcConnectionExceptionManualTest.java
index 84038e4dcf..b7ed103394 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/CannotGetJdbcConnectionExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/CannotGetJdbcConnectionExceptionManualTest.java
@@ -18,7 +18,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause5NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class CannotGetJdbcConnectionExceptionIntegrationTest {
+public class CannotGetJdbcConnectionExceptionManualTest {
@Autowired
private DataSource restDataSource;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataIntegrityExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataIntegrityExceptionManualTest.java
similarity index 96%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataIntegrityExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataIntegrityExceptionManualTest.java
index e62a455dd4..b98a210125 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataIntegrityExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataIntegrityExceptionManualTest.java
@@ -17,7 +17,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class DataIntegrityExceptionIntegrationTest {
+public class DataIntegrityExceptionManualTest {
@Autowired
private IFooService fooService;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataRetrievalExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataRetrievalExceptionManualTest.java
similarity index 97%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataRetrievalExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataRetrievalExceptionManualTest.java
index 8a7c237708..122278580f 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataRetrievalExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataRetrievalExceptionManualTest.java
@@ -17,7 +17,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class DataRetrievalExceptionIntegrationTest {
+public class DataRetrievalExceptionManualTest {
@Autowired
private DataSource restDataSource;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataSourceLookupExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataSourceLookupExceptionManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataSourceLookupExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataSourceLookupExceptionManualTest.java
index 161bf3252b..4da5f94098 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataSourceLookupExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/DataSourceLookupExceptionManualTest.java
@@ -13,7 +13,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause4NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class DataSourceLookupExceptionIntegrationTest {
+public class DataSourceLookupExceptionManualTest {
@Test(expected = DataSourceLookupFailureException.class)
public void whenLookupNonExistentDataSource_thenDataSourceLookupFailureException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionManualTest.java
similarity index 96%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionManualTest.java
index 316efba0b9..fc420acfe9 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nontransientdataaccessexception/InvalidResourceUsageExceptionManualTest.java
@@ -16,7 +16,7 @@ import javax.sql.DataSource;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1NonTransientConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class InvalidResourceUsageExceptionIntegrationTest {
+public class InvalidResourceUsageExceptionManualTest {
@Autowired
private IFooService fooService;
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionManualTest.java
similarity index 93%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionManualTest.java
index 1a9711b2d6..45ffdf9096 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionManualTest.java
@@ -15,7 +15,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause1ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause1NoSuchBeanDefinitionExceptionIntegrationTest {
+public class Cause1NoSuchBeanDefinitionExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionManualTest.java
index 90d7317f44..09ed2b4435 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause2ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause2NoSuchBeanDefinitionExceptionIntegrationTest {
+public class Cause2NoSuchBeanDefinitionExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionManualTest.java
similarity index 91%
rename from spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionManualTest.java
index 0e2123b7ff..7dc016a568 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionManualTest.java
@@ -9,7 +9,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Cause3ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class Cause3NoSuchBeanDefinitionExceptionIntegrationTest {
+public class Cause3NoSuchBeanDefinitionExceptionManualTest {
@Test
public final void givenContextIsInitialized_thenNoException() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaManualTest.java
index d6c99502d7..91db8210b3 100644
--- a/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaManualTest.java
@@ -13,7 +13,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { PropertiesWithJavaConfig.class, PropertiesWithJavaConfigOther.class }, loader = AnnotationConfigContextLoader.class)
-public class PropertiesWithJavaIntegrationTest {
+public class PropertiesWithJavaManualTest {
@Autowired
private Environment env;
diff --git a/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsManualTest.java
index 9fc793fc1b..201e554381 100644
--- a/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsManualTest.java
@@ -13,7 +13,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { PropertiesWithXmlConfigOne.class, PropertiesWithXmlConfigTwo.class }, loader = AnnotationConfigContextLoader.class)
-public class PropertiesWithMultipleXmlsIntegrationTest {
+public class PropertiesWithMultipleXmlsManualTest {
@Autowired
private Environment env;
diff --git a/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlManualTest.java
similarity index 95%
rename from spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java
rename to spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlManualTest.java
index ff5eaab910..a54dd8a3fb 100644
--- a/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlManualTest.java
@@ -12,7 +12,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { PropertiesWithXmlConfig.class }, loader = AnnotationConfigContextLoader.class)
-public class PropertiesWithXmlIntegrationTest {
+public class PropertiesWithXmlManualTest {
@Autowired
private Environment env;
diff --git a/spring-integration/pom.xml b/spring-integration/pom.xml
new file mode 100644
index 0000000000..251322295f
--- /dev/null
+++ b/spring-integration/pom.xml
@@ -0,0 +1,133 @@
+
+ 4.0.0
+
+ com.baeldung.samples.spring.integration
+ baeldungSIsample
+ 1.0.0.BUILD-SNAPSHOT
+ jar
+
+ Baeldung Spring Intro
+ http://www.springsource.org/spring-integration
+
+
+ 2.2.1
+
+
+
+ UTF-8
+ 2.2.4.RELEASE
+ 1.2.17
+ 4.11
+
+
+
+
+ repo.springsource.org.milestone
+ Spring Framework Maven Milestone Repository
+ https://repo.springsource.org/milestone
+
+
+
+
+
+
+ maven-eclipse-plugin
+ 2.9
+
+
+ org.springframework.ide.eclipse.core.springnature
+
+
+ org.springframework.ide.eclipse.core.springbuilder
+
+ true
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.6
+ 1.6
+ -Xlint:all
+ true
+ true
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.2.1
+
+ com.baeldung.samples.Main
+
+
+
+
+
+
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+ org.springframework.integration
+ spring-integration-core
+ 4.3.4.RELEASE
+
+
+ javax.activation
+ activation
+ 1.1.1
+ true
+
+
+ javax.mail
+ mail
+ 1.4.7
+
+
+ log4j
+ log4j
+ ${log4j.version}
+
+
+ org.springframework.integration
+ spring-integration-twitter
+ 4.3.4.RELEASE
+
+
+ org.springframework.integration
+ spring-integration-mail
+ 4.3.4.RELEASE
+
+
+ org.springframework.integration
+ spring-integration-ftp
+ 4.3.4.RELEASE
+
+
+ org.springframework.social
+ spring-social-core
+ 1.1.4.RELEASE
+
+
+ org.springframework.integration
+ spring-integration-file
+ 4.3.4.RELEASE
+
+
+ junit
+ junit
+ 4.12
+
+
+
diff --git a/spring-integration/src/main/java/com/baeldung/samples/endpoints/Activator.java b/spring-integration/src/main/java/com/baeldung/samples/endpoints/Activator.java
new file mode 100644
index 0000000000..4b6ee5d03a
--- /dev/null
+++ b/spring-integration/src/main/java/com/baeldung/samples/endpoints/Activator.java
@@ -0,0 +1,7 @@
+package com.baeldung.samples.endpoints;
+
+public interface Activator {
+
+ public void handleMessage(T input);
+
+}
diff --git a/spring-integration/src/main/java/com/baeldung/samples/endpoints/ActivatorImpl.java b/spring-integration/src/main/java/com/baeldung/samples/endpoints/ActivatorImpl.java
new file mode 100644
index 0000000000..9b7c2763fc
--- /dev/null
+++ b/spring-integration/src/main/java/com/baeldung/samples/endpoints/ActivatorImpl.java
@@ -0,0 +1,20 @@
+package com.baeldung.samples.endpoints;
+
+import java.io.File;
+import java.util.logging.Logger;
+
+import org.springframework.integration.IntegrationMessageHeaderAccessor;
+import org.springframework.messaging.Message;
+
+public class ActivatorImpl implements Activator> {
+
+ @Override
+ public void handleMessage(Message input) {
+ File filePayload = input.getPayload();
+ IntegrationMessageHeaderAccessor accessor = new IntegrationMessageHeaderAccessor(input);
+ Logger.getAnonymousLogger().info("The file size "+filePayload.length());
+ Logger.getAnonymousLogger().info("The time of the message "+accessor.getTimestamp());
+
+ }
+
+}
diff --git a/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-context.backup b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-context.backup
new file mode 100644
index 0000000000..5687a15f02
--- /dev/null
+++ b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-context.backup
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-context.xml b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-context.xml
new file mode 100644
index 0000000000..b814e1a6a8
--- /dev/null
+++ b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-context.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-file-copy-context.xml b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-file-copy-context.xml
new file mode 100644
index 0000000000..567a3464e7
--- /dev/null
+++ b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-file-copy-context.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-file-publish-context.xml b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-file-publish-context.xml
new file mode 100644
index 0000000000..3bbd59093a
--- /dev/null
+++ b/spring-integration/src/main/resources/META-INF/spring/integration/spring-integration-file-publish-context.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-integration/src/main/resources/source/penguins.jpg b/spring-integration/src/main/resources/source/penguins.jpg
new file mode 100644
index 0000000000..030ab8a685
Binary files /dev/null and b/spring-integration/src/main/resources/source/penguins.jpg differ
diff --git a/spring-integration/src/test/java/com/baeldung/samples/FileCopyTest.java b/spring-integration/src/test/java/com/baeldung/samples/FileCopyTest.java
new file mode 100644
index 0000000000..96e5a98f41
--- /dev/null
+++ b/spring-integration/src/test/java/com/baeldung/samples/FileCopyTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2002-2013 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.baeldung.samples;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.util.Scanner;
+
+
+/**
+ * Starts the Spring Context and will initialize the Spring Integration routes.
+ *
+ * @author Baeldung
+ * @since 1.0
+ *
+ */
+public final class FileCopyTest {
+
+ private static final Logger LOGGER = Logger.getLogger(FileCopyTest.class);
+
+ @Test
+ public void test() throws InterruptedException {
+
+
+ final AbstractApplicationContext context =
+ new ClassPathXmlApplicationContext("classpath:META-INF/spring/integration/spring-integration-file-copy-context.xml");
+
+ Thread.sleep(5000);
+
+
+ }
+
+ @Test
+ public void publish() throws InterruptedException {
+
+
+ final AbstractApplicationContext context =
+ new ClassPathXmlApplicationContext("classpath:META-INF/spring/integration/spring-integration-file-publish-context.xml");
+
+ Thread.sleep(15000);
+
+
+ }
+}
diff --git a/jooq-spring/.gitignore b/spring-jooq/.gitignore
similarity index 100%
rename from jooq-spring/.gitignore
rename to spring-jooq/.gitignore
diff --git a/jooq-spring/README.md b/spring-jooq/README.md
similarity index 100%
rename from jooq-spring/README.md
rename to spring-jooq/README.md
diff --git a/jooq-spring/pom.xml b/spring-jooq/pom.xml
similarity index 100%
rename from jooq-spring/pom.xml
rename to spring-jooq/pom.xml
diff --git a/jooq-spring/src/main/resources/application.properties b/spring-jooq/src/main/resources/application.properties
similarity index 100%
rename from jooq-spring/src/main/resources/application.properties
rename to spring-jooq/src/main/resources/application.properties
diff --git a/jooq-spring/src/main/resources/intro_config.properties b/spring-jooq/src/main/resources/intro_config.properties
similarity index 100%
rename from jooq-spring/src/main/resources/intro_config.properties
rename to spring-jooq/src/main/resources/intro_config.properties
diff --git a/jooq-spring/src/main/resources/intro_schema.sql b/spring-jooq/src/main/resources/intro_schema.sql
similarity index 100%
rename from jooq-spring/src/main/resources/intro_schema.sql
rename to spring-jooq/src/main/resources/intro_schema.sql
diff --git a/jooq-spring/src/test/java/com/baeldung/jooq/introduction/ExceptionTranslator.java b/spring-jooq/src/test/java/com/baeldung/jooq/introduction/ExceptionTranslator.java
similarity index 100%
rename from jooq-spring/src/test/java/com/baeldung/jooq/introduction/ExceptionTranslator.java
rename to spring-jooq/src/test/java/com/baeldung/jooq/introduction/ExceptionTranslator.java
diff --git a/jooq-spring/src/test/java/com/baeldung/jooq/introduction/PersistenceContextIntegrationTest.java b/spring-jooq/src/test/java/com/baeldung/jooq/introduction/PersistenceContextIntegrationTest.java
similarity index 100%
rename from jooq-spring/src/test/java/com/baeldung/jooq/introduction/PersistenceContextIntegrationTest.java
rename to spring-jooq/src/test/java/com/baeldung/jooq/introduction/PersistenceContextIntegrationTest.java
diff --git a/jooq-spring/src/test/java/com/baeldung/jooq/introduction/QueryIntegrationTest.java b/spring-jooq/src/test/java/com/baeldung/jooq/introduction/QueryIntegrationTest.java
similarity index 100%
rename from jooq-spring/src/test/java/com/baeldung/jooq/introduction/QueryIntegrationTest.java
rename to spring-jooq/src/test/java/com/baeldung/jooq/introduction/QueryIntegrationTest.java
diff --git a/jooq-spring/src/test/java/com/baeldung/jooq/springboot/Application.java b/spring-jooq/src/test/java/com/baeldung/jooq/springboot/Application.java
similarity index 100%
rename from jooq-spring/src/test/java/com/baeldung/jooq/springboot/Application.java
rename to spring-jooq/src/test/java/com/baeldung/jooq/springboot/Application.java
diff --git a/jooq-spring/src/test/java/com/baeldung/jooq/springboot/InitialConfiguration.java b/spring-jooq/src/test/java/com/baeldung/jooq/springboot/InitialConfiguration.java
similarity index 100%
rename from jooq-spring/src/test/java/com/baeldung/jooq/springboot/InitialConfiguration.java
rename to spring-jooq/src/test/java/com/baeldung/jooq/springboot/InitialConfiguration.java
diff --git a/jooq-spring/src/test/java/com/baeldung/jooq/springboot/SpringBootIntegrationTest.java b/spring-jooq/src/test/java/com/baeldung/jooq/springboot/SpringBootIntegrationTest.java
similarity index 100%
rename from jooq-spring/src/test/java/com/baeldung/jooq/springboot/SpringBootIntegrationTest.java
rename to spring-jooq/src/test/java/com/baeldung/jooq/springboot/SpringBootIntegrationTest.java
diff --git a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java
index f428fc3223..80ce22edd6 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java
@@ -1,17 +1,16 @@
package com.baeldung.spring.web.config;
-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;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRegistration;
+import java.util.Set;
+
public class MainWebAppInitializer implements WebApplicationInitializer {
private static final String TMP_FOLDER = "/tmp";
@@ -28,7 +27,6 @@ public class MainWebAppInitializer implements WebApplicationInitializer {
root.scan("com.baeldung.spring.web.config");
// root.getEnvironment().setDefaultProfiles("embedded");
- // Manages the lifecycle of the root application context
sc.addListener(new ContextLoaderListener(root));
// Handles requests into the application
diff --git a/spring-rest-docs/pom.xml b/spring-rest-docs/pom.xml
index 04ee11d0de..8e758eeb4a 100644
--- a/spring-rest-docs/pom.xml
+++ b/spring-rest-docs/pom.xml
@@ -63,7 +63,7 @@
maven-surefire-plugin
- **/*Documentation.java
+ **/*IntegrationTest.java
diff --git a/spring-rest-docs/src/test/java/com/example/ApiDocumentation.java b/spring-rest-docs/src/test/java/com/example/ApiDocumentationIntegrationTest.java
similarity index 99%
rename from spring-rest-docs/src/test/java/com/example/ApiDocumentation.java
rename to spring-rest-docs/src/test/java/com/example/ApiDocumentationIntegrationTest.java
index 5b753aff0c..0912023fb7 100644
--- a/spring-rest-docs/src/test/java/com/example/ApiDocumentation.java
+++ b/spring-rest-docs/src/test/java/com/example/ApiDocumentationIntegrationTest.java
@@ -38,7 +38,7 @@ import static org.springframework.util.StringUtils.collectionToDelimitedString;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SpringRestDocsApplication.class)
@WebAppConfiguration
-public class ApiDocumentation {
+public class ApiDocumentationIntegrationTest {
@Rule
public final RestDocumentation restDocumentation = new RestDocumentation("target/generated-snippets");
diff --git a/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentation.java b/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentationIntegrationTest.java
similarity index 99%
rename from spring-rest-docs/src/test/java/com/example/GettingStartedDocumentation.java
rename to spring-rest-docs/src/test/java/com/example/GettingStartedDocumentationIntegrationTest.java
index 7aea9d303c..1af626d03b 100644
--- a/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentation.java
+++ b/spring-rest-docs/src/test/java/com/example/GettingStartedDocumentationIntegrationTest.java
@@ -33,7 +33,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SpringRestDocsApplication.class)
@WebAppConfiguration
-public class GettingStartedDocumentation {
+public class GettingStartedDocumentationIntegrationTest {
@Rule
public final RestDocumentation restDocumentation = new RestDocumentation("target/generated-snippets");
diff --git a/spring-security-custom-permission/README.MD b/spring-security-custom-permission/README.MD
index 760cf41c63..0812a73090 100644
--- a/spring-security-custom-permission/README.MD
+++ b/spring-security-custom-permission/README.MD
@@ -3,3 +3,4 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com
###Relevant Articles:
- [A Custom Security Expression with Spring Security](http://www.baeldung.com/spring-security-create-new-custom-security-expression)
+- [Custom AccessDecisionVoters in Spring Security](http://www.baeldung.com/spring-security-custom-voter)
\ No newline at end of file
diff --git a/spring-security-custom-permission/pom.xml b/spring-security-custom-permission/pom.xml
index 6098fe5b65..288cc3d6ba 100644
--- a/spring-security-custom-permission/pom.xml
+++ b/spring-security-custom-permission/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.3.3.RELEASE
+ 1.3.8.RELEASE
@@ -128,6 +128,7 @@
spring-security-taglibs
4.1.3.RELEASE
+
javax.servlet.jsp.jstl
jstl-api
@@ -239,6 +240,9 @@
+ org.baeldung.Application
+
+
UTF-8
1.8
2.4.0
diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/Application.java b/spring-security-custom-permission/src/main/java/org/baeldung/Application.java
index b4e8d04b49..2d59fab6be 100644
--- a/spring-security-custom-permission/src/main/java/org/baeldung/Application.java
+++ b/spring-security-custom-permission/src/main/java/org/baeldung/Application.java
@@ -1,12 +1,17 @@
package org.baeldung;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.web.SpringBootServletInitializer;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.FilterType;
-@SpringBootApplication
+@Configuration
+@EnableAutoConfiguration
+@ComponentScan(excludeFilters =
+ @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.baeldung.voter.*"))
public class Application extends SpringBootServletInitializer {
-
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/voter/MinuteBasedVoter.java b/spring-security-custom-permission/src/main/java/org/baeldung/voter/MinuteBasedVoter.java
new file mode 100644
index 0000000000..ca9072bcac
--- /dev/null
+++ b/spring-security-custom-permission/src/main/java/org/baeldung/voter/MinuteBasedVoter.java
@@ -0,0 +1,33 @@
+package org.baeldung.voter;
+
+import java.time.LocalDateTime;
+import java.util.Collection;
+
+import org.springframework.security.access.AccessDecisionVoter;
+import org.springframework.security.access.ConfigAttribute;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+
+public class MinuteBasedVoter implements AccessDecisionVoter {
+ @Override
+ public boolean supports(ConfigAttribute attribute) {
+ return true;
+ }
+
+ @Override
+ public boolean supports(Class clazz) {
+ return true;
+ }
+
+ @Override
+ public int vote(Authentication authentication, Object object, Collection collection) {
+ return authentication
+ .getAuthorities()
+ .stream()
+ .map(GrantedAuthority::getAuthority)
+ .filter(r -> "ROLE_USER".equals(r) && LocalDateTime.now().getMinute() % 2 != 0)
+ .findAny()
+ .map(s -> ACCESS_DENIED)
+ .orElseGet(() -> ACCESS_ABSTAIN);
+ }
+}
diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/voter/VoterApplication.java b/spring-security-custom-permission/src/main/java/org/baeldung/voter/VoterApplication.java
new file mode 100644
index 0000000000..046eca9be7
--- /dev/null
+++ b/spring-security-custom-permission/src/main/java/org/baeldung/voter/VoterApplication.java
@@ -0,0 +1,17 @@
+package org.baeldung.voter;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.FilterType;
+
+@Configuration
+@EnableAutoConfiguration
+@ComponentScan(basePackages = {"org.baeldung.voter"})
+public class VoterApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(VoterApplication.class, args);
+ }
+}
diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/voter/VoterMvcConfig.java b/spring-security-custom-permission/src/main/java/org/baeldung/voter/VoterMvcConfig.java
new file mode 100644
index 0000000000..e282c794d0
--- /dev/null
+++ b/spring-security-custom-permission/src/main/java/org/baeldung/voter/VoterMvcConfig.java
@@ -0,0 +1,18 @@
+package org.baeldung.voter;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+/**
+ * Created by ambrusadrianz on 30/09/2016.
+ */
+
+@Configuration
+public class VoterMvcConfig extends WebMvcConfigurerAdapter {
+ @Override
+ public void addViewControllers(ViewControllerRegistry registry) {
+ registry.addViewController("/").setViewName("private");
+ }
+}
diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/voter/WebSecurityConfig.java b/spring-security-custom-permission/src/main/java/org/baeldung/voter/WebSecurityConfig.java
new file mode 100644
index 0000000000..3330fda7ec
--- /dev/null
+++ b/spring-security-custom-permission/src/main/java/org/baeldung/voter/WebSecurityConfig.java
@@ -0,0 +1,69 @@
+package org.baeldung.voter;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.access.AccessDecisionManager;
+import org.springframework.security.access.AccessDecisionVoter;
+import org.springframework.security.access.vote.AuthenticatedVoter;
+import org.springframework.security.access.vote.RoleVoter;
+import org.springframework.security.access.vote.UnanimousBased;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.web.access.expression.WebExpressionVoter;
+import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+
+import java.util.Arrays;
+import java.util.List;
+
+//@Configuration
+//@EnableWebSecurity
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+ @Autowired
+ public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
+ // @formatter: off
+ auth.inMemoryAuthentication()
+ .withUser("user").password("pass").roles("USER")
+ .and()
+ .withUser("admin").password("pass").roles("ADMIN");
+ // @formatter: on
+ }
+
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+ // @formatter: off
+ http
+ // needed so our login could work
+ .csrf()
+ .disable()
+ .authorizeRequests()
+ .anyRequest()
+ .authenticated()
+ .accessDecisionManager(accessDecisionManager())
+ .antMatchers("/").hasAnyRole("ROLE_ADMIN", "ROLE_USER")
+ .and()
+ .formLogin()
+ .permitAll()
+ .and()
+ .logout()
+ .permitAll()
+ .deleteCookies("JSESSIONID")
+ .logoutSuccessUrl("/login");
+ // @formatter: on
+ }
+
+ @Bean
+ public AccessDecisionManager accessDecisionManager() {
+ // @formatter: off
+ List> decisionVoters =
+ Arrays.asList(
+ new WebExpressionVoter(),
+ new RoleVoter(),
+ new AuthenticatedVoter(),
+ new MinuteBasedVoter());
+ // @formatter: on
+ return new UnanimousBased(decisionVoters);
+ }
+}
diff --git a/spring-security-custom-permission/src/main/java/org/baeldung/voter/XmlSecurityConfig.java b/spring-security-custom-permission/src/main/java/org/baeldung/voter/XmlSecurityConfig.java
new file mode 100644
index 0000000000..c206df7d1f
--- /dev/null
+++ b/spring-security-custom-permission/src/main/java/org/baeldung/voter/XmlSecurityConfig.java
@@ -0,0 +1,15 @@
+package org.baeldung.voter;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+
+/**
+ * Created by ambrusadrianz on 09/10/2016.
+ */
+@Configuration
+@ImportResource({"classpath:spring-security.xml"})
+public class XmlSecurityConfig {
+ public XmlSecurityConfig() {
+ super();
+ }
+}
diff --git a/spring-security-custom-permission/src/main/resources/spring-security.xml b/spring-security-custom-permission/src/main/resources/spring-security.xml
new file mode 100644
index 0000000000..382dbf5dff
--- /dev/null
+++ b/spring-security-custom-permission/src/main/resources/spring-security.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-security-custom-permission/src/main/resources/templates/private.html b/spring-security-custom-permission/src/main/resources/templates/private.html
new file mode 100644
index 0000000000..5af8c7a13e
--- /dev/null
+++ b/spring-security-custom-permission/src/main/resources/templates/private.html
@@ -0,0 +1,10 @@
+
+
+
+ Private
+
+
+Congrats!
+
+
\ No newline at end of file
diff --git a/spring-security-mvc-ldap/pom.xml b/spring-security-mvc-ldap/pom.xml
index b001a86955..145321b2f4 100644
--- a/spring-security-mvc-ldap/pom.xml
+++ b/spring-security-mvc-ldap/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.3.3.RELEASE
+ 1.3.8.RELEASE
diff --git a/spring-security-rest-custom/pom.xml b/spring-security-rest-custom/pom.xml
index 071fa14b71..296703c27e 100644
--- a/spring-security-rest-custom/pom.xml
+++ b/spring-security-rest-custom/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.3.3.RELEASE
+ 1.3.8.RELEASE
diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml
index 5cd0ed51f3..957a349d3c 100644
--- a/spring-security-rest-full/pom.xml
+++ b/spring-security-rest-full/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.3.3.RELEASE
+ 1.3.8.RELEASE
diff --git a/spring-security-rest-full/src/main/java/org/baeldung/example/spring/AnotherBootApp.java b/spring-security-rest-full/src/main/java/org/baeldung/example/spring/AnotherBootApp.java
new file mode 100644
index 0000000000..445a70f29c
--- /dev/null
+++ b/spring-security-rest-full/src/main/java/org/baeldung/example/spring/AnotherBootApp.java
@@ -0,0 +1,17 @@
+package org.baeldung.example.spring;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+@EnableScheduling
+@EnableAutoConfiguration
+@ComponentScan("org.baeldung")
+public class AnotherBootApp extends WebMvcConfigurerAdapter {
+
+ public static void main(final String[] args) {
+ SpringApplication.run(AnotherBootApp.class, args);
+ }
+}
\ No newline at end of file
diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/CustomRsqlVisitor.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/CustomRsqlVisitor.java
index 64c84678af..89cec89951 100644
--- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/CustomRsqlVisitor.java
+++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/CustomRsqlVisitor.java
@@ -1,6 +1,5 @@
package org.baeldung.persistence.dao.rsql;
-import org.baeldung.persistence.model.User;
import org.springframework.data.jpa.domain.Specification;
import cz.jirutka.rsql.parser.ast.AndNode;
@@ -8,26 +7,26 @@ import cz.jirutka.rsql.parser.ast.ComparisonNode;
import cz.jirutka.rsql.parser.ast.OrNode;
import cz.jirutka.rsql.parser.ast.RSQLVisitor;
-public class CustomRsqlVisitor implements RSQLVisitor, Void> {
+public class CustomRsqlVisitor implements RSQLVisitor, Void> {
- private UserRsqlSpecBuilder builder;
+ private GenericRsqlSpecBuilder builder;
public CustomRsqlVisitor() {
- builder = new UserRsqlSpecBuilder();
+ builder = new GenericRsqlSpecBuilder();
}
@Override
- public Specification visit(final AndNode node, final Void param) {
+ public Specification visit(final AndNode node, final Void param) {
return builder.createSpecification(node);
}
@Override
- public Specification visit(final OrNode node, final Void param) {
+ public Specification visit(final OrNode node, final Void param) {
return builder.createSpecification(node);
}
@Override
- public Specification visit(final ComparisonNode node, final Void params) {
+ public Specification visit(final ComparisonNode node, final Void params) {
return builder.createSpecification(node);
}
diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/UserRsqlSpecBuilder.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/GenericRsqlSpecBuilder.java
similarity index 65%
rename from spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/UserRsqlSpecBuilder.java
rename to spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/GenericRsqlSpecBuilder.java
index 202370a64b..01ec389465 100644
--- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/UserRsqlSpecBuilder.java
+++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/GenericRsqlSpecBuilder.java
@@ -3,7 +3,6 @@ package org.baeldung.persistence.dao.rsql;
import java.util.ArrayList;
import java.util.List;
-import org.baeldung.persistence.model.User;
import org.springframework.data.jpa.domain.Specifications;
import cz.jirutka.rsql.parser.ast.ComparisonNode;
@@ -11,9 +10,9 @@ import cz.jirutka.rsql.parser.ast.LogicalNode;
import cz.jirutka.rsql.parser.ast.LogicalOperator;
import cz.jirutka.rsql.parser.ast.Node;
-public class UserRsqlSpecBuilder {
+public class GenericRsqlSpecBuilder {
- public Specifications createSpecification(final Node node) {
+ public Specifications createSpecification(final Node node) {
if (node instanceof LogicalNode) {
return createSpecification((LogicalNode) node);
}
@@ -23,9 +22,9 @@ public class UserRsqlSpecBuilder {
return null;
}
- public Specifications createSpecification(final LogicalNode logicalNode) {
- final List> specs = new ArrayList>();
- Specifications temp;
+ public Specifications createSpecification(final LogicalNode logicalNode) {
+ final List> specs = new ArrayList>();
+ Specifications temp;
for (final Node node : logicalNode.getChildren()) {
temp = createSpecification(node);
if (temp != null) {
@@ -33,7 +32,7 @@ public class UserRsqlSpecBuilder {
}
}
- Specifications result = specs.get(0);
+ Specifications result = specs.get(0);
if (logicalNode.getOperator() == LogicalOperator.AND) {
for (int i = 1; i < specs.size(); i++) {
@@ -50,8 +49,8 @@ public class UserRsqlSpecBuilder {
return result;
}
- public Specifications createSpecification(final ComparisonNode comparisonNode) {
- final Specifications result = Specifications.where(new UserRsqlSpecification(comparisonNode.getSelector(), comparisonNode.getOperator(), comparisonNode.getArguments()));
+ public Specifications createSpecification(final ComparisonNode comparisonNode) {
+ final Specifications result = Specifications.where(new GenericRsqlSpecification(comparisonNode.getSelector(), comparisonNode.getOperator(), comparisonNode.getArguments()));
return result;
}
diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/UserRsqlSpecification.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/GenericRsqlSpecification.java
similarity index 87%
rename from spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/UserRsqlSpecification.java
rename to spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/GenericRsqlSpecification.java
index b7aaa14ba6..6609a87953 100644
--- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/UserRsqlSpecification.java
+++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/rsql/GenericRsqlSpecification.java
@@ -8,18 +8,17 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
-import org.baeldung.persistence.model.User;
import org.springframework.data.jpa.domain.Specification;
import cz.jirutka.rsql.parser.ast.ComparisonOperator;
-public class UserRsqlSpecification implements Specification {
+public class GenericRsqlSpecification implements Specification {
private String property;
private ComparisonOperator operator;
private List arguments;
- public UserRsqlSpecification(final String property, final ComparisonOperator operator, final List arguments) {
+ public GenericRsqlSpecification(final String property, final ComparisonOperator operator, final List arguments) {
super();
this.property = property;
this.operator = operator;
@@ -27,7 +26,7 @@ public class UserRsqlSpecification implements Specification {
}
@Override
- public Predicate toPredicate(final Root root, final CriteriaQuery> query, final CriteriaBuilder builder) {
+ public Predicate toPredicate(final Root root, final CriteriaQuery> query, final CriteriaBuilder builder) {
final List